0

小さな問題があります。2 つのイベントを登録しましたが、最後のイベントだけが常に呼び出されていました。誰か助けてください。

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

使用状況によっては、コントローラーがスローした event をうまく処理できる場合がありますcheckout_onepage_controller_success_action

于 2012-09-13T12:52:15.967 に答える
0

一見したところ、オブザーバー名の競合である可能性があります。一意になるように名前空間を試してください

変更してみてください:

save_after

に:

sdz_wawiconnector_observer_save_after

于 2012-09-13T10:34:21.373 に答える
0

まず、xml が有効であることがわかります。

そのようなことを確認してください:

  1. オブザーバー名の重複 (save_after または XXX_testr_observer_observer が既に存在している可能性があります)
  2. これらのオブザーバーを配置し、そこで実行したいセクションを見てください。たとえば、それらをフロントエンド セクションに配置すると、customer_save_after は管理者で実行されません。
  3. 他のオブザーバー (サードパーティの拡張機能から) が以前にクラッシュしないかどうかを確認してください。または、たとえば、コードで「die」を使用できます。
  4. 他の拡張機能がコア モデル/コントローラーを書き換えているかどうか (またはストアの app/code/local/Mage/.. セクションにそのような書き換えがあるかどうか) を確認し、そのコードにイベント ディスパッチャーが含まれていないかどうかを確認します。
于 2012-09-16T23:00:29.783 に答える