【发布时间】:2013-04-25 17:51:45
【问题描述】:
我已将以下内容添加到我正在开发的一个 magento 网站,它基本上将登录的用户名添加到订单中的任何 cmets。
http://www.atwix.com/magento/adding-senders-name-order-comments/
我现在需要做的是添加一些内容来记录在管理员中创建订单的用户或在每个订单页面上显示消息“在线订购”。
任何帮助将不胜感激。
【问题讨论】:
标签: magento
我已将以下内容添加到我正在开发的一个 magento 网站,它基本上将登录的用户名添加到订单中的任何 cmets。
http://www.atwix.com/magento/adding-senders-name-order-comments/
我现在需要做的是添加一些内容来记录在管理员中创建订单的用户或在每个订单页面上显示消息“在线订购”。
任何帮助将不胜感激。
【问题讨论】:
标签: magento
为 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;
}
}
有关如何创建观察者的更多信息,请参阅Change Magento default status for duplicated products
【讨论】: