Antworten:
Der Code würde ungefähr so aussehen:
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');
}
Ich weiß, dass dies ein alter Thread ist, aber es gibt jetzt ein Modul dafür, siehe Commerce Empty Cart Paths . Mit diesem Modul können Site-Administratoren mehrere Pfade definieren. Wenn ein Benutzer eine nicht deklarierte Seite besucht, wird sein Warenkorb geleert.
Probieren Sie wie vorgeschlagen das Modul Commerce Empty Cart Paths aus .
Site-Administratoren können mehrere Pfade definieren. Wenn ein Benutzer eine nicht deklarierte Seite besucht, wird sein Warenkorb geleert.
Verwendungszweck:
- Laden Sie das Modul herunter und aktivieren Sie es.
- Gehen Sie zu admin / trade / config / empty-cart-path und geben Sie weitere Pfade ein. checkout, checkout / , cart und cart / sind standardmäßig deklariert.
Oder die Sandbox von combert: Commerce Clear Cart- Modul, das einfach eine Seite hinzufügt, die beim Besuch den Commerce-Warenkorb des aktuellen Benutzers leert. Außerdem wird der Commerce-Warenkorbansicht ein Link zu dieser Seite hinzugefügt.
Ich hoffe, dies hilft jemandem, der das gleiche Problem hat ... Ich habe Path Rules https://www.drupal.org/project/pathrules installiert . Von dort aus erstellen Sie eine benutzerdefinierte Regel ... 1. Ereignis -> Drupal wird initialisiert 2. Pfadwagen überprüfen / leer 3. Aktionen: Alle Produkte aus einer Bestellung entfernen 4. gehe zu Parameter: URL: [Site: URL]