Additional button in Woocommerce shop page and arc

2020-02-02 02:10发布

I'd like to add a button next to "Add to Cart" on the product page that adds "-sample" to the product URL when clicked.

Example:

You're viewing Product 1's page and the URL is "http://www.example.com/shop/product-1/"

When you click on the button, it adds "-sample" to the URL "http://www.example.com/shop/product-1-sample/"

How can I achieve this?

Thanks

1条回答
Melony?
2楼-- · 2020-02-02 02:30

For woocommerce 3+ (only):

In woocommerce 3 you will use woocommerce_after_shop_loop_item action hook instead, as the hook woocommerce_after_add_to_cart_button will not work anymore.

add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_button', 10, 0 );
function add_custom_button() {
    global $product;

    $product_link = $product->get_permalink();

    $sample_link = substr($product_link, 0, -1) . '-sample/';
    echo '<a class="button alt btn-sample" href="' . esc_url( $sample_link ) .'">' . __( "Get a sample", "my_theme_slug" )  . '</a>';
}

Code goes on function.php file of your active child theme (or active theme). Tested and works.


Before woocommerce 3:

This is possible using hook woocommerce_after_add_to_cart_button to add your additional button on product pages, using this custom function:

add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_button', 10, 0 );
function add_custom_button() {
    global $product;

    $product_link = get_permalink( get_the_id() );

    $sample_link = substr($product_link, 0, -1) . '-sample/';
    echo '<a class="button alt btn-sample" href="' . esc_url( $sample_link ) .'">' . __( "Get a sample", "my_theme_slug" )  . '</a>';
}

This code goes on function.php file of your active child theme or theme.

This code is tested and fully functional.


Based on this: Add a button after add to cart and redirect it to some custom link in WooCommerce

And this: PHP - How to remove all specific characters at the end of a string?

查看更多
登录 后发表回答