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

Если мы говорим про цены вариативных товаров WooCommerce, то по умолчанию они отображаются в виде диапазона «минимальная цена – максимальная», вот пример:

цена вариативного товара в WooCommerce

Но что, если такой формат отображения цен не всегда удобен для нас. Даже на скриншоте вы можете заметить, что цена немного не помещается на одной строчке. Ведь можно сделать отображение в виде «от минимальная цена».

Вот так:

Меняем формат цены вариативных товаров в WooCommerce

Делается это не очень сложно, но есть несколько моментов, которые нужно учесть и я расскажу о них позже. Для начала взгляните на этот сниппет кода, который можно отправить в functions.php вашей текущей темы:

add_filter( 'woocommerce_variable_price_html', 'truemisha_variation_price', 20, 2 );
 
function truemisha_variation_price( $price, $product ) {
 
	$min_regular_price = $product->get_variation_regular_price( 'min', true );
	$min_sale_price = $product->get_variation_sale_price( 'min', true );
	$max_regular_price = $product->get_variation_regular_price( 'max', true );
	$max_sale_price = $product->get_variation_sale_price( 'max', true );
 
	if ( ! ( $min_regular_price == $max_regular_price && $min_sale_price == $max_sale_price ) ) {
		if ( $min_sale_price < $min_regular_price ) {
			$price = sprintf( 'от <del>%1$s</del><ins>%2$s</ins>', wc_price( $min_regular_price ), wc_price( $min_sale_price ) );
		} else {
			$price = sprintf( 'от %1$s', wc_price( $min_regular_price ) );
		}
	}
 
	return $price;
 
}
  • На строках 5-8 мы получаем минимальные и максимальные цены вариаций, как обычные, так и распродажные.
  • Мы не делаем ничего (строка 10) в том случае, если у всех вариаций товара одинаковая цена.
  • Сниппет будет работать как в каталоге товаров, так и на страницах самих товаров.
  • Ну и функция wc_price() нужна для того, чтобы цена не отображалось тупо цифрой, а с учётом всех форматирований цены и знака валюты.

И ещё кое-что, если вы хотите научиться изменять WooCommerce не только на уровне вставки готовых сниппетов в код, то рекомендую вам мой видеокурс.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 45

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал