Выводим товарные категории в классе для 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: Использовать только основную цену.
Оставляем поле «Цена со скидкой» пустым.
![Woocommerce-Sale-Price[1]](https://wpincode.com/wp-content/uploads/2015/11/Woocommerce-Sale-Price1.png)
Способ 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 );
По всем вопросам и отзывам просьба писать в комментарии ниже.
