我正在尝试向 Magento 添加一个模块,该模块将观察者附加到 sales_order_invoice_register 事件,但无法使其正常工作。
我有一个小脚本,它只执行以下操作:
require_once('app/Mage.php');
Mage::app();
Mage::dispatchEvent('sales_order_invoice_register');
当我从 Magento 安装根目录中的命令行执行该脚本时,会按预期触发观察者方法,因此我认为所有内容都使用模块正确配置(在我的模块 config.xml 的全局部分中)。
但是,当我创建一个订单,然后从管理页面发货并开具发票时,我可以看到事件被调度但观察者没有被触发。这似乎是因为 Config.php 的 getEventConfig() 方法在查找 $_eventAreas['global'] 时不包含我在自己的 config.xml 中添加的条目(也不包含 sales_order_invoice_register 事件的任何其他条目)。有谁知道这是如何发生的,以及如何解决它?