2020年更新 (适用于 Woocommerce 3+)
替换已弃用的函数woocommerce_price()
by wc_price()
自 Woocommerce 3+ 起:
add_filter('woocommerce_variable_sale_price_html', 'shop_variable_product_price', 10, 2);
add_filter('woocommerce_variable_price_html','shop_variable_product_price', 10, 2 );
function shop_variable_product_price( $price, $product ){
$variation_min_reg_price = $product->get_variation_regular_price('min', true);
$variation_min_sale_price = $product->get_variation_sale_price('min', true);
if ( $product->is_on_sale() && !empty($variation_min_sale_price)){
if ( !empty($variation_min_sale_price) )
$price = '<del class="strike">' . wc_price($variation_min_reg_price) . '</del>
<ins class="highlight">' . wc_price($variation_min_sale_price) . '</ins>';
} else {
if(!empty($variation_min_reg_price))
$price = '<ins class="highlight">'.wc_price( $variation_min_reg_price ).'</ins>';
else
$price = '<ins class="highlight">'.wc_price( $product->regular_price ).'</ins>';
}
return $price;
}
原线(WooCommerce 3 之前):下面的代码应该符合您的预期:
add_filter('woocommerce_variable_sale_price_html', 'shop_variable_product_price', 10, 2);
add_filter('woocommerce_variable_price_html','shop_variable_product_price', 10, 2 );
function shop_variable_product_price( $price, $product ){
$variation_min_reg_price = $product->get_variation_regular_price('min', true);
$variation_min_sale_price = $product->get_variation_sale_price('min', true);
if ( $product->is_on_sale() && !empty($variation_min_sale_price)){
if ( !empty($variation_min_sale_price) )
$price = '<del class="strike">' . woocommerce_price($variation_min_reg_price) . '</del>
<ins class="highlight">' . woocommerce_price($variation_min_sale_price) . '</ins>';
} else {
if(!empty($variation_min_reg_price))
$price = '<ins class="highlight">'.woocommerce_price( $variation_min_reg_price ).'</ins>';
else
$price = '<ins class="highlight">'.woocommerce_price( $product->regular_price ).'</ins>';
}
return $price;
}
该代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。
这段代码已经过测试并且可以工作。