2017-09-18 16 views
0

私はobserverを使ってcatalog_controller_product_viewイベントを発生させます。それはうまくいきますが、カートに商品を追加すると、Magentoは別のイベントを生成し、製品ビューにリダイレクトされ、ここで再びオブザーバーが呼び出されます。Observerを2回呼び出さないようにする

この現象を防止します。私は最初の製品ビューで、そしてカートからリダイレクトした後に全体として$observerオブジェクトをログに記録しようとしましたが、それらは全く同じです。 このイベントでObserverが2回呼び出されるのを防ぐ方法はありますか?

P.S.私はMagento 1.9.2を使用しています

答えて

0

私の回避策はどれくらい良いのか分かりませんが、うまくいきます。

$coreSession = Mage::getSingleton('core/session'); 
if ($event_name == 'catalog_controller_product_view' && $coreSession->getData("test") == 1){ 
     $coreSession->setData("test", 0); 
     return; 
    } 
// view 
if ($event_name == 'catalog_controller_product_view'){ 
     $coreSession->setData("test", 0); 
     // Do stuff 
    } 
// add_to_cart 
elseif ($event_name == 'checkout_cart_add_product_complete'){ 
     $coreSession->setData("test", 1); 
     // Do stuff 
    } 
関連する問題