【问题标题】:Replace zero or empty displayed prices with a custom text label in Woocommerce在 Woocommerce 中用自定义文本标签替换零或空显示价格
【发布时间】:2023-03-13 00:14:02
【问题描述】:

我已经添加了适用于空价格字段的代码,但我还需要它适用于 0 的值。

add_filter('woocommerce_empty_price_html', 'custom_call_for_price');

function custom_call_for_price() {

    return 'Enquire';
}

【问题讨论】:

    标签: php wordpress woocommerce product price


    【解决方案1】:

    这是 emptyzero 显示价格的完整方法,因此此代码也替换您的实际代码(将被删除)。

    它处理简单、可变和变化的显示价格(对于 emptyzero 显示的价格):

    // Variable and simple product displayed prices
    add_filter( 'woocommerce_get_price_html', 'empty_and_zero_price_html', 20, 2 );
    function empty_and_zero_price_html( $price, $product ) {
        $empty_price = __('Enquire', 'woocommerce');
    
        if( $product->is_type('variable') )
        {
            $prices = $product->get_variation_prices( true );
    
            if ( empty( $prices['price'] ) ) {
                return $empty_price; // <=== HERE below for empty price
            } else {
                $min_price     = current( $prices['price'] );
                $max_price     = end( $prices['price'] );
                if ( $min_price === $max_price && 0 == $min_price ) {
                    return $empty_price; // <=== HERE for zero price
                }
                elseif ( $min_price !== $max_price && 0 == $min_price ) {
                    return wc_price( $max_price );
                }
            }
        }
        elseif( $product->is_type('simple') )
        {
            if ( '' === $product->get_price() || 0 == $product->get_price() ) {
                return $empty_price; // <=== HERE for empty and zero prices
            }
        }
        return $price;
    }
    
    // Product Variation displayed prices
    add_filter( 'woocommerce_available_variation', 'empty_and_zero_variation_prices_html', 10, 3);
    function empty_and_zero_variation_prices_html( $data, $product, $variation ) {
    
        if( '' === $variation->get_price() || 0 == $variation->get_price() )
            $data['price_html'] = __('Enquire', 'woocommerce'); // <=== HERE for empty and zero prices
    
        return $data;
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

    【讨论】:

    • 我已经设法使用此代码通过简单地将“查询”替换为空格来完全删除价格。有什么办法可以去掉添加到购物车的按钮和价格?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 2023-04-01
    • 2018-04-11
    • 2019-04-14
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多