在WooCommerce 3中显示变量Product的第二个最小变化价格

时间:2017-08-16 08:10:56

标签: php wordpress woocommerce price variations

我正在使用以下脚本:

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 变体价格。我想创建以下内容:

  • 如果最低价格为0,00,则显示第二个产品变动价格。

例如:产品X有3种不同的变化:1(€0,00),2(€5,00),3(€15,00)。如果变化价格为0,00,则显示第二个价格变化,€5,00。

1 个答案:

答案 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 +。