我有一个观察者会触发catalog_controller_product_view事件。它工作正常,但是当我将产品添加到购物车时,Magento会生成另一个事件,然后重定向回产品视图,然后再次调用我的观察者。
我想阻止这种行为。我尝试在第一个产品视图和从购物车重定向后记录整个$observer
对象,但它们完全相同。
任何想法,如何防止Observer在此事件上被调用两次?
P.S。我正在使用Magento 1.9.2
答案 0 :(得分: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
}