Có hai chức năng WordPress cho phép bạn có vai trò người dùng trong WordPress để quản lý quyền truy cập vào một trang, truy cập vào một bài đăng hoặc để thực hiện một chức năng nhất định. Chúng tôi cũng chỉ cho bạn cách nhận vai trò người dùng WordPress bằng câu lệnh SQL ở cuối trang
Nếu bạn có id người dùng WordPress, chức năng get_userdata WordPress rất phù hợp với bạn. Tuy nhiên, nếu bạn có tên người dùng, email hoặc sên của người dùng, hãy sử dụng chức năng get_user_by WordPress. Chúng tôi chỉ cho bạn cách sử dụng cả hai chức năng này để nhận vai trò của người dùng hiện tại và xác định [những] vai trò mà họ được liên kết bên dưới
SỬ DỤNG get_userdata NẾU BẠN CÓ ID NGƯỜI DÙNG
// Get the user object.
$user = get_userdata[ $user_id ];
// Get all the user roles for this user as an array.
$user_roles = $user->roles;
// Check if the specified role is present in the array.
if [ in_array[ 'subscriber', $user_roles, true ] ] {
// user is subscriber
} elseif [ in_array[ 'administrator', $user_roles, true ] ] {
// user is an administrator
} elseif [ in_array[ 'editor', $user_roles, true ] ] {
// user is an editor
} elseif [ in_array[ 'author', $user_roles, true ] ] {
// user is an author
} elseif [ in_array[ 'contributor', $user_roles, true ] ] {
// user is a contributor
}
Bạn có thể tìm thêm thông tin về hàm get_userdata tại https. // codex. báo chí. org/Function_Reference/get_userdata
SỬ DỤNG get_user_by NẾU BẠN KHÔNG CÓ ID NGƯỜI DÙNG
Nếu bạn cần nhận vai trò người dùng trong WordPress bằng email của người dùng, bạn sẽ phải sử dụng chức năng get_user_by WordPress để thay thế
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
Bạn cũng có thể lấy người dùng theo tên người dùng của họ bằng hàm get_user_by
$user = get_user_by['login', 'username'];
Và, bạn có thể lấy người dùng WordPress bằng sên bằng hàm get_user_by
$user = get_user_by['slug', 'UserSlug'];
Đối với mỗi tùy chọn get_user_by ở trên, bạn sẽ nhận vai trò người dùng WordPress giống như cách bạn đã làm với chức năng get_userdata
// Get all the user roles for this user as an array.
$user_roles = $user->roles;
Và, bạn có thể sử dụng các câu lệnh if bên dưới để kiểm tra vai trò của người dùng hiện tại [chính xác như chúng tôi đã làm ở trên]
// Check if the specified role is present in the array.
if [ in_array[ 'subscriber', $user_roles, true ] ] {
// user is subscriber
} elseif [ in_array[ 'administrator', $user_roles, true ] ] {
// user is an administrator
} elseif [ in_array[ 'editor', $user_roles, true ] ] {
// user is an editor
} elseif [ in_array[ 'author', $user_roles, true ] ] {
// user is an author
} elseif [ in_array[ 'contributor', $user_roles, true ] ] {
// user is a contributor
}
Sử dụng câu lệnh SQL để nhận vai trò người dùng WordPress
Câu lệnh SQL bên dưới lấy tất cả vai trò người dùng từ cơ sở dữ liệu của bạn. Bạn có thể sử dụng ứng dụng khách MySQL từ xa như Sequel Pro hoặc mở PHPMyAdmin và chạy lệnh SQL bên dưới trong trường Truy vấn hoặc SQL
SELECT wp_users.ID, wp_users.user_email, wp_users.user_login, wp_usermeta.meta_value
FROM wp_users INNER JOIN wp_usermeta
ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'wp_capabilities'
Lệnh trên tham chiếu bảng wp_users và bảng wp_usermeta và wp_capabilities meta_key. Đảm bảo rằng nếu cơ sở dữ liệu WordPress của bạn có tiền tố bảng khác với wp_
thì bạn thay thế các tham chiếu đến wp_users, wp_usermeta và wp_capabilities để sử dụng tiền tố bảng đó. Ví dụ: nếu bạn có tiền tố bảng là `wp2304_` thì lệnh của bạn sẽ giống như sau
SELECT wp2304_users.ID, wp2304_users.user_email, wp2304_users.user_login, wp2304_usermeta.meta_value
FROM wp2304_users INNER JOIN wp2304_usermeta
ON wp2304_users.ID = wp2304_usermeta.user_id
WHERE wp2304_usermeta.meta_key = 'wp2304_capabilities'
Cả hai lệnh trên sẽ tạo ra kết quả id người dùng, thông tin đăng nhập người dùng và giá trị meta, sẽ xác định vai trò của người dùng. Kết quả này trông giống như sau
Vai trò người dùng WordPress đóng một vai trò quan trọng khi bạn đang phát triển một chủ đề hoặc plugin WordPress kiểm soát nội dung hoặc yêu cầu các quyền hoặc khả năng khác nhau cho từng vai trò
Theo mặc định, vai trò người dùng WordPress đi kèm với một loạt khả năng, bạn có thể tìm hiểu thêm về những điều cơ bản về vai trò người dùng WordPress trước khi bắt đầu tạo plugin hoặc chủ đề yêu cầu bạn nhận vai trò người dùng hiện tại cho các mục đích khác nhau
Nhận vai trò người dùng hiện tại trong WordPress
Để lấy vai trò người dùng hiện tại trong WordPress, trước tiên bạn cần kiểm tra xem người dùng đã đăng nhập chưa, sau đó sử dụng hàm
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
0 để lấy dữ liệu về vai trò. Nếu bạn không biết làm thế nào để biết người dùng đã đăng nhập vào WordPress hay chưa, tôi đã viết một hướng dẫn hay ở đây – cách kiểm tra xem người dùng đã đăng nhập vào WordPress chưa. Chức năng WP. wp_get_current_user[]
Đây là một chức năng của WordPress thực hiện điều kỳ diệu là lấy tất cả dữ liệu về người dùng đã đăng nhập và trả về đối tượng
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
1 mà chúng ta có thể lặp qua để chọn những gì chúng ta muốn. Trong trường hợp này, chúng tôi sẽ trả về vai tròHàm này truy xuất đối tượng người dùng hiện tại và nếu người dùng chưa được đặt, nó sẽ đặt người dùng hiện tại là người đã đăng nhập. Đây là lý do tại sao;
Nhận đoạn mã vai trò người dùng hiện tại
Tùy thuộc vào cách bạn muốn sử dụng mã này, bạn có thể thêm một hook hành động hoặc sử dụng nó trong một lớp trong quá trình phát triển plugin của mình. Chức năng để có được vai trò người dùng hiện tại như sau
________số 8Bạn có thể thêm mã này vào các chức năng. php để kiểm tra và tôi đã thêm một hook hành động vào tiêu đề –
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
2 và một $user = get_user_by[ 'email', 'user@wplauncher.com' ];
3 để hiển thị dữ liệu trên tiêu đề như minh họa trong hình bên dướiNgười dùng hiện tại Nhiều vai trò
Như bạn có thể thấy trên hình ảnh đó, dữ liệu cho thấy rằng người dùng hiện tại có hai vai trò là
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
4 và $user = get_user_by[ 'email', 'user@wplauncher.com' ];
5 Về cơ bản, $user = get_user_by[ 'email', 'user@wplauncher.com' ];
6 trả về tất cả các vai trò của người dùng hiện tạiSuy nghĩ cuối cùng
Trong bài đăng này, tôi đã chia sẻ cách bạn có thể nhận vai trò người dùng hiện tại trong WordPress và sử dụng chúng trong phát triển chủ đề hoặc plugin của bạn. Để hiểu rõ hơn về cách thức hoạt động của vai trò người dùng WordPress, bạn có thể thấy hướng dẫn của tôi về cách tạo vai trò người dùng tùy chỉnh là một nơi tốt để bắt đầu và chức năng
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
7 sẽ rất hữu íchChức năng này đòi hỏi cách thức hoạt động của
$user = get_user_by[ 'email', 'user@wplauncher.com' ];
0. Hiểu vai trò của người dùng cũng có thể hữu ích cho nhà phát triển WooC Commerce, những người muốn thay đổi cách xử lý người dùng trong các sự kiện WooC Commerce khác nhau. Một ví dụ điển hình là hướng dẫn này về cách chuyển hướng người dùng WooC Commerce dựa trên vai trò Người dùng