ユーザーが[ショッピングカートのクリア]ボタンをクリックしたときにトリガーする適切なイベントを教えてもらえますか?そのイベントに基づいていくつかの情報を削除したいです。現在、オブザーバーを使用してカートイベントに追加する情報を保存しています。ありがとうございます。
質問する
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
普遍的な方法
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 に答える