Изменение длительности сессии корзины по умолчанию

Когда посетитель впервые добавляет товар в корзину, для него создаётся сессия. По умолчанию она длится 48 часов. После истечения этого срока товары в корзине удаляются, и при следующем визите корзина будет пустой.

Эта сессия корзины не связана с настройкой «Удерживать запас» в разделе «Товары → Запасы». Настройка «Удерживать запас» применяется к заказам со статусом «Ожидает оплаты», а не к сессии корзины.

Важно: только новые посетители сразу попадают под изменение. У уже существующих пользователей корзина сохранится до окончания их текущей сессии. При необходимости можно ускорить очистку через WooCommerce → Состояние → Инструменты с помощью функции очистки сеансов клиентов.

Параметры wc_session_expiring и session_expiration управляют временем жизни сессии: первый задаёт момент предварительного истечения, второй — фактическое время окончания.

Фрагмент кода

Добавьте код в файл functions.php дочерней темы или используйте плагин для добавления пользовательских функций, например Code Snippets. Не добавляйте код напрямую в родительскую тему — он будет удалён при обновлении.

Значения времени задаются в секундах. Например, 47 часов = 60 * 60 * 47. Для теста можно временно указать 5 минут: 60 * 5.


<?php

// Устанавливает, когда сессия скоро истечёт
add_filter( 'wc_session_expiring', 'woocommerce_cart_session_about_to_expire' );

function woocommerce_cart_session_about_to_expire() {

  // Значение по умолчанию — 47 часов
  return 60 * 60 * 47;

}

// Устанавливает время полного истечения сессии
add_filter( 'wc_session_expiration', 'woocommerce_cart_session_expires' );

function woocommerce_cart_session_expires() {

  // Значение по умолчанию — 48 часов
  return 60 * 60 * 48;

}

Кэширование

Чтобы настройки работали корректно, убедитесь, что кэширование не мешает сессиям. При проблемах с «залипающими» корзинами очистите кэш плагинов и серверный кэш (при необходимости обратитесь к хостингу).

Расширения

Если вы не хотите использовать код, можно установить расширение из WooCommerce Marketplace для управления корзиной и её очисткой.

Поделиться с друзьями
Документация WooCommerce