更改 Woocommerce 3 中特定产品类别的添加到购物车文本

Change the add to cart text for a specific product category in Woocommerce 3

我只想更改 特定类别 产品档案中的添加到购物车文本。例如,在 预购类别 上,我想要 add to cart 文本而不是 Preorder。我不知道如何在下面的函数中识别预购类别

add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );    // < 2.1

function woo_archive_custom_cart_button_text() {

        return __( 'Preorder', 'woocommerce' );

}

您可以使用 has_term() 条件。更新后的代码如下。

解决方法- 1.使用过滤器add_to_cart_text

 add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );   

    function woo_archive_custom_cart_button_text() {

            global $product;

             if(has_term('your-special-category', 'product_cat', $product->get_id())){
              $text = __( 'Preorder', 'woocommerce' );
             }
              return $text;
    }

解决方法- 2.使用过滤器woocommerce_product_add_to_cart_text

 add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' );   

    function woo_archive_custom_cart_button_text() {

            global $product;

             if(has_term('your-special-category', 'product_cat', $product->get_id())){
              $text = __( 'Preorder', 'woocommerce' );
             }
              return $text;
    }

其中 your-special-category 是您要为其替换 add to cart 文本的类别。

Update: add_to_cart_text hook is obsolete & deprecated. It is replaced in Woocommerce 3+ by woocommerce_product_add_to_cart_text filter hook.

可以是两种不同的东西(因为你的问题不是很清楚)

1) 要在特定产品类别存档页面上定位产品,您应该以这种方式使用条件函数is_product_category()

add_filter( 'woocommerce_product_add_to_cart_text', 'product_cat_add_to_cart_button_text', 20, 1 );
function product_cat_add_to_cart_button_text( $text ) {
    // Only for a specific product category archive pages
    if( is_product_category( array('preorder') ) )
        $text = __( 'Preorder', 'woocommerce' );

    return $text;
}

代码进入活动子主题(或活动主题)的 function.php 文件。


2) 要在 Woocommerce 存档页面上定位特定产品类别,您将使用 has term() 这种方式:

add_filter( 'woocommerce_product_add_to_cart_text', 'product_cat_add_to_cart_button_text', 20, 1 );
function product_cat_add_to_cart_button_text( $text ) {
    // Only for a specific product category
    if( has_term( array('preorder'), 'product_cat' ) )
        $text = __( 'Preorder', 'woocommerce' );

    return $text;
}

对于单个产品页面,您将另外使用:

add_filter( 'woocommerce_product_single_add_to_cart_text', 'product_cat_single_add_to_cart_button_text', 20, 1 );
function product_cat_single_add_to_cart_button_text( $text ) {
    // Only for a specific product category
    if( has_term( array('preorder'), 'product_cat' ) )
        $text = __( 'Preorder', 'woocommerce' );

    return $text;
}

代码进入活动子主题(或活动主题)的 function.php 文件。

已测试并有效。

Note: All filter hooked functions needs to return the main argument if you set some conditions, so in this case the argument $text


相关回答:

相关文档:Woocommerce Conditional Tags