在WooCommerce中更改带有变体的项目中的“添加到购物车”按钮文本

ste*_*nix 1 php wordpress product cart woocommerce

我正在运行WooCommerce版本2.5.5。以下代码行似乎并未更改具有变化项的产品页面上“添加到购物车”按钮上的文本:

add_filter('variable_add_to_cart_text', 'my_custom_cart_button_text');

function my_custom_cart_button_text() {

        return __('Buy Now', 'woocommerce');

}
Run Code Online (Sandbox Code Playgroud)

您会碰巧知道我在想什么吗?

Loi*_*tec 6

更新:适用于 WooCommerce 3+

您正在为 WooCommerce 的先前版本 2.1 使用过时的钩子(请参阅底部的参考资料

首先,您可以使用条件在那些(新)挂钩中定位所需的产品类型

global $product;

if ( $product->is_type( 'simple' ) ) // for simple product
    // Your text for simple product

if ($product->is_type( 'variable' ) ) // for variable product
    // Your text for variable product

if ($product->is_type( 'grouped' ) ) // for grouped product
    // Your text for grouped product

if ($product->is_type( 'external' ) ) // for external product
    // Your text for external product
Run Code Online (Sandbox Code Playgroud)

现在你有2 个可用的 Woocommerce 钩子

  • 一个单品页面(针对产品类型与条件):
add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_custom_cart_button_text', 10, 2 );
Run Code Online (Sandbox Code Playgroud)
  • 另一个用于产品档案页面(针对有条件的产品类型):
add_filter( 'woocommerce_product_add_to_cart_text', 'my_custom_cart_button_text', 10, 2 );
Run Code Online (Sandbox Code Playgroud)

并且您将通过变量产品类型条件将它们中的一个或两个与您的自定义功能定位一起使用,如下所示:

function my_custom_cart_button_text( $button_text, $product ) {

    if ( $product->is_type( 'variable' ) )
        $button_text = __('Buy Now', 'woocommerce');

    return $button_text
}
Run Code Online (Sandbox Code Playgroud)

您还可以按产品类型自定义按钮文本:请参阅此处


参考:更改添加到购物车按钮文本


hel*_*ing 6

单个产品页面的正确过滤器是woocommerce_product_single_add_to_cart_text

function my_custom_cart_button_text( $text, $product ) {
    if( $product->is_type( 'variable' ) ){
        $text = __('Buy Now', 'woocommerce');
    }
    return $text;
}
add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_custom_cart_button_text', 10, 2 );
Run Code Online (Sandbox Code Playgroud)