В WooCommerce есть несколько способов скрыть товары от отображения на вашем сайте, в зависимости от того, что вам нужно: скрыть товар полностью, скрыть его от пользователей, но оставить доступным для покупки по прямой ссылке, или скрыть его для определённых категорий пользователей. 1. Скрытие товара через настройки видимости WooCommerce позволяет легко скрыть товар, используя настройки видимости прямо в карточке товара. Шаги для скрытия товара: Перейдите в Товары > Все товары. Откройте для редактирования нужный товар. В правой части экрана, в блоке Публикация, найдите опцию Видимость. Нажмите Редактировать рядом с опцией Видимость. Выберите Скрытый. Нажмите ОК и Обновить. После этого товар будет скрыт из каталога и результатов поиска, но по прямой ссылке его можно будет открыть. Это полезно, если вы хотите оставить возможность покупки товара только для тех, кто знает точный URL. 2. Скрытие товара с помощью атрибута "Каталог и поиск" Вы можете настроить товар так, чтобы он не отображался в каталоге и результатах поиска, но оставался доступным для прямой покупки. Шаги для настройки: Откройте товар для редактирования. В блоке Публикация найдите пункт Видимость в каталоге. Выберите опцию Только поиск, если вы хотите скрыть товар из каталога, но оставить его доступным в результатах поиска, или Скрытый, если хотите скрыть его полностью. Сохраните изменения. 3. Скрытие товара для определённых пользователей или ролей Если вы хотите скрыть товар только для определённых пользователей (например, для незарегистрированных или для пользователей с определённой ролью), вам понадобится кастомный код или использование плагина. Пример кода для скрытия товара для незарегистрированных пользователей: Добавьте следующий код в файл functions.php вашей темы: // Скрываем товары для незарегистрированных пользователей add_action( 'pre_get_posts', 'hide_products_for_guests' ); function hide_products_for_guests( $query ) { if ( ! is_user_logged_in() && $query->is_main_query() && ! is_admin() && is_shop() ) { $query->set( 'post__not_in', array(123, 456) ); // Укажите ID товаров, которые нужно скрыть } } Замените 123 и 456 на ID товаров, которые вы хотите скрыть. Эти товары будут скрыты для гостей, но доступны для зарегистрированных пользователей. Использование плагинов: WooCommerce Members Only ? плагин, который позволяет скрывать товары для определённых пользователей или ролей. WooCommerce Catalog Visibility Options ? плагин, который позволяет гибко настраивать видимость товаров на основе различных условий. 4. Скрытие товара на странице магазина, но оставление его в категориях Если вам нужно скрыть товар только на главной странице магазина (странице магазина WooCommerce), но оставить его в категориях, вы можете использовать кастомный код. Пример кода для скрытия товара на странице магазина: Добавьте следующий код в файл functions.php вашей темы: // Скрываем товар на странице магазина, но оставляем его в категориях add_action( 'pre_get_posts', 'hide_product_on_shop_page' ); function hide_product_on_shop_page( $query ) { if ( ! is_admin() && $query->is_main_query() && is_shop() ) { $query->set( 'post__not_in', array( 123 ) ); // Укажите ID товара, который нужно скрыть } } Замените 123 на ID товара, который вы хотите скрыть на странице магазина. 5. Скрытие товара на основе состояния на складе WooCommerce позволяет автоматически скрывать товары, которые отсутствуют на складе. Шаги для настройки: Перейдите в WooCommerce > Настройки > Товары > Запасы. Найдите опцию Скрывать отсутствующие на складе товары и активируйте её. Нажмите Сохранить изменения. Теперь товары, которых нет на складе, будут автоматически скрываться с витрины магазина. 6. Скрытие товаров для определённых категорий или меток Вы также можете скрыть все товары определённой категории или метки, если вам нужно временно убрать их с витрины. Пример кода для скрытия товаров определённой категории: Добавьте следующий код в файл functions.php вашей темы: // Скрываем товары категории "odezhda" на странице магазина add_action( 'pre_get_posts', 'hide_category_products_from_shop' ); function hide_category_products_from_shop( $query ) { if ( ! is_admin() && $query->is_main_query() && is_shop() ) { $tax_query = (array) $query->get( 'tax_query' ); $tax_query[] = array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'odezhda' ), // Укажите слаг категории, которую нужно скрыть 'operator' => 'NOT IN', ); $query->set( 'tax_query', $tax_query ); } } Этот код скрывает все товары из категории с ярлыком odezhda на странице магазина. Вы можете заменить odezhda на нужную вам категорию. WooCommerce предоставляет гибкие возможности для скрытия товаров в зависимости от ваших потребностей. Вы можете скрыть товары через настройки видимости, с помощью плагинов или кастомного кода, скрыть их для определённых пользователей или на определённых страницах.