CMS WordPress

WordPress: Crear roles de usuario personalizados

¿Cómo puedo añadir niveles de usuario nuevos a WordPress?

Suscriptor, Colaborador, Editor y Administrador.  Esos roles están claros, y lo que permite o no hacer cada uno de ellos también pero… ¿y si quiero ampliar las capacidades de cada uno de esos roles? ¿Y si deseo crear algún rol concreto para que tenga permisos mixtos o pueda únicamente realizar una función como usar un plugin de reservas o un CRM?

En el artículo «Mostrar / Ocultar opciones en el panel de administrador» te explicábamos cómo personalizar los permisos de los roles. Y en esta 2da parte te enseñaremos 2 formas de crear roles nuevos.

¿Listo? ¡Pues vamos allá!

 

El Plugin, siempre el plugin

Aunque en Loopeando.com de vez en cuando recomendamos el uso de plugins, también procuramos dejar claro que, cuando de pequeñas cosas se trata, mejor meter mano al código para no sobrecargar el admin de software innecesario que ralentice la web. Recuerda que ¡cada segundo de más que tarde en cargar una web es público que pierdes!

En cualquier caso, si insistes en usar plugins para este menester, te recomendamos User Role Editor [Clic para descargar].

Este plugin es ligero y muy fácil de usar. Basta con instalarlo desde el repositorio, activarlo e ir a su menú en Usuarios –> User Role Editor

Una vez ahí pulsamos en «Agregar perfil» e incluso si lo deseamos, podemos asignarle las capacidades de ese nuevo rol. Aunque francamente, el sistema de permisos que tiene este plugin, es muy poco intuitivo y para ésto último recomendamos el plugin que comentábamos en el artículo complementario a éste: Adminimize

 

Si quieres hacer algo bien, hazlo tú mismo

Especialmente si es tan sencillo como crear roles:

Vamos al archivo functions.php de nuestra instalación de WordPress. Lo abrimos y agregamos esta función:

add_role( $rol, $nombre, $permisos )

 Donde:

$rol: Nombre del rol para uso interno a nivel de programación. Por ejemplo: gestor_crm
$nombre: Nombre visible del rol. Nos servirá para identificarlo en el backend. Por ejemplo: Gestor CRM
$permisos: Array de todos los permisos que queramos asignarle.

Aquí una lista de los más comunes:

‘edit_themes’ => Editar temas
‘activate_plugins’ => Activar /Desactivar plugins
‘edit_plugins’ => Editar el código de los plugins
‘edit_users’ => Editar permisos de usuarios
‘moderate_comments’ => Moderar comentarios
‘manage_categories’ => Crear/Editar categorías de post
‘edit_posts’ => Permite crear /editar entradas nuevas
‘edit_pages’ => Permite crear / editar páginas
Hay una lista completa de todos los permisos disponibles en el Codex de WordPress.
Así que, resumiendo, si queremos crear un rol que pueda editar posts, moderar comentarios, activar plugins, editar usuarios… la función sería:
add_role(
    'gestor_crm',
    __( 'Gestor CRM' ),
    array(
    'edit_themes' => true,
    'activate_plugins' => true,
    'edit_plugins' => true, 
    'edit_users' => true,
    'moderate_comments' => true,
    'manage_categories' => true,
    'edit_posts' => true,
    'edit_pages' => true
    	)
  );

Tras ello, y cuando nos aseguremos de que el nuevo rol aparece en Usuarios –> Añadir nuevo, podemos eliminar la función creada puesto que esa información se almacenará en la base de datos.

Y recuerda, si ahora quieres que ese nuevo Rol sólo vea algunas opciones del menú de administrador, visita el siguiente post.

Si tienes dudas, no temas en preguntar y, si te ha gustado, nos encantaría que compartieses el artículo en tus redes. ¡Gracias!

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

Escribir comentario

Haz clic aquí para dejar tu comentario