Respostas:
O código ficaria assim:
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');
}
Sei que esse é um thread antigo, mas agora existe um módulo para isso, consulte Caminhos vazios de carrinho de comércio . Este módulo permite que os administradores do site definam vários caminhos e, quando um usuário visita uma página não declarada, seu carrinho de compras é esvaziado.
Conforme sugerido, tente o módulo Commerce Empty Cart Paths .
Ele permite que os administradores do site definam vários caminhos e, quando um usuário visita uma página não declarada, seu carrinho de compras é esvaziado.
Uso:
- Faça o download e ative o módulo.
- Vá para admin / commerce / config / empty-cart-caminhos e insira quaisquer caminhos adicionais. checkout, checkout / , cart e cart / são declarados por padrão.
Ou a caixa de areia da combert: módulo Commerce Clear Cart , que simplesmente adiciona uma página que, quando visitada, esvazia o carrinho Commerce dos usuários atuais. Ele também adiciona um link para essa página na exibição de carrinho do Commerce.
Espero que isso ajude alguém com o mesmo problema ... Instalei as Regras de caminho https://www.drupal.org/project/pathrules . A partir daí, crie uma regra personalizada ... 1. Evento -> Drupal está inicializando 2. verifique o caminho do carrinho / vazio 3. Ações: Remova todos os produtos de um pedido 4. vá para Parâmetro: URL: [site: url]