Prestashop: изменение статуса заказа в hookActionOrderStatusUpdate

Я разрабатываю модуль, который после состояния «Платеж принят» выполняет собственный процесс и, если все в порядке, меняет состояние заказа на «Отправлено». Для этого я использую hookActionOrderStatusUpdate:

public function hookActionOrderStatusUpdate($params)
{
if($params['newOrderStatus']->id == 2)
{
if(!$this->doSomething())
return false;
}
return /*function for changing order's state*/;
}

Но проблема в том, что новый статус заказа изменяется до «Платеж принят».
Пример:

  1. Ожидание оплаты банковским переводом
  2. доставлен
  3. Платеж принят

Кто-нибудь знает, как решить эту проблему?
П.С. попробовал hookActionOrderStatusPostUpdate. PS 1.6.0.9

3

Решение

Пожалуйста, попробуй displayOrderConfirmation а также displayPaymentReturn крючки. Эти крючки получают детали заказа в переменной params после оплаты.

1

Другие решения

У меня была похожая проблема, и я использовал комбинацию hookActionOrderStatusUpdate а также hookActionOrderHistoryAddAfter,

Причина в том, что hookActionOrderHistoryAddAfter действительно может добавить другой статус после «оплаченного» статуса. А также hookActionOrderStatusUpdate добавляет ее перед «отправкой», но hookActionOrderHistoryAddAfter не знает о статусе, который будет установлен.
Так это выглядит так:

class MikolaHooks extends Module
{

public $newOrderStatusId = NULL;
public function hookActionOrderStatusUpdate($params) {
$this->newOrderStatusId = $params['newOrderStatus']->id;
}

public function hookActionOrderHistoryAddAfter($params) ....
0

По вопросам рекламы [email protected]