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

问题描述 投票:-1回答:1

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

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

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' );
}

谢谢。

wordpress woocommerce
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.