Диагностика проблемы: зачем отключать обновления WooCommerce?
WooCommerce регулярно выпускает обновления, которые могут ломать кастомный функционал или конфликовать с установленными плагинами и темами. Иногда нужно временно или постоянно отключить автоматические уведомления и попытки обновления WooCommerce, чтобы избежать проблем на рабочем сайте.
Проверить, что WooCommerce предлагает обновления, можно на странице Консоль > Обновления в админке WordPress или в разделе «Плагины».
Пошаговое решение: отключаем проверки обновлений WooCommerce через functions.php
Блокируем проверку обновлений WooCommerce в ядре WordPress
Для отключения проверок обновлений WooCommerce добавьте следующий код в файл functions.php активной темы или в подключаемый кастомный плагин:
add_filter('site_transient_update_plugins', function($value) {
if (isset($value->response['woocommerce/woocommerce.php'])) {
unset($value->response['woocommerce/woocommerce.php']);
}
return $value;
});Этот фильтр удалит WooCommerce из списка доступных обновлений.
Отключаем уведомление об обновлении WooCommerce в админке
Чтобы скрыть уведомления, дополнительно можно добавить:
add_action('admin_menu', function() {
remove_action('admin_notices', 'update_nag', 3);
});Однако этот код отключит все уведомления обновлений — будьте осторожны, если нужна выборочная блокировка.
Запрет автоматических обновлений WooCommerce
Если WooCommerce обновляется автоматически через механизмы WordPress, можно полностью запретить автообновления плагинов и выбрать исключения:
add_filter('auto_update_plugin', function($update, $item) {
if ($item->plugin === 'woocommerce/woocommerce.php') {
return false; // Запрет автообновления WooCommerce
}
return $update;
}, 10, 2);Проверка результата после внедрения
- Зайдите в Консоль > Обновления — WooCommerce не должен отображаться в списке обновляемых плагинов.
- На странице плагинов не должно быть уведомлений о доступных обновлениях WooCommerce.
- При выполнении
wp plugin update woocommerceиз терминала должна выводиться ошибка или сообщение, что обновление не доступно (если wp-cli используется).
Частые ошибки и как исправить
- Код не работает после добавления в functions.php: Возможно, код был добавлен в дочернюю тему, которая не активна, или в тему, которая перезаписывает фильтры. Проверьте, что active theme — та, где вы добавили код.
- Автообновления WooCommerce продолжаются: Убедитесь, что нет других плагинов, которые принудительно включают автообновления (например, Easy Updates Manager). Проверьте их настройки.
- Обновления WooCommerce все равно отображаются в админке: Кэш админки или transient данные могут сохранять старую информацию. Очистите кэш через WP-CLI командой
wp transient delete --allили вручную.
Практические советы по безопасности и производительности
- Отключение обновлений WooCommerce увеличивает риск уязвимостей. Всегда тестируйте обновления на staging-среде перед применением на продакшене.
- Используйте систему контроля версий для хранения изменений в functions.php, чтобы быстро откатить изменения.
- Регулярно очищайте transient данные, чтобы админка показывала актуальную информацию по обновлениям.
- Для более продвинутого контроля обновлений рассмотрите использование плагина Clearfy Pro (https://wpshop.ru/plugins/clearfy?source=wpdream.ru&medium=article&campaign=kak-udalit-obnovleniya-woocommerce-cherez-functions-php), который позволяет гибко управлять автообновлениями без кода.
Сравнение способов отключения обновлений WooCommerce
| Метод | Плюсы | Минусы |
|---|---|---|
| Код в functions.php | Быстро, без плагинов, полный контроль | Риск ошибочного удаления, нужно навыки кодирования |
| Плагины (Clearfy, Easy Updates Manager) | Удобный интерфейс, дополнительные функции | Зависимость от плагинов, нагрузка на сайт |
| Игнорирование обновлений | Простота | Риск безопасности, нет контроля |