add_filter( 'woocommerce_loop_add_to_cart_link', function( $link, $product ) {
// Categories To Affect
$categories = [
'Category One',
'Category Two',
'Category Three',
];
// Limit To Variable Products In Category
if(
$product->product_type != 'variable'
|| ! has_term( $categories, 'product_cat', $product->get_id() )
) {
return $link;
}
// Limit To Single Variations
if( sizeof( $product->get_available_variations() ) > 1 ) {
return $link;
}
// New Link
return sprintf(
'
<a href="?add-to-cart=%d"
data-quantity="1"
data-product_id="%d"
data-product_sku="%s"
class="button product_type_simple add_to_cart_button ajax_add_to_cart add-to-cart"
aria-label="Add “%s” to your cart"
rel="nofollow">%s</a>
',
$product->get_id(),
$product->get_id(),
$product->get_sku(),
$product->get_title(),
__( 'Add to Cart', 'woocommerce' )
);
}, 10, 2 );
Variable products change button to add-to-cart in shop loops
Changes the Select Options buttons to Add to Cart for all variable products in a specific category.
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
- Email to [email protected]
