我试图授予一个特定的角色给订购金额等于或大于100.00€的用户:条件操作将会非常接近成就,但我在操作上失败(PHP要求)。如何在Ubercart中授予特定角色?
如何在Ubercart条件操作中使用PHP操作授予角色?
我试图授予一个特定的角色给订购金额等于或大于100.00€的用户:条件操作将会非常接近成就,但我在操作上失败(PHP要求)。如何在Ubercart中授予特定角色?
如何在Ubercart条件操作中使用PHP操作授予角色?
基于几个relatedthreads,我想你想沿着以下(代入适当的角色名行#3)行添加一个“执行定制的PHP代码”行动:
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');
我宁愿建议使用核心'user_multiple_role_edit()'函数:http://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_multiple_role_edit/6,其中'$ accounts '必须是一个uid数组,'$ operation'必须与''add_role''相等,'$ rid'必须等于给定角色的id(你可以通过搜索来发现它user_roles()'的返回值:http://api.drupal.org/api/drupal/modules!user!user.module/function/user_roles/6)。它非常易于使用。 – Sk8erPeter 2012-03-05 21:17:56
提供的代码需要关闭两个括号。我放弃了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');
[如何分配与PHP在Drupal的角色?(HTTP的
可能重复:// stackoverflow.com/questions/3533415/how-to-assign-role-with-php-in-drupal) – kiamlaluno 2010-08-24 05:22:47
是的,你是对的,我不记得为什么我在同一天两次提交相同的问题..另一个则受到了更多的关注。 – dag729 2010-08-24 19:53:02