我試圖授予一個特定的角色給訂購金額等於或大於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