1

我已将以下内容添加到我正在处理的 magento 站点中,它基本上将登录的用户名添加到对订单的任何评论中。

http://www.atwix.com/magento/adding-senders-name-order-comments/

我现在需要做的是添加一些东西来记录哪个用户在管理员中创建了订单,或者在每个订单页面上显示消息“在线订购”。

任何帮助,将不胜感激。

4

1 回答 1

1

为 sales_order_place_after 创建一个观察者

<events>
    <sales_order_place_after>
        <observers>
            <orderenteredby>
                <type>singleton</type>
                <class>orderenteredby/observer</class>
                <method>implementOrderMethod</method>
            </orderenteredby>
        </observers>
    </sales_order_place_after>

在 Observer.php 中

class MagePal_OrderEnteredBy_Model_Observer 
{

    public function implementOrderMethod($event)
    {
        $_order = $event->getOrder();

        if($this->_isAdmin()){
            $_user = Mage::getSingleton('admin/session');
            $firstname = $_user->getUser()->getFirstname();
            $lastname = $_user->getUser()->getLastname();
            $enterBy = "Order entered by {$firstname} {$lastname}";  
        }
        else{
            $enterBy = 'Ordered Online';
        }
        $_order->addStatusHistoryComment($enterBy)
               ->setIsVisibleOnFront(false)
               ->setIsCustomerNotified(false);

        return $this;
    }

    protected function _isAdmin(){
        if(Mage::app()->getStore()->isAdmin()){
            return true;
        }

        if(Mage::getDesign()->getArea() == 'adminhtml'){
            return true;
        }

        return false;
    }
}

有关如何创建观察者的更多信息,请参阅更改重复产品的 Magento 默认状态

于 2013-04-25T23:37:37.190 回答