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

普遍的な方法

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
    }
}
于 2016-01-15T08:20:43.460 に答える