Woocommerce“添加到购物车”文本是“产品价格”或,如果价格是0,“自定义文本”

时间:2017-12-16 03:42:17

标签: wordpress woocommerce

我是编码中的菜鸟。但是有一个问题是我没有帮助就无法解决。我也没有在互联网上找到任何解决方案或只找到解决方案的一部分,但我不知道如何将它们结合起来。
例如:
加入购物车---> $ 9.99加入
或(如果奖金为零)
加入购物车---> FREE

我有什么。两个都在工作,但我不知道如何结合这个...

add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_custom_cart_button_text', 10 );

function my_custom_cart_button_text() {
global $product;
    if (@$product->product_type == 'simple') {
        return __(get_woocommerce_currency_symbol().@$product->price, 'woocommerce');
    } else {
        // If needed the default behavior for all other products:
        // return __('My default text', 'woocommerce');
    }
} 

add_filter( 'woocommerce_product_single_add_to_cart_text', 'price_zero' );

function price_zero() {
    global $product;
    if( $product->get_price() == 0 )
    return __( 'Free', 'woocommerce' );
}

谢谢。

1 个答案:

答案 0 :(得分:1)

你可以将上面的内容翻到一个过滤器中!

add_filter( 'woocommerce_product_single_add_to_cart_text', 'my_custom_cart_button_text', 10 );

function my_custom_cart_button_text() {
    global $product;
    $default = get_woocommerce_currency_symbol().$product->price;
    $free = __('Free',  'woocommerce');
    $button_txt = ($product->get_price() == 0)?$free:$default;
    return __('Add to cart', 'woocommerce').' --> '.$button_txt;
}

或修改my_custom_cart_button_text($default)添加$default参数以获取通过price_zero函数所做的更改,并确保其优先级低于10。