Выводим товарные категории в классе для body при просмотре товара в WooCommerce
Данный сниппет поможет сделать различные фоновые изображения, лого и т.п. в зависимости от текущей рубрики. Добавляем код в functions.php:
add_filter('body_class','add_category_to_single'); <div style="float:right;width:350px;margin:0 0 10px 15px;"> <div id="yandex_rtb_R-A-187781-2"></div> </div> function add_category_to_single($classes, $class) { if (is_single() ) { global $post; foreach((get_the_category($post->ID)) as $category) { echo $category->cat_name . ' '; // добавляем slug категории к массиву $classes $classes[] = 'category-'.$category->slug; } } // return the $classes array return $classes; }
Произвольный диапазон цен в ссылке в WooCommerce
При работе над проектом может понадобиться добавить произвольные ссылки, которые будут вести на страницу товара с определенным диапазоном цен (например, http://my.domain.com/shop?min_price=0&max_price=2000)
Ниже приведен модифицированный код woocommerce_price_filter_init из widget-price_filter.php. Функция ниже не подгружает javascript, который выполняет фильтрацию цены в виджете, поэтому если вам нужен работающий виджет, то скрипт придется добавить дополнительно.
Код, как обычно, добавляем в файл functions.php темы:
function my_price_filter_init() { global $woocommerce; if ( ! is_admin() ) { unset( $_SESSION['min_price'] ); unset( $_SESSION['max_price'] ); if ( isset( $_GET['min_price'] ) ) $_SESSION['min_price'] = $_GET['min_price']; if ( isset( $_GET['max_price'] ) ) $_SESSION['max_price'] = $_GET['max_price']; add_filter( 'loop_shop_post_in', 'woocommerce_price_filter' ); } } remove_action('init', 'woocommerce_price_filter_init'); add_action( 'init', 'my_price_filter_init' );
Убираем бейдж скидки/распродажи для товаров в WooCommerce
Woocommerce отображает значок скидки на товарах, для которых установлена «Цена со скидкой»:
Есть несколько способов избавиться от этих значков:
Способ 1: Использовать только основную цену.
Оставляем поле «Цена со скидкой» пустым.
Способ 2. Используем CSS для скрытия значка.
Возьмем http://demo.woothemes.com/ в качестве примера. Открываем Firebug, находим css иконки распродажи.
Применяем волшебный код display:none и значок исчезает!
Возьмите следующий кусочек CSS кода, вставьте его в файл style.css своей темы, и всё.
.onsale { display: none; }
Способ 3. Основательно убираем исходный код значка скидки
Добавляем следующий код в файл functions.php своей темы:
// Убираем значок "Скидка" со страницы архива товаров remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 20 ); // Убираем значок "Скидка" со страницы карточки товара remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 20 );
По всем вопросам и отзывам просьба писать в комментарии ниже.