我对 prestashop 1.7.6 的自定义模块有疑问。我尝试更改订单状态 - 它工作正常,但有时它不会触发 hookActionOrderStatusPostUpdate
这是我更改订单状态的循环。
foreach ($ordersIds as $orderId) {
$order = new Order($orderId);
if($order->current_state != $newStatusId) {
$history = new OrderHistory();
$history->id_order = (int)$order->id;
$history->changeIdOrderState($newStatusId, $order);
$history->addWithemail(true);
$history->save();
}
}
有时会出现订单状态正确更改,但未触发hookActionOrderStatusPostUpdate的问题。
我认为你使用了错误的钩子。
actionOrderStatusPostUpdate
钩子在new OrderStatus()
保存到数据库之前被触发。您应该使用 actionOrderHistoryAddAfter
钩子来代替。
有关挂钩的更多详细信息,请参阅 Prestashop 开发人员文档: https://devdocs.prestashop-project.org/1.7/modules/concepts/hooks/list-of-hooks/