Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
WooCommerce - Redirect external products offsite (disable single listings)
<?php // Do not include this if already open!
* Code goes in theme functions.php.
add_action( 'template_redirect', 'redirect_external_products' );
function redirect_external_products() {
global $post;
if ( is_singular( 'product' ) && ! empty( $post ) && ( $product = wc_get_product( $post ) ) && $product->is_type( 'external' ) ) {
wp_redirect( $product->get_product_url() );
Copy link

numpdog commented Sep 6, 2016

This works great, but is there a way to open the external product link in a new tab?

Copy link

Verso68 commented Oct 13, 2016

Thank you! And is there also any way to make those external product links nofollowed? Ideally via functions.php also.

Any help would be much appreciated.

Copy link

cassianotartari commented Oct 27, 2016

For 2.6+ the trick for affiliate program is:

remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
add_action( 'woocommerce_before_shop_loop_item', 'mycode_woocommerce_template_loop_product_link_open', 20 );
function mycode_woocommerce_template_loop_product_link_open() {
    global $product;
    echo '<a rel="nofollow" href="' . esc_url( $product->add_to_cart_url() ) . '" class="woocommerce-LoopProduct-link" data-quantity="'.esc_attr( isset( $quantity ) ? $quantity : 1 ).'" data-product_id="'.esc_attr( $product->id ).'" data-product_sku="'.esc_attr( $product->get_sku() ).'" target="_blank">';

Copy link

vvvvvy commented Nov 15, 2016

It used to work but it is now not work for woocommerce 2.6.7 Is there any one on the same boat with me ?

Any help would be greatly appreciated

Copy link

ratoli commented May 8, 2017

Before redirecting, the link calls the single-product permalink in the same tab. So you must modify this link to open in a new tab.

cassianotartari script works fine.

Copy link

kyzur commented May 31, 2017

Hello there, I tried the script from cassianotartari but it still redirects the external link in the same tab. Any thoughts how to modifiy the script?

thank you

Copy link

JesseMC9 commented Jun 20, 2017

I'm having the same trouble as Kyzur. I've copied code but nothing happens on my site at all. Is there anything that needs to be edited before cassianotartari's script takes effect?

Copy link

Geko51 commented Oct 9, 2018

how can i open these links in new tabs?

Copy link

mojtabamohamady commented Nov 17, 2018

very good

Copy link

paulcobb commented May 1, 2019

Just double checking:
This code is to make both the button and image link point to external product URL?
Is the code still current with latest WC version?

Copy link

CrisGra commented Feb 7, 2020

Hello @mikejolley, I hope you still here! this script "Redirect external products offsite (disable single listings)" works perfect!! Thank you so much!!!
Now I just need to redirect links to NEW TAB , could you help me please!!!! Thank you in advance.

Copy link

HobbyAlchemist commented Apr 18, 2020

Copy link

t1000upgraded commented May 22, 2020

Thanks a million time for this, it worked perfectly with the latest version of wordpress and woocommerce. Now my product listing direct users to amazon with affiliate links. My only question is about nofollow links. How can I make these affiliate links nofollow?

Copy link

abhi09123 commented Sep 28, 2020

Did you added that code which Hobby alchemist shared or you used the plugin...please help me also..i need the same functionality on my
when i add this code nothing happens .

Copy link

t1000upgraded commented Oct 13, 2020

Did you added that code which Hobby alchemist shared or you used the plugin...please help me also..i need the same functionality on my
when i add this code nothing happens .

Hey @abhi09123, just seen this, sorry. Yes it was exactly what I needed and worked like a charm. Thanks a million @HobbyAlchemist

Copy link

prashantrulz commented May 1, 2021

@HobbyAlchemist, I found the code is deleted. Can you please share the code? It is important.

Copy link

andyjfrost commented Sep 11, 2021

cassianotartari's code works perfect for external products. It is also affecting internal products, adding it to the cart and opening the link to the shop page in a new tab. It does not open to the product. Any ideas?

Copy link

Manugon commented May 11, 2022

Hi, I also have an affiliate products website and the first code works perfectly but links are not open in a new tab.
Can anyone share a code to open it in a new tab that works with the last woocommerce version?
Or if anyone could share the code/plugin of @HobbyAlchemist would be very useful.
Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment