Saya memiliki masalah yang sama (itu sebabnya saya memulai karunia).
Saya memecahkannya dengan cara ini.
Saya menambahkan fungsi ke modul khusus. Anda dapat dengan mudah membuat modul Anda sendiri dengan membuat folder baru di / situs / semua / modul dengan dua file:
yourname_module.info - >>
name = "Custom Functions"
description = "Allows execution of custom code for the website"
core = 7.x
package = "yourname_customs"
version = 7.x-1.x
namaanda.module
<?php
function yourname_add_role_to_user($uid, $role_name) {
$user = user_load($uid);
if ($user === false || !isset($user->uid) || !is_array($user->roles)) {
//Display an ugly error when user is not set correctly
exit('$user is not set correctly <pre>' . print_r($user, true) . "</pre>");
}
//Get the user roles
$roles = user_roles(TRUE);
$rid = array_search($role_name, $roles);
if ($rid != FALSE) {
$new_role[$rid] = $role_name;
// Add new role to existing roles.
$all_roles = $user->roles + $new_role;
//Delete all user roles from DB
db_delete('users_roles')
->condition('uid', $user->uid)
->execute();
//Insert all user roles in DB
$query = db_insert('users_roles')->fields(array('uid', 'rid'));
foreach (array_keys($all_roles) as $rid) {
if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) {
$query->values(array(
'uid' => $user->uid,
'rid' => $rid,
));
}
}
$query->execute();
} else {
//Display an ugly error wen role not found
exit("Could not find role " . htmlspecialchars($role_name) . "<br/>
Vald roles: <pre>" . print_r($roles, true) . "</pre>");
}
}
Kemudian goto modul Anda dan aktifkan "Fungsi Kustom".
Pastikan Anda mengaktifkan kode php khusus modul.
Kemudian alih-alih tindakan tambahkan pengguna ke peran dalam aturan, tambahkan: jalankan kode php khusus dan masukkan:
yourname_add_role_to_user($account->uid, "Members");
header("Location: /admin/people");
exit;
Ini menambahkan pengguna ke peran, dan menghentikan skrip. Jika Anda tidak menghentikan skrip, peran tersebut tidak disimpan. Dan saya perlu menambahkan modul karena user_save
tidak berfungsi ketika dieksekusi di custom php code
.
Jadi, saya tahu itu sangat jelek, tetapi itu bekerja untuk saya.