Saltar al contenido

Wordpress – ¿Cómo comprobar si un usuario tiene un rol específico?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *