Necesito verificar de alguna manera el rol de alguien solo con su identificación. he encontrado el current_user_can()
cheque. Pero esto solo funciona para las personas que han iniciado sesión. ¿Cómo verificaría esto si ese usuario no es el usuario actual? Estoy usando un sistema de pedidos por teléfono, pero usa la cuenta de administrador/específica para hacer pedidos para otras personas.
Obtener rol de usuario por ID WordPress
Tristán .L
Methanjay
Para verificar si un usuario tiene un rol específico, debe obtener una lista de sus roles y ver si el rol aparece allí.
Función de ejemplo:
function user_has_role($user_id, $role_name)
{
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;
return in_array($role_name, $user_roles);
}
Ejemplo de uso:
$user_is_subscriber = user_has_role(get_current_user_id(), 'subscriber');
-
$user_meta=get_userdata($user_id); $user_roles=$user_meta->roles; if (in_array("subscriber", $user_roles)){}
Da como resultado una verificación de rol para el suscriptor.– Tristán .L
19 de abril de 2016 a las 15:18
Ahmad Awais
La información que necesita saber antes de continuar:
- No puede obtener el rol de usuario por ID directamente.
- Tú puede obtener todos los roles a los que está asignado un usuario.
Obtengamos todos los roles y verifiquemos si el rol que le interesa está allí o ahora.
<?php
// Get the user object.
$user = get_userdata( $user_id );
// Get all the user roles as an array.
$user_roles = $user->roles;
// Check if the role you're interested in, is present in the array.
if ( in_array( 'subscriber', $user_roles, true ) ) {
// Do something.
echo 'YES, User is a subscriber';
}
hola prueba este codigo optimo
if (get_userdata($post->post_author)->roles[0] == 'your_specified_role'){
echo 'role exist';
}else{
echo 'role does not exist';
}
-
Un usuario puede tener varios roles en WordPress, por lo que la forma correcta de afirmar es
in_array
–Lucas Bustamante
4 sep 2019 a las 12:58
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;
if ( in_array( 'administrator', $user_roles, true ) ) {
//echo User is a administrator';
}
Como se describe, utilizo un sistema especial de pedidos por teléfono. Los pedidos a veces los realiza (por ejemplo) el administrador para un usuario específico. Y cuando esto sucede, necesito verificar el rol de ese usuario original
– Tristán .L
19 de abril de 2016 a las 14:33