在 WooCommerce 3 中显示可变产品的第二个最小变化价格

Display second min variation price of a variable Product in WooCommerce 3

我正在使用以下脚本:

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时显示第二个最低可变价格的方法:

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