任何人都可以告诉我当用户点击清除购物车按钮时触发的正确事件是什么。我想根据该事件删除一些信息。目前我使用观察者存储有关添加到购物车事件的信息。谢谢
答案 0 :(得分:4)
我最近在自定义模块中实现了这个。
controller_action_predispatch_checkout_cart_updatePost
此事件在按下清除购物车时完全接听电话。
在观察者中,您可以检查该方法是否被调用为空车:
$post = Mage::app()->getRequest()->getPost('update_cart_action'); // get value
if ($post == 'empty_cart') {
// perform logic
$quote = Mage::helper('checkout/cart')->getQuote(); //quote
$allQuoteItems = $quote->getAllItems(); // quote items
// do code
}
希望它有所帮助。
答案 1 :(得分:2)
1.7.0.2中没有事件
// app/code/core/Mage/Checkout/controllers/CartController.php:389
Mage_Checkout_CartController::updatePostAction()
// app/code/core/Mage/Checkout/controllers/CartController.php:441
Mage_Checkout_CartController::_emptyShoppingCart()
// app/code/core/Mage/Checkout/Model/Cart.php:489
Mage_Checkout_Model_Cart::truncate()
// app/code/core/Mage/Sales/Model/Quote.php:837
Mage_Sales_Model_Quote::removeAllItems()
您可以在checkout_cart_save_before
上收听并检查购物车是否为空并且您的设置已设置,如果是,请将其移除。
答案 2 :(得分:1)
通用方法
config.xml中
<events>
<sales_quote_save_after>
<observers>
<module_model_observer>
<type>singleton</type>
<class>module/observer</class>
<method>salesQuoteSaveAfter</method>
</module_model_observer>
</observers>
</sales_quote_save_after>
</events>
Observer.php
public function salesQuoteSaveAfter($observer)
{
/** @var Mage_Sales_Model_Quote $quote */
$quote = $observer->getEvent()->getQuote();
if($quote->getItemsCount() == 0) {
// your code
}
}
答案 3 :(得分:0)