1

希望你一切都好:)

今天,我在 Magento 上编程。正如您在标题中看到的,我想在订单状态发生变化(待付款、处理中、完成)时捕获一个事件。

并且,如果订单处于“处理中”或“待付款”或“完成”状态,请执行某些操作。

我在 config.xml 中为我的活动使用了“sales_order_save_after”,在我的课堂上,我这样做了:

<?php

class Test_Model_Observer extends Mage_Core_Model_Abstract
{
    /**
     * Magento passes a Varien_Event_Observer object as
     * the first parameter of dispatched events.
     */

    public function logOrderUpdated(Varien_Event_Observer  $observer)
    {
       // if state = pending payment, do:
       // if state = processing, do:
       // if state = complete, do:

       Mage::log(
          "State:",
          null, 
          'order-state.log');
    }
}

该活动有效,但我不知道如何知道订单的状态......你能帮我吗?

太感谢了!

4

1 回答 1

2
public function getStatus(Varien_Event_Observer $observer)
{
    $status = $observer->getEvent()->getOrder()->getStatus();
    $state = $observer->getEvent()->getOrder()->getState();
}
于 2013-10-11T10:01:39.513 回答