4

注文ステータスが完了を示した後に、ユーザーの権限をアップグレードできるようにしたいです。

それを実現するには、 hook_order フックを使用する必要があることがわかりました。しかし、どのユーザーがその注文を作成したかを知るにはどうすればよいですか?また、権限を更新する方法と、その役割の有効期限を自動的に設定する方法はありますか?

支払いが行われ、注文が完了するとすぐにこのフックが呼び出されるようにします。

どんなポインタも価値があります。

4

1 に答える 1

3

ではhook_order、3 つのパラメータが渡されます。3 番目のパラメーターは最初のパラメーターに依存します。最初のパラメーターが「更新」の場合、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モジュールを使用して、それが役立つかどうかを確認できます。

于 2010-07-17T19:12:53.087 に答える