谁能告诉我当用户单击清除购物车按钮时触发的正确事件是什么。我想根据该事件删除一些信息。目前我正在使用观察者存储有关添加到购物车事件的信息。谢谢
问问题
5086 次
3 回答
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
}
希望能帮助到你。
于 2013-06-21T10:03:49.607 回答
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
并检查购物车是否为空以及您的设置是否已设置,如果是,请将其删除。
于 2013-01-08T09:24:50.087 回答
1
通用方法
配置文件
<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>
观察者.php
public function salesQuoteSaveAfter($observer)
{
/** @var Mage_Sales_Model_Quote $quote */
$quote = $observer->getEvent()->getQuote();
if($quote->getItemsCount() == 0) {
// your code
}
}
于 2016-01-15T08:20:43.460 回答