Отобразить вторую минимальную цену изменения переменной Product в 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;
}

Это действительно показывает мин изменение цены в данный момент. Я хочу создать следующее:

  • Если минимальная цена равна 0,00, тогда покажите 2-ую вариацию цены товара.

Например: продукт X имеет 3 различных варианта: 1 (€ 0,00), 2 (€ 5,00), 3 (€ 15,00). Если цена вариации равна 0,00, то покажите второе изменение цены, € 5,00.

2

Решение

Вот способ отображения 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+.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector