Показать пустые категории без товаров WooCommerce

Опубликовано: 25.02.2022 в категории: Woocommerce

Пустые категории без товаров по умолчанию WooCommerce не показывает на странице магазина и в виджете вывода категорий товаров. Но иногда владельцы интернет магазинов хотят, чтобы выводились все категории, в том числе и пустые, кроме «Uncategorized».

Давайте рассмотрим как показать пустые категории WooCommerce на странице магазина и в виджете, и как скрыть при этом категорию «Uncategorized» (Без категории) .

Виджет вывода категорий

В виджете вывода категорий достаточно убрать галочку в чекбоксе «Скрыть пустые категории».

категории без товаров в виджетеПравда в таком случае будет видно и категорию «Uncategorized».

Чтобы ее скрыть,  добавим в файл function.php следующий код:

//* Used when the widget is displayed as a dropdown
add_filter( 'woocommerce_product_categories_widget_dropdown_args', 'sb_exclude_wc_widget_categories' );
//* Used when the widget is displayed as a list
add_filter( 'woocommerce_product_categories_widget_args', 'sb_exclude_wc_widget_categories' );
function sb_exclude_wc_widget_categories( $cat_args ) {
$term = get_term_by('slug', 'uncategorized', 'product_cat');

if ($term) {
$cat_args['exclude'] = array( $term -> term_id); // category to exclude
// remove category ID from include list if an include list exists
if (isset($cat_args['include'])) {
$includes = wp_parse_id_list($cat_args['include']);
$key = array_search($term->term_id, $includes);
if ( isset($includes[$key]) ) {
unset( $includes[$key] ); // unset the category from include list
}
$cat_args['include'] = implode(', ', $includes);
}
return $cat_args;
}
}

Категории без товаров на странице магазина

Чтобы показать пустые категории на странице магазина добавим в  function.php следующий код:

// Показать пустые категории без товаров
add_filter( 'woocommerce_product_subcategories_hide_empty', '__return_false' );

Скрыть категорию UncategorizedА чтобы скрыть категорию «Uncategorized» на странице магазина, используем следующий код:

// Скрыть категорию Uncategorized со страницы магазина
add_filter( 'get_terms', 'ts_get_subcategory_terms', 10, 3 );
function ts_get_subcategory_terms( $terms, $taxonomies, $args ) {
$new_terms = array();
if ( in_array( 'product_cat', $taxonomies ) && ! is_admin() &&is_shop() ) {
foreach( $terms as $key => $term ) {
if ( !in_array( $term->slug, array( 'uncategorized' ) ) ) { //ваш слаг категории
$new_terms[] = $term;
}
}
$terms = $new_terms;
}
return $terms;
}

На этом все, читайте так-же о шорткодах WooCommerce

Удачи всем!

бесплатная накрутка подписчиков вконтакте

Самое читаемое:

Понравился сайт? Поделись!

Всего комментариев: 0

Оставить комментарий

Ваш email не будет опубликован.

на верх