wordpress-users-roles

Usuarios en WordPress – Detectar role de usuario editado

Cuando estas trabajando con usuarios en WordPress, muchas veces necesitamos agregar campos que luego salvamos y mostramos información.

Estos campos pueden ser desde dirección y teléfono de los usuarios hasta agregar más perfiles sociales. Todo esto puede complicarse un poco si queremos que información diferente sea mostrada dependiendo del role que los usuarios tengan.

Por ejemplo, recientemente tuve un caso donde necesitaba crear un Client Manager, o archivador de clientes. Un lugar donde el administrador, pudiera manejar información básica de sus clientes.

Para esto, necesitaba crear un role de “Clientes”, donde este sería solo para almacenar información básica, dirección, teléfono, etc. Pero no quería remover las opciones de avanzadas para los administradores, como manejar el esquema de color de administración, información biográfica, entre otros campos básicos para el usuario del sitio, pero completamente irrelevante para dichos clientes. Mucho menos si estos nunca ingresarán y solo se almacenaría su información.

Veamos unas imágenes:

Este es un perfil de administrador.

perfil_administrador

Este es un perfil de cliente.

perfil_cliente

 

No es lo mismo detectar si el que está editando el contenido es un administrador o un cliente, que saber si estamos editando el perfil de un administrador o cliente. El reto aquí fue poder mostrar información diferente dependiendo de si estábamos editando un Administrador o un Cliente.

Para ello usamos la siguiente solución:

En la página de perfil o sea user-edit.php en el panel de administración, el ID del usuario del perfil que está siendo editado esta almacenado en la variable global $user_id.

Por lo tanto, tenemos el siguiente código:

Expliquemos el código:

Llamamos la variable global $user_id

Luego instanciamos un nuevo objecto WP_User y lo almacenamos en la variable $edited_user

Y procedemos a chequear si nuestro role, en este caso “client”, se encuentra en el array $edited_user->roles

De ser así, pues las posibilidades son ilimitadas, podemos esconder contenido, mostrar contenido diferente o incluso completamente re-diseñar esta sección para roles específicos.

Es un pequeño código que puede ayudarnos muchísimo y darnos otro nivel de control sobre los perfiles de usuarios en WordPress.

Dejanos un comentario