Los roles de WordPress y capacidades de un usuario WordPress son los accesos y permisos que otorgamos a los usuarios de nuestro sitio web para que tengan mayor o menor capacidad de acción dentro de nuestra web.

Si tenemos varios usuarios en nuestra web sería importante conocer cómo funcionan los roles en WordPress y qué capacidades otorga cada uno para saber realmente qué puede hacer un usuario y que no en un momento dado.

Ante todo, tenemos que velar por la seguridad de nuestro WordPress y si a nuestra web acceden varios usuarios, debemos tener controlado qué accesos tienen.

También te puede interesar:
¿Qué es Elementor? Todo sobre Elementor Page Builder
¿Qué es Divi? Guía de Divi Theme para WordPress
Cómo eliminar un rol de WordPress
Cómo configurar Yoast SEO en WordPress
Ventajas de los Page Builder en WordPress
Qué plugins y themes usa una web echa con WordPress
Reparar un SAI Cyber Power Value 800ELCD

Definición de WordPress roles and capabilities

Tenemos 5 Roles WordPress definidos por defecto y que podemos utilizar para plantear nuestra agencia de redacción de artículos de nuestro blog.

Roles Usuarios WordPress

  • Super Admin: Si tenemos un red de blogs (wordpress multisite), sería el administrador de la red.
  • Administrador: Tiene acceso a todo. Puede desde publicar entradas, hasta gestionar los plugins, themes, la configuración de los menús y sidebar, etc. Puede hacer cualquier cosa.
  • Editor: Con el editor rol wordpress podemos publicar y editar entradas propias y de otros usuarios.
  • Autor: Sólo puede publicar y editar sus propias entradas.
  • Colaborador: Solo puede editar entradas pero no puede publicar.
  • Suscriptor: Solo puede entrar en su página de perfil.

Dentro de cada rol se especifican las capacidades que tiene cada uno y que puede ejercer dentro de nuestro sitio wordpress. Ejemplos de capacidades de un rol WordPress:

→ Publicar: publish_post
→ Moderar comentarios: moderate_comments
→ Editar usuarios: edit_users

Estos roles, con estas capacidades, se asignan en la creación del usuario.

Anadir nuevo usuario wordpress

Por defecto se asigna el rol suscriptor, ya que es el que menos permisos tiene. Pero eso lo podemos cambiar en las preferencias de nuestro sitio y que sea otro el que se asigne por defecto en la creación de nuestros usuarios.

En esta captura veis dos que seguramente no tendréis, que son el SEO Editor y el SEO Manager. Eso es porque tengo instalada la plantilla Divi y me permite gestionar esos dos roles para controlar el acceso a ciertas partes de Divi.

Si queréis saber cómo crear un nuevo rol en wordpress mediante código os explico más adelante.

10 Plugins para gestionar los roles y capacidades de WordPress

Estos son algunos plugins que podéis encontrar en el repositorio de WordPress para poder gestionar y sacarle mayor partido a los accesos y capacidades de un usuario WordPress.

Con estos roles wordpress plugins lo que conseguireis es crear roles wordpress, editar roles wordpress, y modificar las capacidades asignadas a un rol de WordPress entre otras muchas funcionalidades adicionales que incorporan algunos de ellos.

WPFront User Role Editor

WPFrontPermite gestionar roles personalizados a nuestras necesidades y permite asignar capacidades a nuestro antojo para que podamos adaptarnos a cualquier modelo de negocio. Es la manera más sencilla para crear roles nuevos, editar roles wordpress, o eliminar roles.

Descarga Gratis: https://es.wordpress.org/plugins/wpfront-user-role-editor/

Descarga PRO: https://wpfront.com/user-role-editor-pro/

Plugin WordPress WPFront User Role

Multiple Roles

Multiple RolesCon este plugin podemos asignar varios roles a un mismo usuario.

Descarga Gratis: https://es.wordpress.org/plugins/multiple-roles/

Plugin WordPress Multiple Roles

User Roles and Capabilities

User Roles and CapabilitiesCon este plugin lo que me gusta es que además de poder gestionar las capacidades de cada rol, es que podemos asignar permisos para la gestión y administración de los plugins. De esta manera podemos controlar el acceso a cada uno de los plugins y evitar que nuestros clientes toquen más de la cuenta.

Descarga: https://es.wordpress.org/plugins/user-roles-and-capabilities/

Plugin WordPress User Roles And Capabilities

