4
我希望在訂單狀態顯示完成後能夠升級用戶的權限。drupal ::訂購完整掛鉤並升級用戶權限/角色
我發現我應該使用hook_order掛鉤來實現這一點。但是,如何知道哪個用戶已經創建了該訂單,以及如何更新權限以及如何自動設置該角色的過期時間。
我希望這個鉤子在支付完成並且訂單完成後立即被調用。
任何指針都是有價值的。
我希望在訂單狀態顯示完成後能夠升級用戶的權限。drupal ::訂購完整掛鉤並升級用戶權限/角色
我發現我應該使用hook_order掛鉤來實現這一點。但是,如何知道哪個用戶已經創建了該訂單,以及如何更新權限以及如何自動設置該角色的過期時間。
我希望這個鉤子在支付完成並且訂單完成後立即被調用。
任何指針都是有價值的。
在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模塊,看看是否有幫助。
但是我如何知道訂單狀態是否已經完成,我希望僅當訂單完成時才調用掛鉤。 – Nikhil 2010-07-19 10:12:36
我編輯了答案,以顯示訂單標記完成時如何識別案例。 – abhaga 2010-07-19 15:06:51
好吧,我明白了。現在我只需編寫另一個函數來更新用戶角色並將其添加到hook_order函數中。 – Nikhil 2010-07-20 03:25:54