По умолчанию, если вариативный товар WooCommerce имеет несколько цен, он будет отображаться с диапазоном цен:
Но бывают ситуации, когда посетителям интернет-магазина не нужно показывать максимальную цену товара или диапазон цен. Связано это может быть с маркетинговой политикой магазина, либо просто с техническими особенностями вашей WordPress темы (например, диапазон цен не помещается в карточке товара на странице каталога магазина).
Хорошим вариантом может послужить вывод цены от минимального значения, как на примере ниже:
Для того, чтобы изменить отображение цен вариативных товаров WooCommerce, нужно применить следующий сниппет кода, который необходимо разместить в файле function.php
вашей темы:
/*Выводим минимальную цену вариативного товара*/
function wc_custom_variable_price( $price, $product ) {
// Для простой цены
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'От: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Для цены распродажи
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'От: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_custom_variable_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_custom_variable_price', 10, 2 );
Данный сниппет отрабатывает как на архивных страницах, так и на страницах карточек товаров. Если вы хотите показывать минимальную цену без приставки “От: ” перед ценой, то удалите в приведенном коде в строках 6 и 11 этот текст.