显示Woocommerce可变产品后缀的选定变动价格

时间:2018-09-21 09:28:08

标签: php wordpress woocommerce price variations

我正在使用此功能,所以我获得了默认的变化价格,但我想在价格后显示我的价格后缀:

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

例如,我现在得到的是“ 15,00欧元”,但我想显示的是“每公斤15欧元”,而“每公斤”是价格后缀

1 个答案:

答案 0 :(得分:1)

自Woocommerce 3 get_variation_default_attributes() woocommerce_price() 起已弃用)以来,您的代码已过时。

它将显示为Woocommerce 3加后缀的选定变化价格。

add_filter('woocommerce_available_variation', 'display_variation_price_suffixed', 10, 3 );
function display_variation_price_suffixed( $variation_data, $product, $variation ) {
    $variation_data['price_html'] .= ' <span class="price-suffix">' . __("per kilo", "woocommerce") . '</span>';

    return $variation_data;
}

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

  

如果需要,您可以使用$variation_data['attributes']数组在foreach循环中定位特定的产品属性字词值。

有关信息,过滤器挂钩woocommerce_available_variation位于WC_Product_Variable get_available_variation()方法内部。