Odpowiedzi:
Kod wyglądałby mniej więcej tak:
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');
}
Wiem, że to stary wątek, ale teraz jest do tego moduł, patrz Ścieżki pustych koszyków Commerce . Ten moduł umożliwia administratorom witryn definiowanie wielu ścieżek, a gdy użytkownik odwiedza niezadeklarowaną stronę, koszyk jest opróżniany.
Zgodnie z sugestią wypróbuj moduł Commerce Empty Cart Paths .
Umożliwia administratorom witryn definiowanie wielu ścieżek, a gdy użytkownik odwiedza niezadeklarowaną stronę, jego koszyk jest opróżniany.
Stosowanie:
- Pobierz i włącz moduł.
- Przejdź do admin / commerce / config / empty-cart-paths i wprowadź dodatkowe ścieżki. kasa, kasa / , koszyk i koszyk / są domyślnie deklarowane.
Lub piaskownica Comberta: moduł Commerce Clear Cart , który po prostu dodaje stronę, która po odwiedzeniu opróżni obecnego użytkownika koszyk Commerce. Dodaje również link do tej strony do widoku koszyka Commerce.
Mam nadzieję, że to pomoże komuś, kto ma ten sam problem ... Zainstalowałem Path Rules https://www.drupal.org/project/pathrules . Stamtąd utwórz niestandardową regułę ... 1. Zdarzenie -> Drupal inicjuje 2. sprawdź ścieżkę koszyk / pusty 3. Działania: Usuń wszystkie produkty z zamówienia 4. goto Parametr: URL: [site: url]