В 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 и посмотреть, поможет ли это.