Respuestas:
El código se vería así:
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');
}
Sé que este es un hilo antiguo, pero ahora hay un módulo para esto, vea Rutas de carrito vacío de Commerce . Este módulo permite a los administradores del sitio definir múltiples rutas, y cuando un usuario visita una página no declarada, su carrito de compras se vacía.
Como se sugiere, pruebe el módulo de rutas de carrito de comercio vacío .
Permite a los administradores del sitio definir múltiples rutas, y cuando un usuario visita una página no declarada, su carrito de compras se vacía.
Uso:
- Descargue y habilite el módulo.
- Vaya a admin / commerce / config / empty-cart-paths e ingrese cualquier ruta adicional. Checkout, Checkout / , cart y cart / se declaran por defecto
O sandbox de combert: módulo Commerce Clear Cart que simplemente agrega una página que cuando se visite vaciará el carrito de comercio de los usuarios actuales. También agrega un enlace a esa página a la vista del carrito de comercio.
Espero que esto ayude a alguien que tenga el mismo problema ... instalé las reglas de ruta https://www.drupal.org/project/pathrules . A partir de ahí, cree una regla personalizada ... 1. Evento -> Drupal se está inicializando 2. compruebe el carrito de ruta / vacío 3. Acciones: elimine todos los productos de un pedido 4. goto Parámetro: URL: [sitio: url]