繁体   English   中英

如何在Ubercart中授予特定角色?

[英]How can I grant a specific role In Ubercart?

我正在尝试向订购金额等于或大于100.00€的用户授予特定角色:条件操作确实接近成就,但操作失败(需要PHP)。

如何在Ubercart条件操作中使用PHP操作授予角色?

基于几个相关的 线程 ,我认为您想按照以下内容添加“执行自定义PHP代码”操作(在第3行中替换相应的角色名称):

if($account) {
  $uid = $account->uid;
  $role_name = 'YOUR SPECIFIC ROLE NAME GOES HERE';
  $rid = db_result(db_query("SELECT rid FROM {role} WHERE name = '%s'", $role_name));

  // Load user object
  $account = user_load(array('uid' => 1));

  // Save the user object with the new roles.
  if ($account !== FALSE) {
    $roles = $account->roles + array($rid => $role_name);
    user_save($account, array('roles' => $roles));

  watchdog('user', 'uc ca added role to Ubercart created user');

提供的代码需要用两个括号括起来。 我删除了if语句,从订单中获取了uid并修复了uid设置(它为'1'):

  $uid = $order->uid;
  $role_name = 'customer';
  $rid = db_result(db_query("SELECT rid FROM {role} WHERE name = '%s'", $role_name));

  // Load user object
  $account = user_load(array('uid' => $uid));

  // Save the user object with the new roles.
  $roles = $account->roles + array($rid => $role_name);
  user_save($account, array('roles' => $roles));

  watchdog('user', 'uc ca added role to Ubercart created user');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM