Как добавить товары из определенной категории в выпадающее меню?

Как можно вывести товары из определенной категории в выпадающем меню, если сейчас выводятся все товары, доступные на сайте? Вот код существующего скрипта:
  • 3 марта 2024 г. 4:28
Ответы на вопрос 2
Для добавления только товаров из определенной категории в выпадающее меню, вам нужно изменить ваш скрипт так, чтобы он фильтровал товары по категории перед выводом. Ниже приведен пример кода на PHP, который показывает, как это можно сделать:

```php
// Получение всех товаров
$products = getAllProducts(); 

// Фильтрация товаров по категории
$category = 'Женская одежда'; // Замените на нужное название категории
$categoryProducts = array_filter($products, function($product) use ($category) {
    return in_array($category, $product['categories']);
});

// Вывод товаров в выпадающем меню
echo '<select>';
foreach($categoryProducts as $product) {
    echo '<option value="'. $product['id'] .'">'. $product['name'] .'</option>';
}
echo '</select>';
```

В этом примере `getAllProducts()` - функция, которая возвращает все товары. Замените ее на свою функцию получения товаров. Предполагается, что у каждого товара есть список категорий, в которые он входит. Фильтрация товаров происходит по заданной категории, в данном случае "Женская одежда".

Поместите этот код в нужное место на вашем сайте, где должно отображаться выпадающее меню с товарами определенной категории. Данный код поможет выводить только товары из указанной категории в меню.
<li class="menu__list">
    <button type="button" class="menu__button _icon-arrow-2" data-spoller>
        <a href='#'><?php echo get_field('menu-3', 'options'); ?></a>
    </button>
    <div class="menu__items">
        <ul data-spollers="767.98, max" class="menu__product">

            <?php
            // ID или slug категории, из которой нужно получить товары
            $category_id = 'категория-id-или-слуг';

            // Аргументы для запроса
            $args = array(
                'post_type' => 'product',
                'posts_per_page' => -1, // Вывести все товары
                'tax_query' => array(
                    array(
                        'taxonomy' => 'product_cat',
                        'field' => 'term_id', // Можно использовать 'slug' вместо 'term_id', если используете slug категории
                        'terms' => $category_id,
                        'operator' => 'IN',
                    ),
                ),
            );

            $catalog_products_query = new WP_Query($args);

            if ($catalog_products_query->have_posts()) :
                while ($catalog_products_query->have_posts()) : $catalog_products_query->the_post(); ?>
                    <li class="menu__item">
                        <a href="<?php echo get_permalink(); ?>">
                            <?php the_title(); ?>
                        </a>
                    </li>
                <?php endwhile;
                wp_reset_postdata();
            endif;
            ?>

        </ul>
    </div>
</li>
Похожие вопросы