Задать вопрос
@nugget-ekb
Верстальщик

Как в woocommerce вывести описание категории в которой нет товаров?

Имеем интернет-магазин на WP c woocommerce. В каталоге есть категории с товарами и категории без товаров, везде заполнены описания, но они не выводятся в тех категориях, где нет ни одного товара, как так? Подскажите пожалуйста, как вывести описания в пустых категориях?

в functions.php темы у меня добавлены 2 строчки
// удаляем описание категории на странице категорий
remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 );
// выводим описание категории под товарами
add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 100 );

добавлял я их соответственно для того, чтобы описание выводилось под товарами а не над, как сделано изначально. проблема по ходу в том, что строка "добавления описания после товаров" не находит товары и поэтому ни чего и не добавляет((( не могу придумать, как сделать, чтобы описания выводились в любом случае, и при наличии товаров выводились под товарами?

зы гуглить пробовал, ответ не нашел.

UPD
временно решил вопрос костылем: одной строчкой на js $('.term-description').insertAfter('ul.products');
хуки из кода выше убрал.
  • Вопрос задан
  • 2534 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Делаем дочернюю тему. Далее копируем в нее файл шаблона категории из плагина. И правим его так как надо.

Детали тут https://docs.woocommerce.com/document/template-str...
и тут https://docs.woocommerce.com/document/third-party-...
Ответ написан
VladimirARS
@VladimirARS
Можно сделать так. В файл functions.php добавь код для вывода категорий в которых нет товара:

add_filter( 'woocommerce_product_subcategories_hide_empty', function() { return false; }, 10, 1 );
function woocommerce_show_empty_categories($cat_args){
$cat_args['hide_empty']=0;
return $cat_args;
}


А для такого, чтоб описание выводилось под категорией, можно сделать так:
Найди файл отвечающий за вывод товарной категории по стандарту это обычно: archive-product.php и там найди строчку do_action( 'woocommerce_archive_description' ); и перенеси ее после кода <?php do_action( 'woocommerce_after_shop_loop' ); ?>, но не прям после него а после условия проверки отсутсвия товара в категории

что-то типа того, должно получиться:
<?php do_action( 'woocommerce_after_shop_loop' ); ?>

				<?php
			else :
				do_action( 'woocommerce_no_products_found' );
			endif;
				do_action( 'woocommerce_archive_description' );
		}
	}


Минус этого способа, что если обновишь тему, то слетит правка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы