Изменение отображения цен для вариативных товаров WooCommerce

Сергей Дугин
22.01.2022
Комментариев нет

По умолчанию, если вариативный товар WooCommerce имеет несколько цен, он будет отображаться с диапазоном цен:

Изменение отображения цен для вариативных товаров WooCommerce
Пример вариативного товара с диапазоном цен

Но бывают ситуации, когда посетителям интернет-магазина не нужно показывать максимальную цену товара или диапазон цен. Связано это может быть с маркетинговой политикой магазина, либо просто с техническими особенностями вашей WordPress темы (например, диапазон цен не помещается в карточке товара на странице каталога магазина).

Хорошим вариантом может послужить вывод цены от минимального значения, как на примере ниже:

Изменение отображения цен для вариативных товаров WooCommerce
Цена вариативного товара от минимального значения

Для того, чтобы изменить отображение цен вариативных товаров 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 этот текст.

Автор
Сергей Дугин
Более 5-ти лет на коммерческой основе делаю сайты, а также занимаюсь их технической поддержкой, ускорением, оптимизацией, доработкой. Еще провожу консультации и обучающие занятия по Вордпресс. Делюсь опытом на страницах своего блога.

Комментариев нет

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
cross