我无法让magento回应事件sales_order_save_after。我用观察者来表示这个事件。我很确定我的xml很好,因为我使用Magicento。这是我的config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Magicento_Modul>
<version>0.1.0</version>
</Magicento_Modul>
</modules>
<global>
<models>
<magicento_modul>
<class>Magicento_Modul_Model</class>
<resourceModel>magicento_modul_resource</resourceModel>
</magicento_modul>
<magicento_modul_resource>
<class>Magicento_Modul_Model_Resource</class>
</magicento_modul_resource>
</models>
<blocks>
<magicento_modul>
<class>Magicento_Modul_Block</class>
</magicento_modul>
</blocks>
<helpers>
<magicento_modul>
<class>Magicento_Modul_Helper</class>
</magicento_modul>
</helpers>
<events>
<sales_order_save_after>
<observers>
<magicento_modul_model_observer>
<class>Magicento_Modul_Model_Observer</class>
<type>singleton</type>
<method>act</method>
</magicento_modul_model_observer>
</observers>
</sales_order_save_after>
</events>
</global>
</config>
这是我在本地/ Magicento / Modul / Model / Observer.php中的act方法:
class Magicento_Modul_Model_Observer {
public function act($observer) {
$order=$observer->getPayment()->getOrder();
$sa=$order->getShippingAddress();
$fp = fopen('fajl_iz_magicento_modula.txt', 'w');
fwrite($fp, $sa);
}
}
答案 0 :(得分:1)
看起来你的观察者的行为方法有问题。事件sales_order_save_after不会分派付款对象,而是订购。所以在你的行为方法中进行纠正,如:
$order = $observer->getEvent()->getOrder()
而不是
$order=$observer->getPayment()->getOrder();