Возвращаем диапазон цены вариативного товара как в WooCommerce 2.0

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

woocommerce_21_variable_from_price[1]

С выходом WooCommerce 2.1, вышедшей не так давно, многие пользователи заметили крупные изменения в плагине, вроде реорганизованной страницы настроек и внедрение нового REST API.

Целью каждого крупного релиза WooCommerce является упрощение и ускорение, а с WooCommerce 2.1 это означало, что множество настроек, которые редко использовались, были убраны, и были добавлены некоторые изменения в оформлении по запросам пользователей.

Одним из таких изменений стало то, что было убрано значение «От: $x» для цены вариативных товаров, а вместо него теперь выводится диапазон цен “$x – $y”. Такое новое форматирование цены для вариативных товаров может подходить не всем и тут в бой вступает наш сегодняшний сниппет.

Этот сниппет изменит новый формат вывода диапазона цен и вы получите старый добрый «От: $x», к которому пользователи привыкли в WooCommerce 2.0. Вам необходимо будет добавить следующий код в файл functions.php вашей темы:

<?php
// Используем формат цены вариативного товара WC 2.0
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $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 = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
	}
	return $price;
}
?>

По всем вопросам и отзывам просьба писать в комментарии ниже.

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

VN:F [1.9.22_1171]
please wait…
Rating: 5.0/5 (14 votes cast)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии