2014-10-06 80 views
3

我开发模块,在“付款接受”状态执行它自己的过程后,如果一切正常 - 将订单状态更改为发货。对于使用hookActionOrderStatusUpdate说我':Prestashop:更改订单状态hookActionOrderStatusUpdate

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

但问题是,前新的订单状态的变化“接受的付款方式”。 例子:

  1. 等待bankwire支付
  2. 交付
  3. 接受的付款方式

有谁知道如何reslove这个问题? P. S.已尝试hookActionOrderStatusPostUpdate。 PS 1.6.0.9

回答

1

请尝试displayOrderConfirmationdisplayPaymentReturn挂钩。这些钩子在付款后会收到params变量中的订单明细。

0

我有类似的问题,我用hookActionOrderStatusUpdatehookActionOrderHistoryAddAfter的组合。

原因是hookActionOrderHistoryAddAfter确实可以在“付费”状态后添加其他状态。并且hookActionOrderStatusUpdate增加了之前的“发货”,但hookActionOrderHistoryAddAfter不知道要设置的状态。 所以它看起来像这样:

class MikolaHooks extends Module 
{ 

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

    public function hookActionOrderHistoryAddAfter($params) ....