En muchas ocasiones, cuando estás desarrollando un theme, un plugin para WordPress o directamente un código para un proyecto propio o de un cliente, necesitas conocer el rol actual del usuario que tiene iniciada la sesión.
¿Por qué? Se me ocurren multitud de situaciones pero así algunas recientes:
Y como esto… miles de casuísticas que os pueden venir. Os dejo la función y os la comento como siempre:
function cod_get_role_current_user(){ if( is_user_logged_in() ) { $user = wp_get_current_user(); $role = ( array ) $user->roles; return $role[0]; } else{ return false; } }
Es bastante rápido:
¿Qué formato de rol se devuelve? Se devuelve el formato que usa WordPress internamente es decir para «Autor» que es la cadena en español de «Author», se devuelve el «slug» del rol es decir: author. Dos cosas antes de terminar.
Realmente un usuario por defecto en WordPress sólo puede tener un rol, pero la estructura que lo alberga está preparada para tener varios roles. Es una funcionalidad un poco rara pero realmente esto es válido:
$someone = new WP_User( $user_id ); $someone->add_role( 'role-1' ); $someone->add_role( 'role-2' );
El usuario $someone tendría dos roles: role-1 y role-2 (aparte de los que ya tuviera antes, que para eso se hace add_role.
Otra cosa es que este tipo de maniobras te sirvan porque muchos sólo chequeamos el primer elemento del atributo roles.
Aparte de esta forma, que implica: crear un objeto con el usuario y devolver un elemento de un array, hay otro método más sencillo para ver el usuario activo puede desempeñar una capability. Cada role tiene asignado una serie de capabilities o capacidades. La función es current_user_can y el típico ejemplo chequear si el usuario es administrador, sería llamarla con un capability típico de administrador, como es manage_options:
current_user_can('manage_options')
Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
RedSys aparte de los pagos normales, llamados autorizaciones, acepta una variedad de operaciones: desde autorizaciones…
WooCommerce permite ordenar los productos de una forma nativa, para poder presentar primero los que…
Cada vez que hay una actualización grande del núcleo WordPress, por defecto WordPress te instala…
Una pantalla LCD es una pantalla delgada y hecha de cristal líquido. Se usa en…
De todos los plugins que existen para Gravity Forms, que son numerosos porque la propia…
Un CMS, como WordPress, facilita la creación y gestión de contenido en la web, sin…