WooCommerce — мощный плагин для создания интернет-магазинов на WordPress. Однако при активном использовании кэширования иногда возникают проблемы с обновлением информации, например, цены товаров, наличие на складе или отображение корзины. В этой статье мы подробно разберём, как правильно удалить кэш WooCommerce, чтобы избежать подобных проблем и улучшить работу сайта.
Почему важно очищать кэш WooCommerce
Кэширование — это сохранение временных версий страниц и данных для ускорения загрузки сайта. Но WooCommerce динамически обновляет данные — корзина, цены, наличие товара. Если кэш не обновляется, пользователи видят устаревшую информацию, что приводит к ошибкам и потере клиентов.
Очищать кэш нужно регулярно и правильно, особенно после изменений в настройках магазина, обновления товаров или оформления заказов. Это поможет поддерживать актуальность данных и корректное отображение.
Виды кэша, которые нужно учитывать в WooCommerce
В WooCommerce задействованы несколько типов кэша:
- Объектный кэш WordPress и WooCommerce. Сохраняет результаты запросов к базе данных.
- Кэш страниц. Используется плагинами вроде WP Super Cache, W3 Total Cache, LiteSpeed Cache, чтобы быстро отдавать готовые страницы.
- Кэш на уровне сервера и CDN. Например, кэш NGINX, Varnish или Cloudflare.
Для корректной работы WooCommerce нужно очищать все эти виды кэша, иначе проблемы останутся.
Как удалить кэш WooCommerce вручную через WordPress
Для начала рассмотрим базовый способ очистки кэша WooCommerce через админку WordPress:
- Перейдите в раздел WooCommerce → Статус → Инструменты.
- Найдите пункт Очистить кэш транзиентов и нажмите кнопку Очистить. Транзиенты — временные данные, которые WooCommerce использует для кэширования.
- Пролистайте ниже и нажмите Очистить кэш сессий — это очистит данные корзины и сессий пользователей.
Этот способ решает большинство проблем, связанных с внутренним кэшем WooCommerce.
Пример функции для автоматической очистки транзиентов и сессий WooCommerce
Можно добавить в файл functions.php вашей темы или создать небольшой плагин с таким кодом для удаления кэша программно:
function clearfy_clear_woocommerce_cache() {
if ( function_exists('wc_delete_product_transients') ) {
wc_delete_product_transients(); // Очистка транзиентов продуктов
}
if ( class_exists('WC_Session_Handler') ) {
WC()->session->destroy_session(); // Удаление сессионных данных
}
// Очистка кэша корзины
WC()->cart->empty_cart();
}
add_action('init', 'clearfy_clear_woocommerce_cache');Этот код полезен, если нужно сбросить кэш программно, например, после обновления товаров через скрипт.
Как очистить кэш плагинов кеширования, совместимых с WooCommerce
Если на сайте установлен плагин кеширования, его кэш нужно очищать отдельно, иначе WooCommerce не сможет обновить динамические данные.
Рассмотрим популярные плагины с примерами:
WP Super Cache
В админке перейдите в Настройки → WP Super Cache и нажмите кнопку Удалить кэш. Также можно использовать функцию в коде:
if ( function_exists('wp_cache_clear_cache') ) {
wp_cache_clear_cache();
}W3 Total Cache
В панели управления W3 Total Cache нажмите Performance → Dashboard → Empty All Caches.
Программно очистить кэш можно так:
if ( function_exists('w3tc_flush_all') ) {
w3tc_flush_all();
}LiteSpeed Cache
В административной панели LiteSpeed Cache выберите LiteSpeed Cache → Manage → Purge All.
Через код:
if ( class_exists('LiteSpeed_Cache_API') ) {
LiteSpeed_Cache_API::purge_all();
}Очистка кэша на уровне сервера и CDN
Если вы используете серверное кэширование (например, Varnish, NGINX FastCGI Cache) или CDN (Cloudflare, BunnyCDN), очистка кэша должна выполняться через их панели управления или API.
Для Cloudflare можно использовать следующий пример на PHP, если есть API ключ:
function clearfy_clear_cloudflare_cache() {
$zone_id = 'ваш_zone_id';
$api_key = 'ваш_api_key';
$email = 'ваш_email';
$ch = curl_init("https://api.cloudflare.com/client/v4/zones/$zone_id/purge_cache");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["purge_everything" => true]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"X-Auth-Email: $email",
"X-Auth-Key: $api_key",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}Это позволит программно очищать CDN-кэш вместе с остальными.
Практические рекомендации для устранения проблем с кэшем WooCommerce
Чтобы избежать проблем с кэшированием в WooCommerce, следуйте рекомендациям:
- Отключайте кэширование страниц для динамических страниц WooCommerce (корзина, оформление заказа, аккаунт пользователя).
- Регулярно очищайте транзиенты и сессии WooCommerce через встроенные инструменты или программно.
- Настройте исключения в плагинах кеширования для страниц магазина.
- Если используете CDN, синхронизируйте очистку кэша с обновлениями сайта.
- Тестируйте сайт после очистки кэша, чтобы убедиться в актуальности данных.
Использование плагина Clearfy для оптимизации кэширования WooCommerce
Плагин Clearfy PRO предлагает удобные инструменты для управления кэшем и оптимизации WooCommerce. В нем есть опции для автоматической очистки транзиентов, отключения ненужных скриптов и стилей WooCommerce на страницах без корзины или оформления заказа, что снижает нагрузку и проблемы с кэшированием.
Используйте Clearfy для комплексной оптимизации и устранения проблем с кэшированием на вашем сайте.
Заключение
Проблемы с кэшированием WooCommerce — частая причина ошибок отображения и устаревшей информации. Регулярная и правильная очистка кэша всех уровней — от транзиентов WooCommerce до серверного и CDN-кеша — гарантирует стабильную работу магазина и удобство для пользователей. Воспользуйтесь встроенными инструментами, кодовыми решениями и плагинами, чтобы автоматизировать этот процесс и поддерживать сайт в оптимальном состоянии.