В одном из прошлых уроков мы уже изменяли формат отображения цены для вариативных товаров. В этом уроке попробуем сделать то же самое и для сгруппированных товаров в WooCommerce.
На этом сайте есть также видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина с нуля на основе готовой HTML-вёрстки, вот ссылка на него.
Вот наша цель:
Вообще для сгруппированных товаров всё намного проще, чем для вариативных. Для того, чтобы изменить диапазон цен на цену «От», вам достаточно вставить код ниже в ваш functions.php
текущей темы.
add_filter( 'woocommerce_grouped_price_html', 'truemisha_grouped_prices', 25, 3 ); function truemisha_grouped_prices( $price, $product, $child_prices ) { // сначала нам нужно определить минимальную и максимальную цену $min_price = min( $child_prices ); $max_price = max( $child_prices ); // теперь присваиваем её к переменной if( $min_price == $max_price ) { // если цены одинаковы, то предлог "От" не нужен $price = wc_price( $min_price ); } else { $price = 'От ' . wc_price( $min_price ); } // и возвращаем return $price; }
$child_prices
, которая содержит массив цен сгруппированных товаров, а при помощи PHP-функций min()
и max()
мы легко определяем наименьшее и наибольшее среди них.Фильтр-хук woocommerce_grouped_price_html
позволяет и полностью удалить цены сгруппированных товаров в цикле товаров, достаточно лишь возвратить пустую строку.
add_filter( 'woocommerce_grouped_price_html', 'truemisha_no_grouped_prices', 25 ); function truemisha_no_grouped_prices( $price ) { return ''; }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
А как сделать не от..., а именно сумму всех товаров в группе, у меня например комплект мебели - зеркало + тумба + раковина + шкаф, я хочу сумму за комплект, например комплект мебели акватон - 80 000 тыс.
Нигде не могу найти решение.
Кажется сама догадалась
Отлично!
Только всплывает момент, теперь нелогично работает сортировка товаров по цене, от мин к макс, по факту сначала идут сгруппированные товары, учитывается не цена всего комплекта, а цена одного компонента в комплекте. Выбирает человек ванны, у него сначала комплекты ценой 80 -100 тыс (так как в группе сифон за 500 руб), а потом бюджетные ванны 10 тыс... Стоит сортировка, а видит юсер 80тыс 90 100 105 тыс (группы )..... 10 11 12 14 тыс (простые товары) Как решить этот момент?
Это если выводить не от а именно сумму за комплект