drupal::订购完整的钩子(Hook)并升级用户权限/角色

标签 drupal ubercart drupal-hooks

我希望在订单状态显示完成后能够升级用户的权限。

我发现我应该使用 hook_order 钩子(Hook)来实现这一点。但是我如何知道哪个用户创建了该订单以及如何更新权限以及自动为该角色设置过期时间。

我希望在付款并完成订单后立即调用此 Hook 。

任何指针都是有值(value)的。

最佳答案

hook_order ,传递了3个参数。第三个参数取决于第一个。当第一个参数是'update'时,第三个参数是订单的状态。

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模块,看看是否有帮助。

关于drupal::订购完整的钩子(Hook)并升级用户权限/角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270059/

相关文章:

drupal - 在 drupal 中包含 OpenId

php - Drupal 站点迁移后需要更高的内存限制吗?为什么?

Drupal 7 编辑用户页面覆盖

drupal - 将自定义字段添加到 Ubercart 发票

php - Drupal的模块钩子(Hook)调用从哪里开始?

drupal - 寻呼机号码与 drupal 7 中的 URI 字符串不匹配?

drupal - Paypal 错误代码 15005

drupal - 如何在 Ubercart 中显示可用库存数量?

Drupal 保存数据 hook_form_alter

php - 多次调用通配符加载器函数 (_load)