Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 订单上的Magento观察者事件未触发_Php_Magento - Fatal编程技术网

Php 订单上的Magento观察者事件未触发

Php 订单上的Magento观察者事件未触发,php,magento,Php,Magento,我试图运行一个事件,当有人点击下订单,但它没有开火。我知道它是有效的,因为我可以将事件更改为产品更新,并且当我更新产品时,它会写入日志文件。我正在使用《扣人心弦》杂志教程,只是更改了事件 我尝试过这两种活动: 签出\u提交\u所有\u之后 签出\u一页\u控制器\u成功\u操作 我做错了什么 Config.xml <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <

我试图运行一个事件,当有人点击下订单,但它没有开火。我知道它是有效的,因为我可以将事件更改为产品更新,并且当我更新产品时,它会写入日志文件。我正在使用《扣人心弦》杂志教程,只是更改了事件

我尝试过这两种活动:

签出\u提交\u所有\u之后 签出\u一页\u控制器\u成功\u操作 我做错了什么

Config.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <SmashingMagazine_LogProductUpdate>
            <version>0.0.1</version>
        </SmashingMagazine_LogProductUpdate>
    </modules>

    <!-- Configure our module's behavior in the global scope -->
    <global>

        <!-- Defining models -->
        <models>

            <!--
                Unique identifier in the model's node.
                By convention, we put the module's name in lowercase.
            -->
            <smashingmagazine_logproductupdate>

                <!--
                    The path to our models directory, with directory
                    separators replaced by underscores
                -->
                <class>SmashingMagazine_LogProductUpdate_Model</class>

            </smashingmagazine_logproductupdate>

        </models>

        <events>
            <checkout_submit_all_after>
                <observers>
                    <smashingmagazine_logproductupdate>
                        <class>smashingmagazine_logproductupdate/observer</class>
                        <method>logUpdate</method>
                        <type>singleton</type>
                    </smashingmagazine_logproductupdate >
                </observers>
            </catalog_product_save_after>
        </events>

    </global>

</config>
Observer.php

<?php
/**
 * Our class name should follow the directory structure of
 * our Observer.php model, starting from the namespace,
 * replacing directory separators with underscores.
 * i.e. app/code/local/SmashingMagazine/
 *                     LogProductUpdate/Model/Observer.php
 */

class SmashingMagazine_LogProductUpdate_Model_Observer
{
    /**
     * Magento passes a Varien_Event_Observer object as
     * the first parameter of dispatched events.
     */
    public function logUpdate(Varien_Event_Observer $observer)
    {



        // Write a new line to var/log/product-updates.log
        $name = 'asdf';
        $sku = 'weee';
        Mage::log(
            "{$name} ({$sku}) updated",
            null, 
            'product-updates.log'
        );
    }
}

只需使用下面的示例直接放置observer类和语法,就可以在像这样的惟一标记中获得空间


希望这一定能帮助您解决问题。

只需使用下面的示例直接放置observer类和语法,并且您在unique标记中有空间,就像这样


希望这一定能帮助您解决问题。

在Magento中创建配置xml时需要注意一些问题

始终使用not,因为当您使用namesapce/modulename作为Magento创建对象时,它将不起作用。请尝试查找类似Namespace\u modulename\u Model\u class而不是Namespace\u modulename\u Model\u class的类

在您的情况下,请正确更改名称空间和Moduel名称,或者使用下面的config.xml

<events>
       <checkout_submit_all_after>
            <observers>
                <SmashingMagazine_LogProductUpdate_Model_Observer>
                    <class>SmashingMagazine_LogProductUpdate_Model_Observer</class>
                    <method>logUpdate</method>
                    <type>singleton</type>
                </SmashingMagazine_LogProductUpdate_Model_Observer>
            </observers>
        </catalog_product_save_after>
</events>

在Magento中创建配置xml时,需要注意一些问题

始终使用not,因为当您使用namesapce/modulename作为Magento创建对象时,它将不起作用。请尝试查找类似Namespace\u modulename\u Model\u class而不是Namespace\u modulename\u Model\u class的类

在您的情况下,请正确更改名称空间和Moduel名称,或者使用下面的config.xml

<events>
       <checkout_submit_all_after>
            <observers>
                <SmashingMagazine_LogProductUpdate_Model_Observer>
                    <class>SmashingMagazine_LogProductUpdate_Model_Observer</class>
                    <method>logUpdate</method>
                    <type>singleton</type>
                </SmashingMagazine_LogProductUpdate_Model_Observer>
            </observers>
        </catalog_product_save_after>
</events>