2010-07-17 75 views
4

我希望在訂單狀態顯示完成後能夠升級用戶的權限。drupal ::訂購完整掛鉤並升級用戶權限/角色

我發現我應該使用hook_order掛鉤來實現這一點。但是,如何知道哪個用戶已經創建了該訂單,以及如何更新權限以及如何自動設置該角色的過期時間。

我希望這個鉤子在支付完成並且訂單完成後立即被調用。

任何指針都是有價值的。

回答

3

hook_order中,傳遞了3個參數。第三個參數取決於第一個參數。當第一個參數是'更新'時,第三個參數就是訂單所進入的狀態。

hook_order($op, &$order, $arg2){ 
    switch($op){ 
     case 'update': 
      if($arg2 === 'completed'){ 
       // This order got marked completed 
      } 
    } 
} 

$order->uid會給你創建訂單的用戶。你可以像下面

$user = user_load(array('uid' => $order->uid)); 
// update the roles assigned to user 
user_save($user); 

東西對於到期的角色,你需要編寫一個模塊,將跟蹤持續時間,並會做這樣的事情在時間到期時以上。或者你可以使用role_expire模塊,看看是否有幫助。

+0

但是我如何知道訂單狀態是否已經完成,我希望僅當訂單完成時才調用掛鉤。 – Nikhil 2010-07-19 10:12:36

+0

我編輯了答案,以顯示訂單標記完成時如何識別案例。 – abhaga 2010-07-19 15:06:51

+0

好吧,我明白了。現在我只需編寫另一個函數來更新用戶角色並將其添加到hook_order函數中。 – Nikhil 2010-07-20 03:25:54