@JohnEkler
Web-Разработчик

Woocommere, как вывести товары под категорией на странице магазина?

Магазин на Wordpress с использованием Woocommerce.
На странице товаров ("Shop"), из админки можно вывести категории (обязательно с изображением категории!) и под ними уже все товары, пример: 8209ee8017aa4a17890e4adf5b1b7f4c.jpg
Мне необходимо вывести товары под каждой категорией, к которой этот товар принадлежит, пример:
b9c9f73ed6c84ccdb976c5a2f109601c.jpg
Чтобы эти категории были вроде выпадающего списка, то есть при нажатии на стрелочку , под категорией разворачивался список с товарами этой категории.

Пытался в шаблоне категорий выводить товар, который принадлежит к этой категории, но у $product нету поля к какой категории он относится.

Если у кого есть рабочий код или плагин, буду благодарен!
  • Вопрос задан
  • 2162 просмотра
Решения вопроса 1
@JohnEkler Автор вопроса
Web-Разработчик
Если кому-то понадобится, нашел часть кода, которая выводит товары под категориями списком.
Ну, а остальной внешний вид "Допилите"))

$args = array(
    'number'     => $number,
    'orderby'    => 'title',
    'order'      => 'ASC',
    'hide_empty' => $hide_empty,
    'include'    => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
    foreach ( $product_categories as $product_category ) {
        echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';
        $args = array(
            'posts_per_page' => -1,
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'slug',
                    // 'terms' => 'white-wines'
                    'terms' => $product_category->slug
                )
            ),
            'post_type' => 'product',
            'orderby' => 'title,'
        );
        $products = new WP_Query( $args );
        echo "<ul>";
        while ( $products->have_posts() ) {
            $products->the_post();
            ?>
                <li>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    </a>
                </li>
            <?php
        }
        echo "</ul>";
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trampick
@trampick
Веб-разработчик
Сам вопрос можно разделить на 2 части:

- Верстка. Тут надо либо уметь самому, либо заказать у кого-то. Готового варианта Вам не предоставят.

- Программирование этого функционала.
У wc есть в настройках режим отображения каталога. Можно выводить подкатегории (если они есть), можно подкатегории и товар, можно только товар - возможно этого будет достаточно.
Либо можно писать свой функционал. Вам нужно получить все категории таксономии products_cat через функцию get_terms();. Затем перебирать вся категории через foreach и формировать запросы для получения списка товара на основе wp_query. Ну и выводить список товаров.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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