1

谁能告诉我当用户单击清除购物车按钮时触发的正确事件是什么。我想根据该事件删除一些信息。目前我正在使用观察者存储有关添加到购物车事件的信息。谢谢

4

3 回答 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 回答