Відповіді:
Код виглядатиме приблизно так:
function MYMODULE_menu() {
$items['cart/empty'] = array(
'title' => 'Empty Cart',
'access arguments' => array('access content'), // or whatever permission you want
'page callback' => 'MYMODULE_empty_cart',
'type' => MENU_CALLBACK
);
return $items;
}
function MYMODULE_empty_cart() {
global $user;
// Load the order and empty the cart
$order = commerce_cart_order_load($user->uid);
commerce_cart_order_empty($order);
// As this page won't display anything you need to redirect somewhere
drupal_goto('some/page');
}
Я знаю, що це стара нитка, але зараз є модуль для цього див. Commerce Empty Paths Paths . Цей модуль дозволяє адміністраторам сайтів визначати кілька шляхів, і коли користувач відвідує недекларовану сторінку, їх кошик спорожняється.
Як пропонується, спробуйте модуль Commerce Empty Paths .
Це дозволяє адміністраторам сайтів визначати кілька шляхів, і коли користувач відвідує недекларовану сторінку, їх кошик спорожняється.
Використання:
- Завантажте та увімкніть модуль.
- Перейдіть до адміністратора / комерції / config / empty-cart-paths та введіть будь-які додаткові шляхи. замовлення, замовлення / , кошик та кошик / оголошуються за замовчуванням.
Або пісочниця Combert: модуль Commerce Clear Cart, який просто додає сторінку, яка при відвідуванні спорожнить поточних користувачів комерційну кошик. Він також додає посилання на цю сторінку до подання кошика.
Я сподіваюся, що це допоможе комусь із тією ж проблемою ... Я встановив Правила шляху https://www.drupal.org/project/pathrules . Звідти створіть спеціальне правило ... 1. Подія -> Drupal ініціалізується 2. Перевірте кошик шляху / порожній 3. Дії: Видаліть усі продукти з замовлення 4. goto Параметр: URL: [site: url]