User Role Editor

User Role EditorPermite gestionar las capacidades de cada rol excepto del perfil administrador. Este plugin intenta facilitar la gestión permitiendo hacer asignaciones simultáneas y en su versión de pago incluye muchas funcionalidades extra como restringir acceso a la administración de widgets, menús, exportar configuración, permisos de lectura a ciertas páginas del backend, etc.

Descarga Gratis: https://es.wordpress.org/plugins/user-role-editor/

Descarga PRO: https://www.role-editor.com/

Plugin WordPress User Role Editor

Members

MembersEl plugin de WordPress Members permite editar los roles, asignar múltiples roles a un usuario, denegar capacidades a usuarios concretos, clonar roles, gestionar permisos de contenido, crear shortcodes para controlar el acceso a los contenidos, mostrar un formlario de login como un widget y convertir tu sitio wordpress en privado.

Descarga Gratis: https://wordpress.org/plugins/members/

Plugin WordPress Members

New User Approve

New User ApproveLo bueno del plugin WordPress New User Approve es que permite gestionar el registro de usuarios de WordPress. Este plugin modifica el proceso de registro, de manera que el administrador recibirá un email cuando se produzca un registro y deberá aceptarlo o rechazarlo. Solo los usuarios que tengan aprobado su registro podrán logarse en el sitio.

Descarga Gratis: https://wordpress.org/plugins/new-user-approve/

Plugin WordPress New User Approve

Advanced Access Manager

Advanced Access ManagerCon este plugin, podrás según el autor, en administrar el acceso al contenido de tu sitio wordpress para cualquier rol, usuario individual y visitantes o, incluso, definir un acceso predeterminado para todas las publicaciones, páginas, tipos de publicaciones personalizadas, categorías y taxonomías personalizadas.

Descarga Gratis: https://wordpress.org/plugins/advanced-access-manager/

Extensiones de pago: https://aamplugin.com/

Plugin WordPress Advanced Access Manager

User Access Manager

User Access ManagerDe todos los plugins que os he citado os puedo hablar por experiencia del plugin UAM. Con este plugin lo que controlamos es el acceso a las páginas de nuestro sitio desde el front-end.

UAM Role WordPress

Página de configuración de UAM para crear grupos de usuarios.

Listado de páginas y los permisos que hemos otorgado:

UAM Rol WordPress

Dar permisos desde una página:

UAM Page Role WordPress

Descarga Gratis: https://es.wordpress.org/plugins/user-access-manager/

Editor Menu and Widget Access

plugin wordpress editor menu widget access Este es un plugin que he utilizado recientemente y que es muy sencillo y útil para cuando solo quieres otorgar acceso a los widgets y menús para el rol Editor. Aunque permite gestionar algunos permisos más, su principal uso es este. Es muy sencillo de usar y con activar el plugin ya le concede permiso a los editores para editar los widgets y los menús. Todo lo que actives en la configuración, se ocultará a estos usuarios.

plugin wordpress editor menu widget access config

Descarga Gratishttps://es.wordpress.org/plugins/editor-menu-and-widget-access/

Divi Roles

divi rolesElegant Themes no tiene como tal un plugin de gestión de roles, pero sí tiene una ventana de configuración donde podemos gestionar las capacidades de nuestros usuarios para limitar el acceso a las opciones de configuración de Divi, de ahí que lo comente.

Plugin WordPress Divi

Desde el panel de opciones de Divi podemos definir las capacidades a los roles: administrador, editor, autor, colaborador, SEO Manager y SEO Editor. Estos últimos, son roles específicos de divi que nos permiten diferenciar entre dos roles para usuarios que nos vayan a gestionar el SEO de nuestro WordPress.

Descargar: https://www.javierrguez.com/recomienda/divi/

Códigos de ejemplo para trabajar con Roles WordPress

Ahora os daré algunas indicaciones básicas sobre cómo podemos trabajar con los roles wordpress haciendo uso de la API de WordPress.

Son trozos de código pequeños que podemos aplicar en nuestro plugin de funciones para dotar a nuestro WordPress de mayor funcionalidad.

Veréis que con pequeños trozos de código podemos hacer grandes cosas y os servirá de inspiración para que inventéis vosotros mismos nuevas funcionalidades.

Asignar capacidades a un usuario mediante la API de WordPress

Mediante código podemos asignar capacidades a un usuario wordpress mediante la API de WordPress. Esto es útil para realizar tus plugins personalizados y asignar roles a un usuario WordPress.

