我正在使用此功能,所以我获得了默认的变化价格,但我想在价格后显示我的价格后缀:
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欧元”,而“每公斤”是价格后缀
答案 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()
方法内部。