By default, WooCommerce displays a “Buy Product” button label for external products. This button redirects to the external URL that is entered via the single product settings.
As usual, this “Buy Product” label may not suit all businesses, and therefore WooCommerce gives you the option to rename such buttons via the single product edit page settings. This is great, but at the same time you don’t want to manually edit hundreds of products when you can use a few lines of PHP, right?
So, here’s a super quick fix to override the “Buy Product” external add to cart button label to whatever you wish, without ever touching the manual settings. Enjoy!

PHP Snippet: Override the “Buy Product” External Product Add to Cart Label @ WooCommerce Single Product & Shop Pages
/**
* @snippet Edit "Buy Product" External Add to Cart Button Label
* @how-to businessbloomer.com/woocommerce-customization
* @author Rodolfo Melogli, Business Bloomer
* @compatible WooCommerce 7
* @community https://businessbloomer.com/club/
*/
add_filter( 'woocommerce_product_single_add_to_cart_text', 'bbloomer_override_external_button_label', 9999, 2 );
add_filter( 'woocommerce_product_add_to_cart_text', 'bbloomer_override_external_button_label', 9999, 2 );
function bbloomer_override_external_button_label( $text, $product ) {
if ( $product->is_type( 'external' ) ) $text = 'Buy Now →';
return $text;
}
Thank you, this saved me having to fix 5,000 products
Fantastic!