Wordpress nhận người dùng theo vai trò

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', '[email protected]' );

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', '[email protected]' );
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', '[email protected]' );
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ố 8

Bạ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', '[email protected]' );
2 và một
$user = get_user_by( 'email', '[email protected]' );
3 để hiển thị dữ liệu trên tiêu đề như minh họa trong hình bên dưới

Get Current User Role in WordPress

Ngườ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', '[email protected]' );
4 và
$user = get_user_by( 'email', '[email protected]' );
5 Về cơ bản,
$user = get_user_by( 'email', '[email protected]' );
6 trả về tất cả các vai trò của người dùng hiện tại

Suy 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', '[email protected]' );
7 sẽ rất hữu ích

Chức năng này đòi hỏi cách thức hoạt động của

$user = get_user_by( 'email', '[email protected]' );
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

Vai trò người dùng trong cơ sở dữ liệu WordPress ở đâu?

Có bao nhiêu vai trò người dùng được xác định trong WordPress theo mặc định?

Vai trò người dùng WordPress là gì?

Trong WordPress, vai trò người dùng được trao cho mỗi người có thể đăng nhập vào trang web của bạn để xác định những gì họ có thể và không thể làm . Theo mặc định, năm vai trò người dùng được cung cấp. Điều này có nghĩa là một số người dùng có thể có toàn quyền kiểm soát trang web của bạn trong khi những người khác sẽ chỉ có thể xem nội dung của bạn.