Показать пустые категории без товаров 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 со страницы магазина 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