Формат отображения цены для сгруппированных товаров

В одном из прошлых уроков мы уже изменяли формат отображения цены для вариативных товаров. В этом уроке попробуем сделать то же самое и для сгруппированных товаров в WooCommerce.

На этом сайте есть также видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина с нуля на основе готовой HTML-вёрстки, вот ссылка на него.

Меняем диапазон цен на цену «от…»

Вот наша цель:

формат отображения цены у сгруппированного товара WooCommerce
«Толстовка» в данном случае это сгруппированный товар. И мы изменили у него формат отображения цены на странице «Магазин», в архивах категорий и тегов товаров.

Вообще для сгруппированных товаров всё намного проще, чем для вариативных. Для того, чтобы изменить диапазон цен на цену «От», вам достаточно вставить код ниже в ваш 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() мы легко определяем наименьшее и наибольшее среди них.
  • Функция wc_price() же нужна для отображения цены не в виде тупо числа, а в соответствующем формате, со знаком валюты т.д.

Полностью удаляем отображение цены для сгруппированных товаров

Фильтр-хук woocommerce_grouped_price_html позволяет и полностью удалить цены сгруппированных товаров в цикле товаров, достаточно лишь возвратить пустую строку.

add_filter( 'woocommerce_grouped_price_html', 'truemisha_no_grouped_prices', 25 );
 
function truemisha_no_grouped_prices( $price ) {
	return '';
}

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.