2012-09-13 95 views
0

我有一个小问题。我有注册两个事件,但只有最后被alwas叫, 有人可以帮助我Magento只执行最后一个事件

<!-- Events --> 
<events> 
    <checkout_type_onepage_save_order_after> 
    <observers> 
     <save_after> 
     <type>singleton</type> 
     <class>XXX_testr_Model_Observer_OrderObserver</class> 
     <method>orderSubmitEvent</method> 
     </save_after> 
    </observers> 
    </checkout_type_onepage_save_order_after> 

    <customer_save_after> 
    <observers> 
     <XXX_testr_observer_observer> 
     <type>singleton</type> 
     <class>XXX_testr_Model_Observer_Observer</class> 
     <method>customerSaveEvent</method> 
     </XXX_testr_observer_observer> 
    </observers> 
    </customer_save_after>     
</events> 

回答

0

乍一看它可能是一个观察者名称冲突,尝试命名空间它是唯一

尝试改变:

save_after

到:

sdz_wawiconnector_observer_save_after

+0

喜, thx的答案,我总是尝试这一点 – user1668234

0

根据您的使用情况,您可能有更多的运气与控制器抛出事件checkout_onepage_controller_success_action一起工作。

0

首先,我可以告诉你的XML是有效的。

检查这样的事情:观察者名

  1. 副本(可能是save_after或XXX_testr_observer_observer已经存在)
  2. 看向部分,在这里你把这些观察员和那里你希望他们执行。例如,您将它们放入前端部分,因此customer_save_after将不会在管理员中运行。
  3. 检查是否有其他观察者(来自第三方扩展)以前不会崩溃。或者,例如,它可以在其代码中使用“死亡”。
  4. 检查是否存在其他扩展重写核心模型/控制器(或您的商店在应用程序/代码/本地/法师/ ..部分重写等),并没有事件调度员在其代码
相关问题