/ Сайтостроение / Плагины / Шаблон вывода категорий woocommerce

Шаблон вывода категорий woocommerce

22.11.2018

72

Зафиксировать шаблон (код) вывода категорий Woocommerce (я его назвал product-cat-list.php). Обычно я вывожу этот шаблон на стандартной странице /shop/

Шаблон вывода категорий

<div id="subcategory-archive">

	<?php $terms = get_terms( array(
		'taxonomy' => 'product_cat',
		'hide_empty' => true,
		'pad_counts'=> true,
		'orderby' => 'name',
		'parent' => 0
	) ); ?>  

	<?php if($terms) : ?>
	<?php foreach($terms as $term) : ?>

	<div class="subcategory"> 

		<a class="subcategory-image" href="<?php echo get_term_link($term->term_id);?>"><?php woocommerce_subcategory_thumbnail( $term );  ?></a>
		<h2 class="subcategory-title"><a href="<?php echo get_term_link($term->term_id);?>"><?php echo $term->name;?></a></h2>
		<p class="count"><?php if ($term->count > 0) : ?><?php echo $term->count; ?><?php else: ?>0<?php endif; ?></p>  
		<!--<div class="subcategory-descripton"><p><?php //if($term->description) : ?><?php //echo $term->description; ?><?php //else: ?>Описание термина таксономии<?php //endif; ?></p></div>-->

		<?php // Создаем массив терминов детей текущего термина текущей таксономии
		$tax = $term->taxonomy;
		$children_terms = get_terms( array(
			'taxonomy' => $tax,
			'hide_empty' => false,
			'parent' => $term->term_id
		) ); ?>

		<?php if($children_terms): // если есть дочерние категории ?>
			<ul><?php foreach ($children_terms as $children_term) : ?>
			<?php $link = get_term_link($children_term); ?>

				<li><a href="<?php echo $link ?>";><?php echo $children_term->name ?></a></li>
				<!--<p class="count"><?php //echo $children_term->count ?></p>-->

			<?php endforeach; ?></ul>
		<?php endif; // конец условия - если есть дочерние термины таксономии ?>  

	</div>

	<?php endforeach; ?>
	<?php endif; ?> 
  
</div>

Пересчет товаров во всех подкатегориях

В шаблоне выше выводится количество товаров в категориях, кол-во товаров в подкатегориях скрыто. Но тогда когда у нас есть подкатегории с товарами — необходимо считать товары во всех подкатегориях:

<?php if($children_terms): // если есть дочерние категории ?>
	<ul><?php foreach ($children_terms as $children_term) : ?>
	<?php $link = get_term_link($children_term); ?>

		<li><a href="<?php echo $link ?>";><?php echo $children_term->name; ?></a>
		<?php echo $children_term->count; ?></li>
		<?php $summ[] = $children_term->count; // запись в массив кол-ва товаров из каждой подкатегории ?>

	<?php endforeach; ?></ul>
	<?php echo array_sum($summ); $summ = []; // вывод общего количества товаров и обнуление массива ?>
<?php endif; // конец условия - если есть дочерние термины таксономии ?>

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Массовое изменение метаполей

Массовое изменение метаполей

Известная проблема/неудобство wordpress — обновление метаполей, т.е. чтобы обновить метаполе необходимо войти в запись и обновить ее. Массовое редактирование (например поменять статус записей или т.п.) в данном случае не помогает Читать далее »

«Правильные» похожие товары в woocommerce

«Правильные» похожие товары в woocommerce

Похожие товары реализованы не совсем грамотно: если добавлять товарам метки (присущие большинству товаров, например 33 класс у ламината), то похожие товары будут выводится практически одни и те же. Исправляем данный Читать далее »

Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/

Добавить комментарий

Пока нет комментариев. Будь первым!

Шаблон вывода категорий woocommerce
Breadcrumbs
Рекомендации для васBreadcrumbsOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.