Как отключить автоматическое удаление товаров WooCommerce при обновлении

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

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

Как понять, удаляются ли товары автоматически?

  • Проверьте журнал обновлений WooCommerce и сторонних плагинов на наличие сообщений об удалении или синхронизации.
  • Отключите все сторонние плагины импорта/синхронизации и повторите обновление — если проблема исчезла, причина в них.
  • Проверьте, не используются ли хуки, которые запускают удаление товаров при обновлении через functions.php или кастомные плагины.

Пошаговое решение: отключаем автоматическое удаление товаров

WooCommerce сам по себе не удаляет товары при обновлении, но часто сторонние решения или кастомные скрипты используют хуки, например, upgrader_process_complete или woocommerce_update_options, которые могут запускать удаление.

Чтобы остановить это, выполните следующие шаги:

  1. Временно переключитесь на стандартную тему WordPress (например, Twenty Twenty-Three), чтобы исключить влияние темы.
  2. Отключите все плагины, кроме WooCommerce.
  3. В functions.php вашей темы или в кастомном плагине добавьте следующий код, который предотвратит запуск удаления товаров при обновлении:
add_filter('pre_site_transient_update_plugins', function($value) {
    // Блокируем автоматические действия, связанные с удалением товаров
    remove_action('upgrader_process_complete', 'your_custom_delete_function');
    return $value;
});

Замените your_custom_delete_function на конкретное имя функции, которая удаляет товары — если известно.

Если вы используете сторонний плагин для импорта, проверьте его настройки на наличие опции автоматического удаления товаров, которые не найдены в файле импорта. Обычно она называется «Удалять отсутствующие товары» или «Sync delete missing products». Отключите эту опцию.

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

  • Обновите WooCommerce или плагин, который раньше вызывал проблему.
  • Проверьте, что товары остались в каталоге, используя админку WooCommerce — раздел Товары.
  • Если возможно, сравните список товаров до и после обновления с помощью SQL-запроса:
SELECT ID, post_title FROM wp_posts WHERE post_type = 'product';

Если список прежний — проблема решена.

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

  • Ошибка: Не знаете, какая функция удаляет товары.
    Решение: Включите WP_DEBUG и проверьте логи ошибок, ищите вызовы wp_delete_post или кастомные функции удаления.
  • Ошибка: Плагин импорта продолжает удалять товары, даже после отключения опции.
    Решение: Обновите плагин до последней версии или обратитесь в поддержку, иногда опция работает некорректно.
  • Ошибка: Автоматическое удаление происходит из-за крон-задач.
    Решение: Проверьте расписание wp-cron через плагин WP Crontrol, отключите подозрительные задачи.

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

  • Перед обновлением WooCommerce или плагинов всегда делайте резервную копию базы данных и файлов.
  • Для больших магазинов используйте отдельный staging-сервер для тестирования обновлений и импорта.
  • Отключайте автоматические удаления в плагинах импорта, если не уверены в их работе.
  • Контролируйте действия через логи и используйте аудит изменений (например, плагин WP Activity Log).

Сравнение вариантов предотвращения удаления товаров

МетодОписаниеПреимуществаНедостатки
Отключение опции в плагине импорта Выключить автоматическое удаление в настройках Простое решение без кода Не всегда доступно; может конфликтовать с другими настройками
Удаление хука удаления в functions.php Удалить вызовы удаления товаров через remove_action Гибкий контроль; можно точечно отключить Требует знания функции и хука; риск ошибок в коде
Отключение крон-задач, вызывающих удаление Использовать WP Crontrol для управления задачами Управление расписанием и предотвращение нежелательных действий Может повлиять на другие задачи, требует тестирования
Как добавить вывод стоимости отсутствующих товаров в корзине WooCommerce
01.05.2026
Автоматизация просмотра отзывов на WordPress: практические решения
26.03.2026
Как использовать хуки WordPress для добавления функциональности
26.12.2025
Как автоматически отправлять email-сообщения в WooCommerce при изменении статуса заказа
09.04.2026
Как создать собственный тип записи в WordPress: пошаговое руководство
05.11.2025

Совсем скоро здесь заработает сайт о вордпресс. И будет он связан с продажами, магазинами или чем-то таким.