我想在登出用戶後清除或移除購物車中的所有物品。 我發現了這一點,但我不知道我必須把它究竟Magento在登出時從購物車中移除物品
foreach(Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item){
Mage::getSingleton('checkout/cart')->removeItem($item->getId())->save();
}
我想在登出用戶後清除或移除購物車中的所有物品。 我發現了這一點,但我不知道我必須把它究竟Magento在登出時從購物車中移除物品
foreach(Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item){
Mage::getSingleton('checkout/cart')->removeItem($item->getId())->save();
}
現在,它的工作原理
應用程序的/ etc /模塊/ Amir_Meta.xml
<?xml version="1.0"?>
<config>
<modules>
<Amir_Meta>
<codePool>local</codePool>
<active>true</active>
<depends>
<Mage_Catalog />
</depends>
</Amir_Meta>
</modules>
</config>
應用程序/代碼/本地/阿米爾/元的/ etc/config.xml中
<?xml version="1.0"?>
<config>
<modules>
<Amir_Meta>
<version>0.0.1</version>
</Amir_Meta>
</modules>
<global>
<models>
<amir_meta>
<class>Amir_Meta/Observer</class>
</amir_meta>
</models>
</global>
<adminhtml>
<events>
<customer_logout><!-- event observer -->
<observers>
<amir_meta>
<class>amir_meta/observer</class>
<method>Clean_cart</method>
</amir_meta>
</observers>
</customer_logout>
</events>
</adminhtml>
</config>
應用/code/local/Amir/Meta/Model/Observer.php
<?php
class Amir_Meta_Model_Observer {
public function Clean_cart(Varient_Event_Observer $observer) {
foreach(Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item){
Mage::getSingleton('checkout/cart')->removeItem($item->getId())->save();
}
}
}
您需要創建「customer_logout」事件的觀察員。
Answer here describe how to create observer
你只需要使用 「customer_logout」 而不是 「catalog_product_save_before」。
下面代碼工作對我罰款:
在/app/etc/modules/Mycompany_Cleancart.xml在/app/code/local/Mycompany/Cleancart/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Cleancart>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
<version>0.1.0</version>
</Mycompany_Cleancart>
</modules>
</config>
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Mycompany_Cleancart>
<version>0.1.0</version>
</Mycompany_Cleancart>
</modules>
<global>
<models>
<mycompany_cleancart>
<class>Mycompany_Cleancart_Model</class>
</mycompany_cleancart>
</models>
</global>
<frontend>
<events>
<customer_logout><!-- event observer -->
<observers>
<Mycompany_Cleancart>
<class>mycompany_cleancart/observer</class>
<method>cleancart</method>
</Mycompany_Cleancart>
</observers>
</customer_logout>
</events>
</frontend>
</config>
在/app/code/local/Mycompany/Cleancart/Model/Observer.php
<?php
class Mycompany_Cleancart_Model_Observer {
public function cleancart(Varien_Event_Observer $observer){
foreach(Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item){
Mage::getSingleton('checkout/cart')->removeItem($item->getId())->save();
}
}
}
這是行不通的!我這樣做,但他從來不空我的車,當我拔下當我點擊斷開 – Miroo
在您發佈嘗試改變 amir_meta /觀察者 到 Amir_Meta_Model_Observer –
不,我認爲XML是好的config.xml中,我改變了觀察者現在它可以工作。謝謝! 我會糾正我的文章 – Miroo