En un artículo anterior habíamos visto los estilos CSS que WordPress genera por defecto, sin embargo no tenemos un estilo que nos indique el rol de un usuario conectado.
Resultado final
En el ejemplo que veremos, buscamos ocultar por CSS los widgets de la barra lateral y mostrar sólo el que corresponde al rol del usuario conectado.

Código para agregar una clase de rol
La idea general es agregar al elemento HTML body una clase adicional que indique el rol del usuario, de esta forma podemos estilizar elementos que se cargan en el sitio de acuerdo a esa clase CSS de rol.
add_filter( 'body_class', function( $classes ){
foreach( (array) wp_get_current_user()->roles as $role ){
$classes[] = "role-$role";
}
return $classes;
});
En el código anterior:
- Usamos el Hook body_class, que hace referencia a una función anónima
- La función pasa el argumento $classes que es un array
- Usamos la función wp_get_current_user() para obtener el rol o roles del usuario actual
- Agregamos los roles encontrados en el argumento
- Finalmente retornamos el argumento $classes modificado
Código CSS
En nuestro ejemplo usamos dos widgets HTML, los cuales ocultamos por defecto y sólo mostramos el que corresponde con el rol correcto de acuerdo a la clase CSS agregada.
#custom_html-2,
#custom_html-3{
display:none;
}
.role-customer #custom_html-2,
.role-author #custom_html-3{
display:block;
}
Conclusión
Como hemos visto, puedes agregar clases adicionales a las clases que genera por defecto WordPress, en este caso nos interesó agregar una clase para mostrar el rol del usuario y de esta forma controlar el diseño particular para un usuario de un determinado rol.
¿Aún con dudas?, en el siguiente video se detalla los puntos anteriores.
Hola quiero realizar una tienda con woocommerce, el problema es que los productos son personalizados, necesito que el cliente suba imágenes y me lleguen por mail, pero que la cantidad de imágenes que puedan subir sea la cantidad que compren. Si me puedes guiar sería de mucha ayuda
Hola, para lo que comentas, puedes evaluar: https://wordpress.org/plugins/woo-addon-uploads/ , sin embargo para el otro punto de que compre la misma cantidad de imágenes que sube, esto es algo muy particular y posiblemente tendrías que hacerlo con programación a medida.
Saludos.