Перейти к содержимому

Сброс корзин WooCommerce — гости и зарегистрированные

Сброс корзин 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 этого обычно нет.