The WooCommerce shop page displays variable products with a “Select Options” button by default. However, if you’re looking to change it to something else (such as “View Product“) then I’ve got a useful snippet you can put to use.
Of course you can change the text to anything you like, by simply replacing the relevant string inside the snippet below. Enjoy!
PHP Snippet: Change “Select Options” to “View Product” @ WooCommerce Shop / Category Pages
/**
* @snippet Edit SELECT OPTIONS Button - WordPress Shop
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 5
* @community https://businessbloomer.com/club/
*/
add_filter( 'woocommerce_product_add_to_cart_text', 'bbloomer_change_select_options_button_text', 9999, 2 );
function bbloomer_change_select_options_button_text( $label, $product ) {
if ( $product->is_type( 'variable' ) ) {
return 'View Product';
}
return $label;
}
Is There a (Reliable) Plugin For That?
If you’d love to code but don’t feel 100% confident with PHP, I decided to look for a reliable plugin that achieves the same result.
In this case, I recommend the WooCommerce Show Single Variations plugin. On top of “splitting” your variable products into simple products (and therefore with an “ADD TO CART” button on the shop page), you can also return variations as search results, filtered results, and much more.
But in case you hate plugins and wish to code (or wish to try that), then keep reading 🙂
Hi Roldolfo. I tried this snippet and it changes the button text on the single product page, but not the category page. Once they’re on the single page, it should say “Add to cart” not “View options”
Please disregard! There was a plugin driving the product pages. I’m still trying to figure out why it’s not working on all category pages, but I think it has something to do with how I have them built in Beaver Builder.
Good to know!
Hi Rodolfo,
The snippet works great. How do you additionally remove the “wrench” icon beside the show options text?
Hi Serena, there is no wrench icon in WooCommerce so that must be your theme. Possibly it’s an easy CSS fix.