magento-1.9 - Magento 1.9 观察者检查客户是否至少有完整状态的订单
问题描述
我想使用观察者检查客户是否至少完成了一个订单以将订单状态更改为处理中(所以当客户按下下订单然后检查是否有任何订单完成然后将状态从待处理更改为处理)这是我的代码但是此编辑状态为上一个订单不是现有订单
类 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;
}
}
}
解决方案
使用事件“sales_order_place_after”。与其他结帐事件相比,它在任何情况下都会在下订单时触发。
您描述的逻辑必须在观察者方法体中实现。
推荐阅读
- kotlin - Kotlin - Here Maps - 从回调函数中获取地址
- java - 骆驼并行处理随机跳过索引
- python - 熊猫如何防止自己遍历行?
- c# - 在 C# WinForms 数据网格视图中比较具有相同 id 的 2 个连续行并突出显示第 2 行的单元格中的差异?
- datalist - 边缘数据列表出错,不显示超过 10 个选项
- nlp - 我无法将自定义 NER 模型与 CoreNLP 中的现有默认模型集成
- database - 第三范式数据库
- firebase - 推送通知未正确连接到 Firebase 消息传递
- java - Firebase Java Android 检查所有节点子节点的值
- c# - 使用 explorer.exe 打开应用程序,但添加了设置