Я пытаюсь запустить событие, когда кто-то нажимает на место, но он не стреляет. Я знаю, что это работает, потому что я могу изменить событие на обновление продукта и когда я обновляю продукт, который он записывает в файл журнала. Я использую учебник для разбивки журнала, просто меняя событие.
Я пробовал оба эти события:
checkout_submit_all_after
checkout_onepage_controller_success_action
Что я делаю не так?
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. * ie 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' ); } }