提问者:小点点

WooCommerce-删除添加到购物车按钮功能和更改按钮文本


在WooCommerce中,我想替换“添加到购物车”按钮,并将其更改为“阅读更多”,但仅适用于某些产品类别。

我已经尝试过使用很多不同的代码片段来实现这个目的,但是似乎没有什么能给我想要的结果。

原因是我想使用我商店的某些部分作为产品目录,显示商品及其价格,但不允许用户购买。

有人知道这是如何实现的吗?

任何帮助都将不胜感激。


共1个答案

匿名用户

以下是一些功能,这些功能将仅用于某些已定义的产品类别:

  1. 店内和归档页面:按钮通过产品链接添加到购物车

您必须在该功能中定义:

  1. 阵列中的产品类别(2次)

下面是代码:

// Replacing the button add to cart by a link to the product in Shop and archives pages
add_filter( 'woocommerce_loop_add_to_cart_link', 'replacing_conditionally_loop_add_to_cart_button', 10, 2 );
function replacing_conditionally_loop_add_to_cart_button( $button, $product  ) {
    // Set HERE your product categories in the array
    $categories = array( 't-shirts', 'gloves' );

    if( has_term( $categories, 'product_cat', $product->get_id() ) ){
        $button_text = __( "View product", "woocommerce" );
        $button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
    }
    return $button;
}


// Button replacement function for Single product pages (SET the link below)
function custom_button_read_more( $product_link ){
    global $product;

    // Set HERE your product link
    $product_link = home_url( '/some-link-to-define/' );

    $button_text = __('Read more', 'woocommerce');
    echo '<a href="'.$product_link.'" class="button">'.$button_text.'</a>';
}


// replacing add to cart button and quantities by your custom button in Single product pages
add_action( 'woocommerce_single_product_summary', 'replacing_conditionally_template_single_add_to_cart', 1, 0 );
function replacing_conditionally_template_single_add_to_cart() {
    global $product;

    // Set HERE your product categories in the array
    $categories = array( 't-shirts', 'gloves' );

    if( has_term( $categories, 'product_cat', $product->get_id()) ){

        // For variable product types
        if( $product->is_type( 'variable' ) ){
            // Removing add to cart button and quantities
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );

            // The button replacement
            add_action( 'woocommerce_single_variation', 'custom_button_read_more', 20 );
        }
        else // For all other product types
        {
            // Removing add to cart button and quantities
            remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

            // The button replacement
            add_action( 'woocommerce_single_product_summary', 'custom_button_read_more', 30 );
        }
    }
}

代码进入函数。活动子主题(或主题)或任何插件文件中的php文件。

所有代码都在Woocommerce 3上进行了测试,可以正常工作。

类似的回答:为WooCommerce中的特定产品类别定制“添加到购物车”按钮