禁用保存事件可能是一种危险且有害的方法。我不推荐它。
但是,如果您坚持,我认为您可以通过在运行时使用事件更改配置节点来实现这一点。 以下是更改配置节点的方法:
您需要做的是,在调用$product->save()
从配置中获取所有具有与产品相关事件的节点之前:global/events/catalog_product_save_before
,global/events/catalog_product_save_after
...可能还有其他节点并将节点插入<type>disabled</type>
其中。保存完成后删除type
节点。
您可以为这样的事件获取所有(全局)观察者:
Mage::getConfig()->getNode('global/events/catalog_product_save_before');
循环遍历结果并将类型设置为禁用。
这是一个例子。
假设您有事件: some/model_here someAction
你需要这样做:
Mage::getConfig()->setNode("global/events/catalog_product_save_before/observers/some_alias/type", 'disabled');
注:除global
区域外,可在frontend
和adminhtml
区域找到活动。