Solución:
Si solo necesita esto para el usuario actual current_user_can()
acepta tanto roles como capacidades.
ACTUALIZAR: Pasando un nombre de rol a current_user_can()
ya no se garantiza que funcione correctamente (consulte el n.º 22624). En su lugar, es posible que desee verificar el rol del usuario:
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
//The user has the "author" role
}
Estaba buscando una forma de obtener el rol de un usuario usando la identificación del usuario. Esto es lo que se me ocurrió:
function get_user_roles_by_user_id( $user_id ) {
$user = get_userdata( $user_id );
return empty( $user ) ? array() : $user->roles;
}
Entonces, un is_user_in_role()
La función podría implementarse así:
function is_user_in_role( $user_id, $role ) {
return in_array( $role, get_user_roles_by_user_id( $user_id ) );
}
También puede crear un nuevo objeto de usuario:
$user = new WP_User( $user_id );
if ( ! empty( $user->roles ) && is_array( $user->roles ) && in_array( 'Some_role', $user->roles ) ) {
return true;
}
No estoy seguro de qué versión get_user_roles_by_user_id
se eliminó, pero ya no es una función disponible.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)