我正在尝试在我的模块中实现观察者(app / code / community / Test / Shipping)。
我的文件是: app / code / community / Test / Shipping / etc / config.xml 仅限全球部分
<global>
<models>
<test_shipping>
<class>Test_Shipping_Model</class>
</test_shipping>
</models>
<events>
<checkout_type_onepage_save_order_after>
<observers>
<Test_Shipping_Observer>
<type>singleton</type>
<class>test_shipping/observer</class>
<method>checkout_type_onepage_save_order_after</method>
</Test_Shipping_Observer>
</observers>
</checkout_type_onepage_save_order_after>
</events>
</global>
app / code / community / Test / Shipping / Model / Observer.php 我在curl中替换了一些值但是经过测试并使用了正确的值。
<?php
class Test_Shipping_Model_Observer {
public function checkout_type_onepage_save_order_after(Varien_Event_Observer $observer) {
$requests = array(
"username" => "test",
"password" => "test",
"environment" => "development",
"action" => "ship",
"service_id" => "1"
);
$url = "";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requests));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
}
}
带有开始和结束配置标记的app / etc / modules / Test_Shipping.xml ,在我的代码示例中无法获取它们。
<modules>
<Test_Shipping>
<active>true</active>
<codePool>community</codePool>
</Test_Shipping>
</modules>
但是观察者没有工作,有人可以帮助我吗?有没有办法检查方法是否被调用,所以我会知道观察者的工作,但我的卷曲不会。
答案 0 :(得分:0)
您能告诉我们您的config.xml的<config>/<modules>
部分吗?
无论如何,除了非友好的观察者的功能名称之外,它应该有效(你应该像executeCurlAfterOrderSave()
那样打电话)
确定它被称为:
在后台激活日志功能(菜单系统/配置/开发人员/日志设置
在
之后添加Mage::log('event just dispatched');
法师:: dispatchEvent( 'checkout_type_onepage_save_order_after', 数组('order'=&gt; $ order,'quote'=&gt; $ this-&gt; getQuote()));
Mage_Checkout_Model_Type_Onepage
(或Mage_Checkout_Model_Cart_Api
中调用的您正在使用API) 注意:还原此更改仅用于调试目的,因为您不能修改核心文件。
在观察者方法的开头添加Mage::log('even should be captured here');
测试您的代码并查看var / log文件夹以查看发生了什么(已记录的内容)
答案 1 :(得分:-1)
您的config.xml错误,
<global>
<models>
<test_shipping>
<class>Test_Shipping_Model</class>
</test_shipping>
</models>
</global>
<events>
<checkout_type_onepage_save_order_after>
<observers>
<Test_Shipping_Observer>
<type>singleton</type>
<class>test_shipping/observer</class>
<method>checkout_type_onepage_save_order_after</method>
</Test_Shipping_Observer>
</observers>
</checkout_type_onepage_save_order_after>
</events>