В некоторых случаях возникает необходимость временно отключить WooCommerce на сайте WordPress, например, для проведения технических работ, обновления или тестирования. При этом важно сохранить все данные — товары, заказы, настройки, чтобы после повторной активации магазин работал без сбоев и потерь информации.
Почему просто отключить плагин WooCommerce недостаточно
Отключение плагина WooCommerce через панель администратора WordPress — самый простой путь, но он не всегда подходит. При отключении плагина многие функции магазина перестают работать, и пользователи видят ошибки или пустые страницы. Кроме того, если на сайте есть сторонние плагины или кастомный код, завязанный на WooCommerce, они также могут вести себя некорректно при отключении.
Если вы работаете с крупным проектом и хотите временно «заморозить» магазин, лучше использовать более аккуратные методы, которые обеспечат сохранность данных и корректное отображение сайта.
Способы временной деактивации WooCommerce
Рассмотрим несколько практических способов временно отключить WooCommerce.
1. Отключение функционала WooCommerce через фильтры и хуки
Вместо полной деактивации плагина можно отключить основные функции магазина. Например, убрать возможность оформления заказов, скрыть страницы магазина и товаров, при этом сам плагин остается активным и данные сохраняются.
Добавьте следующий код в файл functions.php вашей темы или в кастомный плагин:
function wptips_disable_woocommerce_frontend() {
if (is_woocommerce() || is_cart() || is_checkout()) {
wp_redirect(home_url());
exit;
}
// Отключаем REST API WooCommerce
add_filter('woocommerce_rest_is_enabled', '__return_false');
}
add_action('template_redirect', 'wptips_disable_woocommerce_frontend');
Этот код перенаправляет пользователя с любых страниц WooCommerce на главную страницу сайта. Также отключается REST API плагина для предотвращения внешних запросов к данным магазина.
2. Использование плагина Maintenance Mode с исключением WooCommerce
Если нужно закрыть магазин на техническое обслуживание, можно включить режим обслуживания через плагины вроде Maintenance Mode. При этом страницы WooCommerce можно исключить из режима обслуживания, чтобы оставить их видимыми или наоборот закрыть только магазин.
Это решение удобно, когда нужно временно блокировать доступ к сайту для посетителей, не нарушая работу админки и базы данных.
3. Отключение отдельных функций WooCommerce через настройки и плагины
Иногда достаточно выключить только оформление заказов или скрыть каталог товаров. Для этого можно использовать плагины, например, Clearfy Pro, который позволяет гибко управлять функционалом WooCommerce без деактивации плагина.
Также вручную можно отключить страницы корзины и оформления заказа через настройки WooCommerce и убрать ссылки на магазин из меню.
Как сохранить данные при отключении WooCommerce
Главное — не удалять плагин и не чистить базу данных. WooCommerce хранит товары, заказы и настройки в таблицах базы данных. При отключении плагина они остаются нетронутыми.
Рекомендуется сделать резервную копию базы данных и файлов сайта перед любыми изменениями. Для автоматизации можно использовать плагин WP Backup, который упрощает создание бэкапов.
Возврат к работе магазина после временного отключения
Чтобы вернуть магазин в рабочее состояние, достаточно:
- Удалить или отключить код, который отключал функционал WooCommerce.
- Снять режим обслуживания, если он был включён.
- Проверить, что все страницы магазина доступны, а оформление заказов работает корректно.
Если вы использовали фильтры для блокировки REST API, их следует отключить.
Пример функции для временного отключения оформления заказов
Если нужно запретить создание новых заказов, но оставить видимыми товары, можно использовать такой код:
function wptips_disable_checkout_process() {
if (is_checkout() && !is_user_logged_in()) {
wp_redirect(home_url());
exit;
}
}
add_action('template_redirect', 'wptips_disable_checkout_process');
Этот код перенаправляет на главную страницу всех неавторизованных пользователей, пытающихся оформить заказ.
Итоговые рекомендации
Временное отключение WooCommerce — задача, требующая аккуратности. Самый безопасный способ — не отключать плагин полностью, а ограничить функционал через код или плагины. Это позволит сохранить данные и быстро вернуть магазин в работу.
Используйте резервные копии, тестируйте изменения на локальной копии сайта и выбирайте подходящий способ отключения в зависимости от целей.