0

我有一个小问题。我注册了两个事件,但只有最后一个被调用,有人可以帮我吗

<!-- 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>
4

3 回答 3

0

首先,我可以告诉您您的 xml 是有效的。

检查这样的事情:

  1. 观察者名称的重复(可能是 save_after 或 XXX_testr_observer_observer 已经存在)
  2. 查看该部分,您将这些观察者放置在哪里,并且您希望它们被执行。例如,您将它们放入前端部分,因此 customer_save_after 不会在管理员中运行。
  3. 检查其他观察者(来自第 3 方扩展)之前是否没有崩溃。或者,例如,它可以在其代码中使用“die”。
  4. 检查其他扩展是否重写了核心模型/控制器(或者您的商店在 app/code/local/Mage/.. 部分进行了此类重写)并且其代码中没有事件调度程序
于 2012-09-16T23:00:29.783 回答
0

乍一看这可能是观察者名称冲突,尝试将其命名为唯一

尝试改变:

保存后

至:

sdz_wawiconnector_observer_save_after

于 2012-09-13T10:34:21.373 回答
0

根据您的使用情况,您可能会更幸运地使用控制器抛出的事件checkout_onepage_controller_success_action

于 2012-09-13T12:52:15.967 回答