Lo que os muestro a continuación es un ejemplo de una función para asignar capacidades a un usuario concreto. Supongamos que tenemos un usuario con perfil Suscriptor, que es el rol más restrictivo que tiene WordPress. Y ahora queremos que este usuario tenga permisos especiales para poder dar de alta usuarios y poder gestionarlos. Para hacer eso, podemos usar la siguiente función que funciona de la siguiente manera.

Si un usuario se loga en nuestro sistema, la función se ejecutará automáticamente y le otorgará permisos especiales para poder gestionar usuarios.

// Función para añadir capacidades al usuario conectado que no corresponden a su rol por defecto.
function add_caps_user() {

$user = new WP_User( get_current_user_id() );

$user->add_cap( 'edit_users' );
$user->add_cap( 'delete_users' );
$user->add_cap( 'list_users' );
$user->add_cap( 'create_users' );
}
add_action( 'admin_init', 'add_caps_user');

Cómo saber el rol de un usuario WordPress

También podemos crear funciones personalizadas en función del rol de un usuario wordpress. Para obtener el rol de un usuario conectado tenemos que hacer lo siguiente. Lo ideal es que existiera una función que fuera get user role name que nos diera el nombre de los roles, pero no es así. Para saber los roles debemos obtener primero la información del usuario wordpress y después leer la propiedad roles como podemos ver en el siguiente ejemplo obtenido del Codex WordPress:

<?php $user_info = get_userdata(1);      echo 'Username: ' . $user_info->user_login . "\n";
echo 'User roles: ' . implode(', ', $user_info->roles) . "\n";
echo 'User ID: ' . $user_info->ID . "\n";
?>

Esto nos dará como resultado:

Username: admin

User roles: administrator

User ID: 1

Y nos podrá servir como base para hacer cualquier tratamiento que necesitemos.

¿Cómo crear un rol de WordPress mediante la API?

Ahora os voy a dejar un ejemplo de cómo podemos crear un role en WordPress. Esto es aplicable si tenemos WooCommerce instalado, ya que el customer role es un rol de WooCommerce.

El siguiente código se ejecuta cuando entramos en WordPress y crea directamente el un rol nuevo que en mi caso lo llamé Distribuidor.

// Crea el rol de usuario "Cliente Distribuidor": add_role wordpress
add_action( 'init', 'crea_rol_distribuidor' );
function crea_rol_distribuidor(){

$customer_role = get_role( 'customer' );
add_role( 'cliente_distribuidor', __( 'Cliente Distribuidor' ), $customer_role->capabilities );
}

La idea de crear este rol era para poder asignarlo manualmente a los clientes que se hicieran hacer distribuidores de mis productos previa entrega de la documentación necesaria. En cuanto cumplieran todos los requisitos, le asignaría manualmente este rol nuevo, y en al zona de la tienda le mostraría los productos con un descuento por ser distribuidor.

Más información en el Codex de WordPress

En la documentación de la API de WordPress podéis encontrar más información y ejemplos:

https://codex.wordpress.org/Plugin_API

Os recomiendo la lectura de los actions y filters. Son muy útiles para personalizar nuestros plugins y personalizar nuestra web.

Así, resumidamente, os explico para qué es cada uno:

Acciones / actions: son para añadir funcionalidades nuevas, como la que os he puesto de ejemplo antes.

Filtros / filters: un filtro lo que hace es filtrar. Es hacer pasar pasar algo por un filtro y modificarlo para que podáis entenderlo. Por ejemplo, podemos pasar por el filtro el texto de un artículo de WordPress y añadirle un prefijo o un sufijo, poner todo el texto en negrita, o todo en mayúsculas, etc. Es un ejemplo. Pero puedes cambiar lo que desees.

Se pueden hacer cosas muy curiosas como la que explico en este artículo: Modificar las banderas de Polylang

https://www.javierrguez.com/cambiar-las-banderas-polylang/

Conclusiones

Como habéis podido ver, os he hecho un repaso de los principales plugins que permiten la gestión de roles wordpress y sus capacidades así como herramientas y mecanismos para crear nuestros propios plugins para hacer lo que necesitemos a nuestro gusto sin necesidad de tener que recurrir a plugins de terceros.

Espero que os sean de utilidad y podáis comenzar con el desarrollo de vuestros plugins y crear vuestras propias funciones.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies