我创建一个Magento模块,我希望观察者触发时,我的自定义orderstatus被选中。Magento触发观察者与自定义orderstatus
实际情况: 人们选择:'Payment Received'在观察者中//DO STUFF
被触发。
这不起作用,所以这里有什么问题? (状态正确显示了虽然):-(
config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<MOD_PaidStatus>
<version>1.0.0</version>
</MOD_PaidStatus>
</modules>
<global>
<sales>
<order>
<statuses>
<payment_received translate="label"><label>Payment Received</label></payment_received>
</statuses>
<states>
<processing translate="label">
<label>Processing</label>
<statuses>
<processing default="1"/>
<payment_received default="2" />
</statuses>
<visible_on_front/>
</processing>
<pending translate="label">
<label>Pending</label>
<statuses>
<pending default="1"/>
<payment_received default="2" />
</statuses>
<visible_on_front/>
</pending>
</states>
</order>
</sales>
<events>
<sales_order_resource_save_attribute_after>
<observers>
<PaidStatus>
<class>MOD_PaidStatus/observer</class>
<method>observeAttributeChange</method>
<type>singleton</type>
</PaidStatus>
</observers>
</sales_order_resource_save_attribute_after>
</events>
</global>
</config>
而且我Observer.php样子:
class MOD_PaidStatus_Model_Observer {
public function observeAttributeChange($observer){
$attribute = $observer->getEvent()->getAttribute();
if ($attribute->getAttributeCode() == 'status') {
mail('[email protected]', 'testcase', 'foo bar?');
}
}
}
谢谢,我已经更新了问题中的代码,但我不确定我是否理解。我仍然没有收到电子邮件:[email protected] –
你可以检查是否调用了“observeAttributeChange($ observer)”函数吗? (使用调试器或插入日志调用)。如果是,attributeCode是否等于'状态'? –