Ya he hablado varias veces acerca de roles y capacidades, tanto en WordPress como en WooCommerce: usuarios que tienen permisos para hacer unas cosas u otras en función de su rol, que es el que le asigna capacidades. Pero no siempre encontramos roles con las capacidades que necesitamos.
Es habitual (lo sé porque me llegan periódicamente consultas sobre el tema) que haya alguien que se ocupa de preparar los pedidos, pero no administra la tienda, por lo que no debe tener acceso al resto de zonas. ¿Cómo podemos hacer eso? Vamos a ver cómo crear un usuario que sólo pueda ver y editar los pedidos de WooCommerce, pero que no pueda hacer otras cosas.
Tabla de contenidos
El gestor de tienda en WooCommerce
Hace ahora justo cinco años y medio (ahí es nada) hablaba en este mismo blog sobre los roles específicos que WooCommerce introduce en nuestra instalación, así que a esa entrada te remito para ahorrarme repetir el asunto en la introducción, y ponerte en antecedentes de por dónde van los tiros:
Decía entonces que WooCommerce introduce dos roles nuevos:
- El cliente (customer).
- El gestor de tienda (shop manager).
El problema es que el cliente sólo puede hacer cosas de clientes, y el gestor de tienda tiene (como su propio nombre indica) todas las capacidades de administración de la tienda: puede crear, modificar y eliminar productos, tiene acceso a los pedidos, a los informes, gestión de cupones…
Demasiado para alguien que sólo ha de preparar pedidos. En este caso esta persona sólo debería tener acceso a los pedidos: verlos y, en caso necesario (roturas de stock, cambios de referencia…), editarlos.
Un rol que sólo pueda ver y editar pedidos
Sabiendo ya que no existe el rol que necesitamos, sólo nos quedan tres opciones:
- Editar el rol de gestor de la tienda, quitándole las capacidades que no nos interesan.
- Crear un rol de usuario completamente nuevo y darle las capacidades necesarias para ver y editar pedidos.
- Crear una copia del rol de gestor de tienda, cambiarle el nombre y quitarle las capacidades que no queremos que tengan.
Si has elegido la opción número uno, erraste: es la más onerosa, ya que nos priva del rol de gestor de tienda que quizá queramos (o debamos) utilizar, si no ahora sí más adelante. Mi consejo es que elijas la número dos: es la más sencilla.
Editar roles y capacidades
Pues como de esto también he hablado ya largo y tendido, me ahorro de repetirlo aquí. Te aconsejo que le eches un vistazo, porque es lo que vamos a necesitar hacer, como hemos visto ya:
Nota: En el artículo enlazado te presento dos plugins gratuitos para editar roles, Capability Manager Enhanced y User Role Editor. Las capturas de pantalla y ejemplos que voy a usar aquí corresponden a este último.
Decide un nombre para el rol, créalo (o copia el rol de shop manager y cámbiale el nombre) y listo: éste será el rol que habremos de asignar al usuario que crearemos para que nos ayude con la preparación de los pedidos de la tienda.
Recuerda que el ID del rol no puede tener espacios, así que puedes usar algo como gestor_pedidos o, si te va la nomenclatura en inglés, orders_manager. Eso es lo de menos, pero usa algo descriptivo, o dentro de unos meses ni te acordarás qué narices hace pinta ese rol en la tienda.
Capacidades necesarias para ver y editar pedidos
Pero claro, lo importante son las capacidades que debe tener ese rol. Pues bien ha de tener todas las capacidades (17) listadas bajo WooCommerce > Pedidos, es decir:
- assign_shop_order_terms
- delete_others_shop_orders (sólo si quieres que pueda eliminar pedidos)
- delete_private_shop_orders (sólo si quieres que pueda eliminar pedidos)
- delete_published_shop_orders (sólo si quieres que pueda eliminar pedidos)
- delete_shop_order (sólo si quieres que pueda eliminar pedidos)
- delete_shop_order_terms
- delete_shop_orders (sólo si quieres que pueda eliminar pedidos)
- edit_others_shop_orders
- edit_private_shop_orders
- edit_published_shop_orders
- edit_shop_order
- edit_shop_order_terms
- edit_shop_orders
- manage_shop_order_terms
- publish_shop_orders
- read_private_shop_orders
- read_shop_order
Sin embargo, eso no es suficiente, ya que le falta una capacidad importante para poder ponerse manos a la obra con los pedidos: la de acceder al área de administración. Para ello, es preciso otorgarle una de estas capacidades:
- view_admin_dashboard
- edit_posts (da también acceso a las entradas y otros tipos de contenido personalizado)
- manage_woocommerce (da también acceso a los ajustes de WooCommerce, suscripciones y otras partes de la tienda)
Así que si no has echado un vistazo al enlace que te he puesto un poco más arriba, es el momento de ir y leerlo detenidamente: ya sabes qué capacidades son necesarias, en ese enlace te explico cómo editar roles y capacidades. Nada más fácil.