I\'m trying to add a custom link button that leads to Contact page - within first if condition that displays \"Contact us\" text with custom URL on the butt
For your product category ID 64, the following code will replace add to cart button by a custom button in single product pages and by a linked button to the product on archives pages:
// The custom replacement button function
function custom_product_button(){
// HERE your custom button text and link
$button_text = __( "Custom text", "woocommerce" );
$button_link = '#';
// Display button
echo '<a class="button" href="'.$button_link.'">' . $button_text . '</a>';
}
// Replacing the single product button add to cart by a custom button for a specific product category
add_action( 'woocommerce_single_product_summary', 'replace_single_add_to_cart_button', 1 );
function replace_single_add_to_cart_button() {
global $product;
// Only for product category ID 64
if( has_term( '64', 'product_cat', $product->get_id() ) ){
// For variable product types (keeping attribute select fields)
if( $product->is_type( 'variable' ) ) {
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
add_action( 'woocommerce_single_variation', 'custom_product_button', 20 );
}
// For all other product types
else {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_single_product_summary', 'custom_product_button', 30 );
}
}
}
// Replacing the button add to cart by a link to the product in Shop and archives pages for as specific product category
add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_loop_add_to_cart_button', 10, 2 );
function replace_loop_add_to_cart_button( $button, $product ) {
// Only for product category ID 64
if( has_term( '64', 'product_cat', $product->get_id() ) ){
$button_text = __( "View product", "woocommerce" );
$button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
}
return $button;
}
Code goes in function.php file of your active child theme (or theme).
Tested and works.
Add filter priority in hooks
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text',50 );