drupal :: заказать полный хук и обновить права пользователя / роли - PullRequest
4 голосов
/ 17 июля 2010

Я хочу иметь возможность обновить разрешение пользователя после того, как статус заказа будет отображен как завершенный.

Я понял, что для этого нужно использовать hook_order hook. Но как мне узнать, какой пользователь создал этот порядок и как обновить обновления разрешений, а также настроить время истечения для этой роли автоматически.

Я хочу, чтобы этот хук был вызван, как только будет произведена оплата и заказ завершен.

Любые указатели будут ценными.

1 Ответ

3 голосов
/ 17 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...