从自定义字段值替换Woocommerce产品可变价格范围

时间:2018-12-07 09:16:34

标签: php wordpress woocommerce product price

我想使用自定义字段来为可变产品中的供应商添加价格。因此,我正在使用以下代码来获取变量产品的自定义字段的最高价和最低价,但它什么也不返回。请帮助我找到如何从自定义字段中获取可变产品的价格。

    // Min and max variable prices
    add_filter( 'woocommerce_variable_sale_price_html', 'new_variable_price_format', 10, 2 );
    add_filter( 'woocommerce_variable_price_html', 'new_variable_price_format', 10, 2 );
    function new_variable_price_format( $price, $product ) {
    $price = get_post_meta( $product->get_id(), 'vendor_price_regu');
    echo "<pre>";
    print_r($price);
    echo "</pre>";
    return $price;
    }

1 个答案:

答案 0 :(得分:1)

因为这与显示的可变价格范围有关,所以您需要获取所有变动价格并显示最小和最大自定义格式的价格,以使其起作用:

add_filter( 'woocommerce_variable_price_html', 'custom_variable_price_html', 10, 2 );
function custom_variable_price_html( $price, $product) {
    $prices = [];
    foreach($product->get_children() as $variation_id ){
        if( $vprice = get_post_meta( $variation_id, 'vendor_price_regu', true ) )
            $prices[] = $vprice;
    }

    if( sizeof($prices) > 0 ){
        sort($prices);

        $min_price = reset( $prices );
        $max_price = end( $prices );

        if ( $min_price == $max_price ) {
             $price = wc_price($min_price);
        } else {
            $price = wc_price($min_price) . ' - ' . wc_price($max_price);
        }
    }
    return $price;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。