С выходом 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; } ?>
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.