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.
Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…
Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…
¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…
Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…
Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…
Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…