1

100.00 €以上の金額を注文するユーザーに特定の役割を付与しようとしています: 条件付きアクションは実績にかなり近づいていますが、アクションに失敗しています (PHP が必要です)。

Ubercart 条件付きアクションで PHP アクションを使用してロールを付与するにはどうすればよいですか?

4

2 に答える 2

3

いくつかの関連 スレッドに基づいて、次の行に沿って「カスタム 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');
于 2010-08-20T23:50:36.280 に答える
3

提供されたコードは、2 つの括弧を閉じる必要があります。ステートメントを削除し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');
于 2011-08-15T17:36:54.983 に答える