我正在使用以下脚本:
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
$price = '';
if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
$price .= '<span style="display:none;" class="not-from">v.a. ' . _x('', 'min_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->get_price());
}
return $price;
}
此时确实显示 min 变体价格。我想创建以下内容:
例如:产品X有3种不同的变化:1(€0,00),2(€5,00),3(€15,00)。如果变化价格为0,00,则显示第二个价格变化,€5,00。
答案 0 :(得分:2)
以下是在最低价格等于 0
时显示第二个最小变量价格的方式:
add_filter('woocommerce_variable_price_html', 'custom_variation_price_html', 10, 2);
function custom_variation_price_html( $price, $product ) {
// Get all variations prices
$prices = $product->get_variation_prices( true );
// Get the prices (min and max)
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
// Get 2nd min price
$min_price2_arr = array_slice($prices['price'], 1, 1);
$min_price2 = $min_price2_arr[0];
if ( $min_price > 0) {
$price = wc_price( $min_price );
} elseif ( $min_price == 0 ) {
$price = wc_price( $min_price2 );
}
return $price;
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
这是经过代码测试的,仅适用于WooCommerce 3 +。