Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)
Hemos estado viendo como crear un simple sistema CRM en WordPress. En la última parte de esta serie, hemos añadido código a nuestro plugin que nos permite buscar contactos basándonos en los datos almacenados en los Campos Personalizados Avanzados.
Hoy cubriremos como restringir el acceso a los elementos del Menú de Administración de WordPress.
Roles y Capacidades
WordPress usa el concepto de Roles, donde un Rol puede ser asignado a un usuario de WordPress. Este Rol define lo que el Usuario puede y no puede hacer.
Por defecto, WordPress tiene seis roles:
- Super Admin
- Administrador
- Editor
- Autor
- Colaborador
- Suscriptor
A los permisos que un Rol tiene se les denomina Capacidades, y WordPress proporciona muchas capacidades diferentes (por ejemplo, install_plugins
, update_themes
, edit_pages
, etc). Si estás interesado en ver la lista completa de Capacidades para cada Rol, mira esta Página del Codex de WordPress.
Cuando registramos nuestro Tipo de Entrada Personalizada Contactos en la Parte 1 de esta serie, definimos que el capability_type
sería post
. Esto significa que las capacidades de lectura, edición y eliminación de Contactos son las mismas que las empleadas para las Entradas. Dependiendo del Rol del Usuario, esto le podría proporcionar los siguientes accesos a nuestro Tipo de Entrada Personal Contactos:
Capacidad | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
---|---|---|---|---|---|---|
edit_others_posts | Sí | Sí | Sí | |||
delete_others_posts | Sí | Sí | Sí | |||
delete_private_posts | Sí | Sí | Sí | |||
edit_private_posts | Sí | Sí | Sí | |||
read_private_posts | Sí | Sí | Sí | |||
edit_published_posts | Sí | Sí | Sí | Sí | ||
publish_posts | Sí | Sí | Sí | Sí | ||
delete_published_posts | Sí | Sí | Sí | Sí | ||
edit_posts | Sí | Sí | Sí | Sí | Sí | |
delete_posts | Sí | Sí | Sí | Sí | Sí |
Editores y Autores
Basándonos en las capacidades de arriba, si quisiéramos que los Usuarios fuesen capaces de añadir, editar y eliminar todos los Contactos (incluyendo Contactos creados por otros Usuarios), necesitaríamos usar el rol de Editor. Avancemos y creemos un nuevo Usuario en WordPress con ese rol:
- Navega a Usuarios > Añadir Nuevo en el Menú de Administración de WordPress
- Completa los campos para el nombre de usuario, el email y la contraseña.
- Ajusta el Rol del Usuario a Editor.
- Pulsa Añadir Nuevo Usuario.
Ahora sal de WordPress y accede de nuevo como nuestro nuevo Editor. Verás que el Menú de Administración de WordPress tiene menos opciones, e incluye nuestro Tipo de Entrada Personalizada Contactos:

De todas formas, puede que solo quieras que los Usuarios sean capaces de ver los Contactos de otros Usuarios sin tener la habilidad de editarlos o eliminarlos. Podemos lograr esto por medio del rol Autor, ya que éste no dispone de las capacidades edit_others_posts
o delete_others_posts
(ver referencias más arriba).
Crea tu usuario de WordPress de la misma forma que hicimos antes para el Editor, pero esta vez escogiendo como rol Autor.
Al acceder como Autor verás que otra vez tienes menos opciones en el Menú de Administración:

Cuando veamos nuestros Contactos, verás todos los Contactos creados por otros usuarios de WordPress—aunque no serás capaz de editarlos o eliminarlos:

Continúa y añade un nuevo Contacto. Una vez hecho, pulsa sobre All Contacts (Todos los Contactos) en el Menú de Administración de WordPress. En lugar de ver todos los Contactos creados por otros Usuarios de WordPress, verás ahora los Contactos que tú has creado, los cuales serás capaz de editar y eliminar:

Todavía podemos ver los Contactos de otros Usuarios si hacemos clic sobre la opción All situada sobre la Tabla de WordPress:

Lo Próximo…
En el próximo artículo, iremos más lejos con las restricciones de la funcionalidad de la Administración de WordPress para los usuarios, permitiéndoles sólo acceder a los Contactos CRM.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post