External and Affiliate Product Extras
WooCommerce’s External/Affiliate product type sends shoppers to another site, but it stops there. You can’t mark the links as sponsored, you don’t know how many people clicked, and the product page button is a form rather than a real link, so link attributes don’t apply.
External Product Extras adds link attributes and a target, optional price hiding and outbound click counts. It also makes sure an external product can never end up in the cart.
Set the Store Defaults
Go to Stackless → Settings → External Product Extras:
- Link attributes: Add rel=”nofollow” and Add rel=”sponsored” (recommended for paid and affiliate links). Both are on by default.
- Open links: In a new tab (adds rel=”noopener”), the default, or In the same tab.
- Prices: hide prices on external products, useful when the seller’s price changes often. Off by default.
- Click tracking: count clicks on external product buttons and show them in the product list. On by default.
Override One Product
Edit an External/Affiliate product and open Product data → General. Each field defaults to Store default:
- rel=”nofollow”: Add or Do not add.
- rel=”sponsored”: Add or Do not add.
- Open link: In a new tab or In the same tab.
- Price display: Hide price or Show price.
The attributes apply to shop-grid buttons, the Product Button block and the product page button. On the product page, WooCommerce’s form is swapped for a real link so rel and target work there too.
Count Outbound Clicks
With Click tracking on, Products → All Products gets an Outbound clicks column. External products show their count, and other products show a dash.
The product’s General tab shows the same count and the time of the last click. Tick Reset clicks and update the product to set the count back to zero.
A click is counted once per visitor per product every 10 minutes, so refreshes and repeat clicks don’t inflate the number. Only published external products can be counted.
The Cart Guard
External products are never purchasable on your store, even if another plugin tries to change that:
- Add-to-cart links, forms and AJAX add to cart refuse them with “This product is sold on another website and cannot be added to the cart.”
- The Store API refuses them for the Cart and Checkout blocks.
- If one is already in the cart, it’s removed with a notice that it can only be bought on the seller’s website.
Good to Know
- With hide price on, the price is also removed from the product’s structured data.
- The product page button only shows when the product URL is a valid
http://orhttps://address.