WooCommerce按默认差异价格排序

时间:2020-03-21 作者:Jalapeno Jack

我使用下面的代码在产品页面上显示默认的变动价格,而不是价格范围。

add_filter(\'woocommerce_variable_price_html\', \'custom_variation_price\', 10, 2);

function custom_variation_price( $price, $product ) {

    foreach($product->get_available_variations() as $pav){
        $def=true;
        foreach($product->get_variation_default_attributes() as $defkey=>$defval){
            if($pav[\'attributes\'][\'attribute_\'.$defkey]!=$defval){
                $def=false;             
            }   
        }
        if($def){
            $price = $pav[\'display_price\'];         
        }
    }   

    return woocommerce_price($price);

}
问题是,当产品按价格排序时,它使用的是最低的变动价格,而不是默认价格。当按价格排序时,如何将其设置为使用默认的变化价格?

1 个回复
SO网友:Howard E

get_variation_default_attributeswoocommerce_price 已折旧。

这对我有用。如果我设置了默认属性。

function custom_variation_price( $price, $product ) {
    foreach($product->get_available_variations() as $pav){
        $def=true;
        foreach($product->get_default_attributes() as $defkey=>$defval){
            if($pav[\'attributes\'][\'attribute_\'.$defkey]!=$defval){
                $def=false;             
            }   
        }
        if($def){
            $price = $pav[\'display_price\'];         
        }
    }   
    return wc_price($price);
}

相关推荐