I want to program the Add to Cart button, on a product page, so when the customer press on it, it skips the Cart & Checkout pages and send him directly to the PayPal payment gateway.

Not spending time on the Cart page, nor filling details on the Checkout page.
How can I do this?


A solution can be found in the function woocommerce_add_to_cart_action. We have to chain two filters. In the first, we check for the product ID, if it's one of a list we add the redirect.

add_action( 'woocommerce_add_to_cart_validation', 'check_ids_wpse_119466', 10, 3 );

function check_ids_wpse_119466( $true, $product_id, $quantity ) 
    # Not our products, bail out
    # Adjust the products IDs
    if( !in_array( $product_id, array( 1306,1303 ) ) ) // <------ ADJUST LIST
        return $true;

    add_filter( 'add_to_cart_redirect', 'redirect_wpse_119466' );
    add_filter( 'allowed_redirect_hosts', 'whitelist_wpse_119466' );
    return $true;

function redirect_wpse_119466( $url )
    return 'http://paypal.com';

function whitelist_wpse_119466( $hosts )
    $hosts[] = 'paypal.com';
    return $hosts;

There's a third filter that we need to add, and it tells WordPress that PayPal is a safe host to redirect.

Yes, the list of products has to be made by hand. Or add an option somewhere in the theme, in a plugin or even WordPress settings to put this values (with a multiple selection field).

Related: Where do I put the code snippets I found here or somewhere else on the web?

| improve this answer | |
  • Hi. thank you for the answer. I copy-paste this code in woocommerce-functions.php. but unfortunatlly it doesn't do the work. have any idea why? was I suppose to add anything else except this code? (I'm not a profecional programmer) – Matan Oct 22 '13 at 10:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.