【问题标题】:Why is my Magento Observer is not being triggered?为什么我的 Magento Observer 没有被触发?
【发布时间】:2014-03-31 19:00:20
【问题描述】:

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

这里是有问题的代码: app/etc/modules/Peltinc_Salesrule.xml

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

app/code/local/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>

app/code/local/Peltinc/Salesrule/Model/Order/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;
    }
}

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

【问题讨论】:

    标签: php magento


    【解决方案1】:

    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>
    

    还需要把模块版本和&lt;class&gt;Peltinc_SalesRule_Model_Order_Observer&lt;/class&gt;放到&lt;class&gt;peltinc_salesrule/order_observer&lt;/class&gt;

    <?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>
    

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

    【讨论】:

    • 不,很遗憾,这没有帮助。 (还是)感谢你的建议。还有什么问题吗?
    • 从 var/cache 中删除缓存并同时删除 var/log
    • 删除 var/log 和 var/cache 没有帮助。我将尝试全新安装 magento,看看是否有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2022-07-03
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多