Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在其他magento模块中停止要触发的事件_Magento_Events_Triggers - Fatal编程技术网

如何在其他magento模块中停止要触发的事件

如何在其他magento模块中停止要触发的事件,magento,events,triggers,Magento,Events,Triggers,我有一个magento扩展,它在事件之前将用户数据发送到时事通讯\u订户\u保存\u上的aPI。但现在我必须向该api发送更多信息,新的var只能在时事通讯\u subscriber\u save\u after上找到 问题是我如何在不从Extension的config.xml中删除的情况下停止该模块的时事通讯\u订户\u保存\u之前 如果我保留这两个,它将向api发送两次数据,如果我从扩展中删除时事通讯\u订户\u保存\u,如果有人升级它,它将再次出现 我不想禁用,因为它可以从任何地方禁用事件

我有一个magento扩展,它在
事件之前将用户数据发送到
时事通讯\u订户\u保存\u上的aPI。但现在我必须向该api发送更多信息,新的var只能在
时事通讯\u subscriber\u save\u after
上找到

问题是我如何在不从Extension的config.xml中删除的情况下停止该模块的
时事通讯\u订户\u保存\u之前

如果我保留这两个,它将向api发送两次数据,如果我从扩展中删除
时事通讯\u订户\u保存\u,如果有人升级它,它将再次出现


我不想禁用,因为它可以从任何地方禁用事件

在config.xml中,您可以使用相同的事件名称,从而将事件方法更改为空。

在config.xml中,您可以使用相同的事件名称,从而将事件方法更改为空

我不想禁用,因为它可以从任何地方禁用事件

但禁用观察者是正确的方法。对于这个用例,观察者类型“disabled”确实存在

因此,如果扩展将观察者配置为:

<events>
  <newsletter_subscriber_save_before>
    <observers>
      <some_unique_code>
        <type>singleton</type>
        <class>extension/observer</class>
        <method>sendSomething</method>
      </some_unique_code>
    </observers>
  </newsletter_subscriber_save_before>
</events>
<events>
  <newsletter_subscriber_save_before>
    <observers>
      <some_unique_code>
        <type>disabled</type>
      </some_unique_code>
    </observers>
  </newsletter_subscriber_save_before>
</events>
我不想禁用,因为它可以从任何地方禁用事件

但禁用观察者是正确的方法。对于这个用例,观察者类型“disabled”确实存在

因此,如果扩展将观察者配置为:

<events>
  <newsletter_subscriber_save_before>
    <observers>
      <some_unique_code>
        <type>singleton</type>
        <class>extension/observer</class>
        <method>sendSomething</method>
      </some_unique_code>
    </observers>
  </newsletter_subscriber_save_before>
</events>
<events>
  <newsletter_subscriber_save_before>
    <observers>
      <some_unique_code>
        <type>disabled</type>
      </some_unique_code>
    </observers>
  </newsletter_subscriber_save_before>
</events>

我尝试过这个方法,但它如何停止在其他地方触发事件,这就是我为什么写“不想禁用它”的原因,不管怎样,使一个空/fack函数而不是禁用对我来说是有效的,其他一些东西是错误的。如果查看
Mage\u Core\u Model\u App::dispatchEvent()
,禁用的
类型对当前观察者没有任何作用,它不会阻止执行其他观察者。但是用一个伪方法重写这个方法最终也会有同样的效果,所以没关系。我尝试过这个方法,但是它会停止在其他地方触发事件,这就是为什么我写了“不想禁用它”的原因。无论如何,使一个空/fack函数而不是disable对我起作用。其他一些东西是错误的。如果查看
Mage\u Core\u Model\u App::dispatchEvent()
,禁用的
类型对当前观察者没有任何作用,它不会阻止执行其他观察者。但是用一个伪方法重写这个方法最终也会有同样的效果,所以这没关系。