Как отобразить в Woocommerce пустые категории в каталоге?

Добрый день. Очень часто такое бывает, создаете магазин на Woocommerce, продумываете структуру каталога и создаете все необходимые категории товаров. Но вот досада, зайдя в магазин вашего сайта Вы ничего не видите. Т.к. пустые категории не отображаются. Так вроде это нормально, но хочется увидеть структуру, как это будет выглядеть, да и дополнительные описания и другие дизайнерские решения тоже хочется глянуть не создавая ложный товар, после добавления которого отобразятся все категории которые есть в цепочке по товару.

Собственно и вопрос Как сделать отображение пустых категорий (категорий в которых нет ни единого товара)?

Если желаем отобразить пустые категории везде на сайте, добавляем в functioins.php своей темы такой код, используя фильтр ‘woocommerce_product_subcategories_hide_empty’:

<?php
/* Разрешить показывать пустые категории в магазине */
add_filter( 'woocommerce_product_subcategories_hide_empty', '__return_false' );
?>

Если нужно отобразить только в определенном месте, если у вас идет цикл выборки категорий или еще какой-то вызов, то используйте перед вызовом определение аргументов, примерно так:

$args = array(
        'hide_empty'    => 0, // Показывать пустые - 1, не показывать - 0  
    );

Например, вам нужно выбрать родительские категории, то таким кодом, применяя стандартную функцию wordpress get_terms — можно их получить все, даже пустые (зависит от значения параметра «hide_empty»):

$top_categories = get_terms("product_cat", [
  "orderby" => "menu_order", // Тип сортировки
  "order" => "ASC", // Направление сортировки
  "hide_empty" => 0, // Скрывать пустые. 1 - да, 0 - нет.
  "hierarchical" => 1, 
  "parent" => 0 
]);

// далее применяем цикл для вывода / или используем $top_categories там где нужно

Бывает так, что просят вывести заполненные и пустые родительские категории, а дочерние пустые скрывать. Можно попробовать таким кодом, как всегда добавляя его в functions.php:

<?php
add_filter( 'woocommerce_product_subcategories_hide_empty', 'wplife_show_empty_cat', 10, 1 );
function wplife_show_empty_cat ( $show_empty ) {
  $show_empty = true;  // Добавляем логику true - показывать, false - скрывать
  return $show_empty;
}
?>

Надеюсь Вы нашли себе подходящее решение и создали свой уникальный магазин на WooCommerce.

Спасибо, что дочитали до конца, в комментариях задавайте вопросы.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх