Câu trả lời:
Điều này cho phép các plugin dễ dàng chiếm quyền điều khiển vai trò mặc định trong khi chúng đang hoạt động.
// Hijack the option, the role will follow!
add_filter('pre_option_default_role', function($default_role){
// You can also add conditional tags here and return whatever
return 'subscriber'; // This is changed
return $default_role; // This allows default
});
Tôi sử dụng nó để đảm bảo một số plugin cần vai trò của người đăng ký nhận được nó bất kể Quản trị viên cố gắng thay đổi :)
Trân trọng .
Khi một người dùng mới được tạo thông qua wp_insert_user()
chức năng, vai trò được đặt theo set_role()
phương thức của User
lớp và được đặt thành vai trò người dùng mặc định.
Vai trò người dùng mặc định được truy xuất từ cơ sở dữ liệu get_option('default_role')
và có thể được đặt qua Bảng điều khiển quản trị bằng cách đi tới Cài đặt> Chung> Vai trò mặc định của người dùng mới.
Nếu bạn đã đăng ký vai trò mới của mình (sử dụng add_role()
, nó sẽ có sẵn ở đó để lựa chọn.
Ngoài ra, để kiểm soát nhiều hơn, bạn có thể móc vào user_register
hoặc profile_update
hành động để sau đó set_role
dựa vào chúng một cách có điều kiện, hoặc tùy ý khác.
Sau khi bạn tạo người dùng bằng
$user_id = wp_create_user( $user_login, $pas1, $user_email );
Tạo đối tượng người dùng
$user = new WP_User($user_id);
Sau đó thiết lập vai trò
$user->set_role('editor');
Bạn có thể thay thế vai trò 'biên tập viên' bằng bất kỳ điều nào sau đây:
Người quản lý
Biên tập viên
Tác giả
Cộng tác viên
Người đăng kí
Đặt nó vào Pluging hoặc tests.php của chủ đề của bạn
//Make 'Client' a default role
update_option('default_role','client');