2014-10-06 108 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) ....