Как вывести описание категории Woocommerce

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

Для этого нам понадобятся 2 файла.
1. archive-product — архив товаров, он же отвечает за каталог. Данный файл должен лежать по пути «you-template/woocommerce»
2. functions.php — что лежит в папке с вашим шаблоном

Первый способ будет очень простой. В файл archive-product.php добавьте следующий хук:

<?php do_action( 'woocommerce_archive_description' ); ?>

Он выведет стандартный блок с описанием категории.

Во втором способе, мы изменим вывод и добавим изображение, а так же шаблон вывода описания

Для начала заполните описание категории товара, затем в файл functions.php добавьте следующий код:

add_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description' );
function woocommerce_taxonomy_archive_description() {
	if ( is_product_category() ) {

		echo '<div class="category_desc">';
		
		global $wp_query;
/*
 *	Выводим изображение категории
 */
		$cat_id = $wp_query->get_queried_object_id();
		$category_thumbnail = get_woocommerce_term_meta($cat_id, 'thumbnail_id', true);
		$image = wp_get_attachment_url($category_thumbnail);
		echo '<img alt="" src="'.$image.'" />';
/*
 *	Выводим описание категории
 */
		if ( is_product_taxonomy() &amp;&amp; 0 === absint( get_query_var( 'paged' ) ) ) {
			$term = get_queried_object();

			if ( $term &amp;&amp; ! empty( $term->description ) ) {
				echo '<div class="term-description">' . wc_format_content( $term->description ) . '</div>';
			}
		}
		echo '</div>';
	}
}

За счет данного хука, мы изменяем вывод и добавляем в начало изображение, а потом вывод описания.

Так же мы можем добавить заголовок перед описанием. Для этого изменим код:

if ( $term &amp;&amp; ! empty( $term->description ) ) {
	echo '<div class="term-description">' . wc_format_content( $term->description ) . '</div>';
}

Заменяем на:

if ( $term &amp;&amp; ! empty( $term->description ) ) {
	echo '<div class="term-description">';
	echo '<h1>' . $term->name . '</h1>';
	echo wc_format_content( $term->description );
	echo '</div>';
}

Вот и все! Все это делается легко и просто.