为什么我的Magento Observer没有被触发?

时间:2014-03-31 19:00:21

标签: php magento

我有一个自定义的Magento观察器设置,但其中的代码没有运行。

以下是有问题的代码: 应用程序的/ etc /模块/ Peltinc_Salesrule.xml

<?xml version="1.0"?>
<config>
    <modules>
        <peltinc_salesrule>
            <active>true</active>
            <codePool>local</codePool>
        </peltinc_salesrule>
    </modules>
</config>

应用程序/代码/本地/ Peltinc / Salesrule的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <peltinc_salesrule>
            <version></version>
        </peltinc_salesrule>
    </modules>
    <global>
        <models>
            <peltinc_salesrule>
                <class>Peltinc_SalesRule_Model</class>
            </peltinc_salesrule>
        </models>
        <events>
            <sales_order_place_after>
                <observers>
                    <peltinc_salesrule_order_observer>
                        <type>singleton</type>
                        <class>Peltinc_SalesRule_Model_Order_Observer</class>
                        <method>insert_order_to_db</method>
                    </peltinc_salesrule_order_observer>
                </observers>
            </sales_order_place_after>
        </events>
    </global>
</config>

应用程序/代码/本地/ Peltinc / Salesrule /型号/订购/ Observer.php

class Peltinc_SalesRule_Model_Order_Observer
{
    public function __construct()
    {
    }

    public function insert_order_to_db($observer)
    {
        Mage::log('In the observer');
        return $this;
    }
}

我下订单时从不写日志。我确定我的某些地方有错误的配置,但我无法发现它。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

Jimmy,xml中存在问题 peltinc_salesrule.xml应为Peltinc_Salesrule

<?xml version="1.0"?>
<config>
    <modules>
        <Peltinc_Salesrule>
            <active>true</active>
            <codePool>local</codePool>
        </Peltinc_Salesrule>
    </modules>
</config>

还需要将模块版本和<class>Peltinc_SalesRule_Model_Order_Observer</class>放到<class>peltinc_salesrule/order_observer</class>

<?xml version="1.0"?>
<config>
    <modules>
        <Peltinc_Salesrule>
            <version>1.0.0</version>
        </Peltinc_Salesrule>
    </modules>
    <global>
        <models>
            <peltinc_salesrule>
                <class>Peltinc_SalesRule_Model</class>
            </peltinc_salesrule>
        </models>
        <events>
            <sales_order_place_after>
                <observers>
                    <peltinc_salesrule_order_observer>
                        <type>singleton</type>
                        <class>peltinc_salesrule/order_observer</class>
                        <method>insert_order_to_db</method>
                    </peltinc_salesrule_order_observer>
                </observers>
            </sales_order_place_after>
        </events>
    </global>
</config>

我希望,它会起作用.....如果您有任何疑问,请告诉我。