WooCommerce не показывает товары после обновления: как исправить

Диагностика проблемы: почему товары перестали отображаться

После обновления WooCommerce или WordPress нередко возникает ситуация, когда товары не отображаются на страницах магазина. Это может быть вызвано несколькими причинами:

  • Проблемы с кэшированием (обновления не применились);
  • Неправильные настройки отображения товаров в настройках WooCommerce;
  • Ошибки в базе данных, например, потеря статуса публикации товаров;
  • Конфликты с темой или плагинами;
  • Ошибки в настройках постоянных ссылок (Permalinks);
  • Изменения в пользовательских фильтрах или хуках, которые влияют на выборку товаров.

Пошаговое решение проблемы отсутствия товаров на сайте WooCommerce

1. Проверка статуса товаров в админке

Перейдите в Товары → Все товары и убедитесь, что товары имеют статус Опубликовано. Если статус Черновик или Ожидает проверки, они не будут отображаться.

2. Очистка кэша и отключение кеширующих плагинов

Отключите все плагины кэширования (например, WP Super Cache, W3 Total Cache, LiteSpeed Cache) и очистите кэш браузера. Иногда старые данные мешают обновлениям.

3. Сброс постоянных ссылок (Permalinks)

Перейдите в Настройки → Постоянные ссылки и просто нажмите «Сохранить изменения» без правок. Это сбросит правила .htaccess и обновит маршруты WooCommerce.

4. Проверка шаблонов темы

Переключитесь временно на стандартную тему, например, Twenty Twenty-Three, чтобы проверить, не вызывает ли тема проблему. Если товары появились — причина в кастомных шаблонах.

5. Отключение всех плагинов, кроме WooCommerce

Отключите все плагины кроме WooCommerce, чтобы исключить конфликт. Если товары появились — включайте плагины по одному, чтобы выявить проблемный.

6. Проверка фильтров и хуков в functions.php

Если в теме или плагинах есть пользовательский код, который модифицирует запросы товаров, временно его отключите. Например, фильтры на pre_get_posts могут скрывать товары.

7. Восстановление базы данных и статусов товаров через SQL

Иногда товары остаются в базе, но имеют неправильный статус. Выполните следующий SQL запрос через phpMyAdmin для исправления статуса:

UPDATE wp_posts SET post_status = 'publish' WHERE post_type = 'product' AND post_status != 'publish';

Замените wp_ на префикс вашей базы.

Как проверить, что проблема решена

  • Товары отображаются в каталоге магазина на сайте.
  • В админке товары имеют статус Опубликовано.
  • При просмотре страницы товара нет ошибки 404.
  • Включение кэша и плагинов не приводит к исчезновению товаров.

Частые ошибки и как их исправить

  • Ошибка: После сброса постоянных ссылок товары все равно не видны.
    Причина: Кэш сервера или CDN не обновился.
    Решение: Очистите кэш на стороне сервера и CDN (Cloudflare, если используется).
  • Ошибка: Товары есть в базе, но не отображаются на сайте.
    Причина: Пользовательские фильтры в functions.php скрывают товары.
    Решение: Проверьте фильтры на pre_get_posts или woocommerce_product_query и временно отключите их.
  • Ошибка: При переключении темы товары исчезают.
    Причина: Кастомные шаблоны WooCommerce не поддерживаются новой темой.
    Решение: Используйте тему с полной поддержкой WooCommerce или обновите шаблоны.

Практические советы по производительности и безопасности при работе с WooCommerce

  • Регулярно обновляйте WooCommerce и сопутствующие плагины, чтобы избежать несовместимостей.
  • Используйте плагин Clearfy Pro (https://wpshop.ru/plugins/clearfy?utm_source=wp-pro.ru&utm_medium=article&utm_campaign=woocommerce-ne-pokazyvaet-tovary-posle-obnovleniya) для оптимизации базы и удаления мусора, что уменьшит вероятность ошибок.
  • Настраивайте кэширование так, чтобы страницы с товарами обновлялись своевременно (используйте исключения для страниц магазина).
  • Используйте child theme для кастомизаций WooCommerce, чтобы не потерять изменения при обновлении.
  • Регулярно делайте бэкапы базы данных перед обновлениями.

Сравнение способов решения проблемы с отображением товаров

МетодПлюсыМинусыКогда применять
Сброс постоянных ссылокПростой, быстрое решениеНе всегда помогает при сложных конфликтахПри проблемах с 404 и отсутствием товаров
Отключение плагинов/темыВыявляет конфликтТребует времени, может повлиять на работоспособность сайтаПри подозрении на конфликт с кодом
Исправление базы данных SQL запросомГарантированно исправляет статус товаровТребует доступа к базе и базовых знаний SQLЕсли товары есть, но не опубликованы
Кодовые фильтрыГибкий, можно настроить выборкуМожно ненароком скрыть товарыПри кастомных запросах и фильтрации

Пример кода для временного отключения пользовательских фильтров WooCommerce

add_action('pre_get_posts', function($query) {
    if (is_admin() || !$query->is_main_query()) {
        return;
    }
    if ($query->is_post_type_archive('product') || $query->is_tax('product_cat')) {
        remove_all_filters('pre_get_posts');
    }
}, 1);

Этот код отключит все фильтры на выборку товаров, позволяя проверить, не скрывают ли они продукты.

Чек-лист для быстрого решения проблемы с отсутствием товаров в WooCommerce

  1. Проверить статус товаров в админке — должен быть Опубликовано.
  2. Очистить и отключить все кэши.
  3. Сбросить постоянные ссылки в настройках.
  4. Переключиться на стандартную тему для теста.
  5. Отключить все плагины кроме WooCommerce.
  6. Проверить кастомные фильтры в functions.php.
  7. Выполнить SQL-запрос для исправления статусов товаров.
  8. Проверить отображение товаров на сайте.
Автоматическое удаление спама в комментариях WordPress
19.01.2026
Как добавить автоподсказку в поиск WordPress
21.03.2026
Как автоматизировать создание отзывов в WordPress с помощью плагинов и кода
23.01.2026
Как создать и настроить собственный виджет в WordPress
28.11.2025
Как автоматически удалять пустые термины в таксономиях WordPress
12.04.2026