问题描述
无法更新每个传入订单的订单状态。任何默认扩展(例如 cash on delivery
)和任何运行 $this->model_checkout_order->addOrderHistory(...);
的控制器都不会执行。但是,似乎仍在接收订单电子邮件的事件正在被触发。 ?
即使在管理区域,更新丢失订单的状态或任何订单也不起作用。我尝试将函数 addOrderHistory
复制到 testOrderHistory
(具有完全相同的内容)并将每次调用从 $this->model_checkout_order->addOrderHistory(...);
更新为 $this->model_checkout_order->testOrderHistory(...);
,现在似乎可以工作了。
但是我想避免仅仅为了修复它而编辑核心文件。有没有其他办法?将所有核心文件从 $this->model_checkout_order->addOrderHistory(...);
改为 $this->model_checkout_order->testOrderHistory(...);
我还检查了服务器日志和 opencart 日志,但找不到任何相关内容。
我还测试了从 testOrderHistory()
和 addOrderHistory()
返回的字符串并继续记录它们。日志记录在 controller
的末尾工作正常,但 $this->model_checkout_order->addOrderHistory(...);
总是返回一个 bool(true)
而不是我一直试图返回的字符串。但是 $this->model_checkout_order->testOrderHistory(...);
似乎正确返回了字符串。
我被困住了,如果你们能就此给我一些启发,那就太好了。谢谢~
使用 opencart 3.0.3.7
解决方法
我做到了。 $this->model_checkout_order->addOrderHistory(...);
没有被调用,因为我添加了另一个自定义函数来侦听返回布尔值的事件 addOrderHistory/before
。这反过来会停止序列。
我不知道有些控制器不能返回值,尤其是在监听事件时。