我相信下面的代码存在配置问题,模块已激活,但观察者未在事件中被触发。有谁能发现这个问题?
应用程序的/ etc /模块/ James_CoreProductCheck.xml
<?xml version="1.0"?>
<config>
<modules>
<James_CoreProductCheck>
<active>true</active>
<codePool>local</codePool>
</James_CoreProductCheck>
</modules>
</config>
应用程序/代码/本地/詹姆斯/ CoreProductCheck的/ etc / config.xml中
<?xml version="1.0"?>
<config>
<modules>
<James_CoreProductCheck>
<version>0.0.1</version>
</James_CoreProductCheck>
</modules>
<global>
<models>
<james_coreproductcheck>
<class>James_CoreProductCheck_Model</class>
</james_coreproductcheck>
</models>
<events>
<checkout_cart_product_add_after>
<observers>
<james_coreproduct_check_model_observer>
<type>singleton</type>
<class>James_CoreProductCheck_Model_Observer</class>
<method>check</method>
</james_coreproduct_check_model_observer>
</observers>
</checkout_cart_product_add_after>
</events>
</global>
</config>
应用程序/代码/本地/詹姆斯/ CoreProductCheck /型号/ Observer.php
class James_CoreProductCheck_Model_Observer {
public function check(Varien_Event_Observer $observer) {
Mage::log('Yet another product added', null, 'product-updates.log');
}
}
答案 0 :(得分:1)
尝试这个。
<events>
<checkout_cart_product_add_after>
<observers>
<sales_quote_add_item>
<class>James_CoreProductCheck_Model_Observer</class>
<method>check</method>
</sales_quote_add_item>
</observers>
</checkout_cart_product_add_after>
</events>
确保清除缓存。谢谢:))
答案 1 :(得分:0)
尝试使用不同的模块名称而不是CoreProductCheck。
因此您的代码将如下所示,它将完美运行。
应用程序/代码/本地/詹姆斯/ Prodcheck的/ etc / config.xml中
<?xml version="1.0"?>
<config>
<modules>
<James_Prodcheck>
<version>1.0.0</version>
</James_Prodcheck>
</modules>
<global>
<events>
<checkout_cart_product_add_after>
<observers>
<checkout_cart_product_add_after>
<type>singleton</type>
<class>prodcheck/observer</class>
<method>check</method>
<args></args>
</checkout_cart_product_add_after>
</observers>
</checkout_cart_product_add_after>
</events>
</global>
</config>
和观察者文件app / code / local / James / Prodcheck / Model / Observer.php
class James_Prodcheck_Model_Observer
{
public function check(Varien_Event_Observer $observer)
{
//Your code stuff.
}
}