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