Сброс корзин WooCommerce (гости + зарегистрированные)
Два SQL-запроса, которые полностью очищают корзины WooCommerce — и для гостей, и для зарегистрированных пользователей.
Быстрый способ — phpMyAdmin
Панель reg.ru → Базы данных → phpMyAdmin → база сайта → вкладка SQL
Шаг 1. Все корзины гостей и текущие сессии
TRUNCATE TABLE wp_woocommerce_sessions;
Обнуляет корзины всех, кто сейчас на сайте (гости + активные сессии авторизованных).
Шаг 2. Persistent cart зарегистрированных
DELETE FROM wp_usermeta WHERE meta_key LIKE '_woocommerce_persistent_cart_%';
Убирает сохранённую корзину зарегистрированных. Без неё корзина просто подтянется обратно при следующем логине.
После этих двух запросов у всех корзина будет пустой.
Подготовка
1. Сделать дамп базы
В phpMyAdmin вкладка «Экспорт» → быстрый экспорт. На случай отката.
2. Проверить префикс таблиц
Если у тебя не wp_, а кастомный (видно в списке таблиц слева), подставь свой и в wp_woocommerce_sessions, и в wp_usermeta.
Альтернатива — код (если не хочешь лезть в SQL)
Вставь в functions.php, открой любую страницу сайта один раз залогиненным админом, потом сразу удали код:
add_action( 'init', function() {
if ( ! current_user_can( 'manage_options' ) || empty( $_GET['gp_reset_carts'] ) ) return;
global $wpdb;
$wpdb->query( "TRUNCATE TABLE {$wpdb->prefix}woocommerce_sessions" );
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE '_woocommerce_persistent_cart_%'" );
wp_die( 'Корзины сброшены' );
} );
Открой https://твой-сайт/?gp_reset_carts=1 — и удали сниппет. $wpdb->prefix тут сам подставит правильный префикс, про него думать не надо.
Нюанс — кэширование
Если на сайте стоит объектный кэш (Redis/Memcached) или плагин кэширования, после очистки на всякий случай сбрось и его — иначе старые данные могут какое-то время отдаваться из кэша. На обычном тарифе reg.ru этого обычно нет.
