WC_Cart::empty_cart() — как очистить корзину в WooCommerce

Простейший способ очистки корзины текущего пользователя в одну строчку кода.

$korzina = new WC_Cart();
$korzina->empty_cart( $clear_persistent_cart = true );

Или же вариант, который мне больше нравится:

global $woocommerce;
$woocommerce->cart->empty_cart( $clear_persistent_cart = true );
$clear_persistent_cart
(логическое) Укажите false, если не хотите затрагивать постоянную корзину (которая сохраняется в usermeta пользователей, а соответственно параметр игнорируется, если пользователь не авторизован, проверка происходит функцией get_current_user_id()).

Пример. Просто очищаем корзину.

Можете вставить этот код прямо в файл определённого шаблона темы или же в какую-либо функцию.

global $woocommerce;
$woocommerce->cart->empty_cart();

Хук woocommerce_cart_emptied

Выполняется уже после того, как корзина была очищена. Например обновим метаданные текущего пользователя после того, как его корзина станет пустой (неважно каким способом).

add_action( 'woocommerce_cart_emptied', 'true_chistaya_korzina');
 
function true_chistaya_korzina(){
	update_user_meta( get_current_user_id(), '_some_user_meta', 'hello');
}

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Да, точно)

  • Владимир: и на третьей строке не хватает скобки ) закрывающей if :)

  • Миша: Добрый вечер! Рекомендую получить ID пользователя через функцию get_current_user_id().

  • Дмитрий: Миша, подскажите пожалуйста, я использую такой редирект, но он не срабатывает: add_action( 'template_redirect', funct...

  • Миша: Ну как не определена - это аргумент функции. Или я просто вас не до конца понимаю.