【发布时间】:2018-09-30 12:20:23
【问题描述】:
我想使用观察者检查客户是否至少完成了一个订单以将订单状态更改为处理中(因此当客户按下下订单然后检查是否有任何订单完成然后将状态从待处理更改为处理) 这是我的代码,但此编辑状态为先前订单而不是现有订单
类 ChangeOrder_Observerstatus_Model_Observer {
public function autoOrderevent(Varien_Event_Observer $observer)
{
$order = $observer->getEvent()->getOrder();
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$custAdmin = Mage::getSingleton('customer/session')->getCustomer();
$custAdminId = $custAdmin->getId();
$order_collection = Mage::getModel('sales/order')->getCollection()
->addFieldToSelect('*')
->addFieldToFilter('customer_id', $custAdminId)
;
foreach($order_collection as $order)
{
if ($order->getState() == "complete") {
$Is_Complet = true;
}
}
if($Is_Complet)
{
if(!Mage::registry('prevent_observer')):
Mage::register('prevent_observer',true);
$orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
$order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, 'Payment Complete.');
$order->save();
endif;
}
}
}
【问题讨论】:
标签: magento-1.9 observer-pattern