2015-10-22 66 views
0

我想在登出用戶後清除或移除購物車中的所有物品。 我發現了這一點,但我不知道我必須把它究竟Magento在登出時從購物車中移除物品

foreach(Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection() as $item){ 
Mage::getSingleton('checkout/cart')->removeItem($item->getId())->save(); 
} 

回答

0

現在,它的工作原理

應用程序的/ 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(); 

     } 

    } 

} 
0

您需要創建「customer_logout」事件的觀察員。

Answer here describe how to create observer

你只需要使用 「customer_logout」 而不是 「catalog_product_save_before」。

+0

這是行不通的!我這樣做,但他從來不空我的車,當我拔下當我點擊斷開 – Miroo

+0

在您發佈嘗試改變 amir_meta /觀察者 Amir_Meta_Model_Observer

+0

不,我認爲XML是好的config.xml中,我改變了觀察者現在它可以工作。謝謝! 我會糾正我的文章 – Miroo

0

下面代碼工作對我罰款:

在/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(); 

     } 
    } 
} 
相關問題