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

Как можно вывести товары из определенной категории в выпадающем меню, если сейчас выводятся все товары, доступные на сайте? Вот код существующего скрипта:
  • 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()` - функция, которая возвращает все товары. Замените ее на свою функцию получения товаров. Предполагается, что у каждого товара есть список категорий, в которые он входит. Фильтрация товаров происходит по заданной категории, в данном случае "Женская одежда".

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

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

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

            $catalog_products_query = new WP_Query($args);

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

        &lt;/ul&gt;
    &lt;/div&gt;
&lt;/li&gt;</code></pre>
Похожие вопросы