Para completar las entradas de la semana pasada sobre los roles de usuario en WordPress y cómo modificarlos, hoy vamos a ver cuáles son y qué capacidades tienen los roles de usuario específicos de WooCommerce, y cómo podemos modificar o crear nuevos roles de WooCommerce en el caso de tiendas online gestionadas por equipos.
Tabla de contenidos
Los roles de usuario de WooCommerce
Ya decía en el artículo sobre los roles de usuario en WordPress que muchos plugins añaden sus propios roles con capacidades específicas. Y uno de estos plugins es WooCommerce.
En lo que respecta a roles y capacidades, al activar WooCommerce realizamos los siguientes cambios en WordPress:
- Creación del rol Shop manager (gestor de tienda)
- Creación del rol Customer (cliente)
- Registro y concesión al administrador de dos nuevas capacidades, asignadas al gestor de tienda:
- manage_woocommerce, es decir, capacidad de gestión de WooCommerce
- view_woocommerce_reports, todo lo relativo a la visualización de informes de WooCommerce
El cliente
El cliente es el usuario más básico que añade WooCommerce, prácticamente equivalente al suscriptor de WordPress ya que, como éste, puede ver el contenido público y modificar su propio perfil. La única diferencia es que tiene acceso (desde el área Mi cuenta) al histórico de sus pedidos, tanto los completados como los que están actualmente en trámite.
En fin, hay poco que explicar acerca de este rol y sus capacidades; como sabes, es el que tienen los usuarios que compran creando cuenta en nuestra tienda, porque ya sabes que WooCommerce permite la compra sin registro. En ese caso no hay rol de cliente sino de suscriptor, es decir, no puede ver los pedidos.
El gestor de tienda
El gestor de tienda es el rol que, como su nombre indica, puede gestionar la tienda. 🙂
Tiene dos nuevas capacidades que antes no existían (ahora veremos que no, que son más en realidad), y son las mismas que WooCommerce añade al rol de administrador, como mencionaba más arriba: manage_woocommerce y view_woocommerce_reports.
Y tú quizás digas: Pero Enrique, si el gestor de tienda tiene también capacidades relacionadas con la creación, edición y eliminación de productos. Sí, es cierto, pero no son capacidades nuevas proporcionadas por WooCommerce.
Ten en cuenta que los productos de WooCommerce no son un ente especial, sino que son custom post types (CPT, tipos de entrada personalizados). Es decir, como tipo de contenido están asimilados a una entrada normal y corriente, por lo que las capacidades necesarias para gestionarlas son las mismas que las de los posts, pero aplicadas a este CPT específico.
Las nuevas capacidades de WooCommerce
Vale, he hecho un poco de trampa. Cierto que las dos capacidades que te decía antes (manage_woocommerce y view_woocommerce_reports) son las únicas que registra WooCommerce, pero no las únicas nuevas que van a estar disponibles.
El asunto es un poco técnico, pero tiene que ver con los CPT: productos, cupones, pedidos… Todos esas características que WooCommerce añade son tratadas técnicamente como custom post types, y llevan asociadas sus propias capacidades de creación, edición, borrado, gestión de taxonomías (sólo en el caso de los productos), de comentarios (valoraciones), etc.
Así que, aunque es cierto que sólo las dos capacidades mencionadas se registran, encontramos decenas de nuevas capacidades disponibles que se crean al registrar todas estas nuevas características de WooCommerce: edit_shop_order, edit_others_shop_coupons, manage_ratings, delete_published_products, delete_shop_coupon_terms… En fin, decenas de ellos, como te decía.
¿Y por qué te cuento todo esto? Pues porque esto nos va a dar una libertad enorme a la hora de conceder acceso a las diferentes zonas de la tienda simplemente a quien lo necesita, en el caso de tiendas gestionadas por un equipo.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Añadiendo roles a WooCommerce
Porque, ¿qué ocurre en el caso de una tienda online gestionada por varias personas que necesitan distinto nivel de acceso?
Pues la solución es utilizar las mismas herramientas que ya vimos para crear y editar roles y capacidades en WordPress: Capability Manager Enhanced o User Role Editor.
Porque, una vez que conocemos las capacidades necesarias para gestionar WordPress y WooCommerce, ¿qué nos impide crear los roles que necesitemos para nuestro equipo, otorgándoles o denegándoles dichas capacidades? Ya sabes que dar acceso completo a todo el mundo (como Shop manager en este caso) no es lo más adecuado. Vamos a ver un par de ejemplos de lo que podemos hacer combinando capacidades de WordPress y de WooCommerce.
El contable
Por supuesto un contable necesita acceso completo a los informes (view_woocommerce_reports), una capacidad que por defecto sólo tienen el gestor de tienda y el administrador de la web, pero no tiene por qué tener acceso a los productos, stocks, cupones…
El responsable de almacén
Un responsable de almacén necesitará acceso de lectura de los pedidos individuales (read_shop_orders), puesto que necesita prepararlos, o a editarlos (edit_shop_orders), pero quizá no queramos que pueda borrarlos o crearlos.
También tendrá que tener acceso a la gestión de stocks (para la realización de inventarios), pero sin necesidad de permitirle crear o borrar productos.
Conclusión
Eso son sólo dos ejemplos, pero puede haber muchos más: un responsable de compras que puede crear y editar productos (conoce sus características y está en contacto directo con los proveedores) pero no publicarlos (no sabe qué PVP tendrán)… La granularidad de las capacidades hace posible prácticamente cualquier combinación.
Como ves, segmentar el acceso es muy importante en proyectos de equipo para que todo funcione como debe, y conseguirlo mediante en una tienda online con WooCommerce, basta con combinar las capacidades que otorga este plugin con las que da WordPress para crear nuestros roles a la medida de lo que necesitamos.
Como siempre, para cualquier duda, comentario, pregunta, o lo que quieras, me tienes a tu disposición tanto a través de los comentarios como del formulario de contacto.
Jose Miguel dice
Buenas tardes. Mi duda es si es posible establecer una serie de roles de compradores (particular, profesional y distribuidor) que segun el rol con el que se registren para un mismo producto aparezca una tarifa distinta . muchas gracias
Enrique J. Ros dice
Hola Jose Miguel
Sí, eso puedes hacerlo con este plugin.
Un saludo.
CHRISTIAN MOLINA dice
¡Hola Enrique y buen dia! disculpa tendrás algún plugin que permita al cliente dar opciones para cambiar su rol según su preferencia? es decir… que si quiere comprar como mayorista e invertir 2500 cambie a ese rol o si en su defecto quiere mejorar sus precios aun mas y ser distribuidor para invertir 30000 cambie su rol el mismo manualmente desde su cuenta, quedo atento a tu respuesta
Noriaki dice
Hola Enrique: excelente el tema de «roles de usuarios», sin embargo me lleva a una pregunta: si hay dos o tres personas encargadas de añadir inventario quizás porque sea clasificado por departamentos…¿ como crear esos roles teniendo en cuenta que no puedan modificar lo de sus compañeros pero si puedan modificar sus propias entradas?
Enrique J. Ros dice
Hola Noriaki
Eso depende mucho de qué tipo de contenido tengan que introducir. Echa un vistazo a este otro artículo, puede serte de ayuda.
Un saludo.
Francisco dice
Hola, necesito hacer que al entrar a la tienda el cliente llene el formulario con sus datos para hacer el login y si no desea registrarse o solo quiere hacer la compra como consumidor final, al hacer clic en ese botón lo deje entrar a la tienda. Ya conseguí bloquear el acceso a la tienda y que muestre el formulario de login y el de registrarse al lado, pero no se como hacer la parte del consumidor final. Habia pensado crear un rol solo para ese usuario, ya que al ser consumidor final no debería mostrar la pagina mi-cuenta de woocomerce porque saldría los pedidos y demás de todos los que compraron como consumidor final. ¿Como podría bloquear la pagina solo para ese usuario?
Espero se entienda lo que quiero hacer.
Jorge dice
Hola Enrique,
¿Es posible restringir las compras de los productos de mi tienda «según el rol» de cada uno?.
Espero atento.
Muchas gracias.
Enrique J. Ros dice
Hola Jorge
¿Has probado este plugin?
Un saludo.
Asier dice
Hola Enrique,
¿Cómo se puede solicitar en el registro que el cliente marque el tipo de perfil que es (tengo varios perfiles para tipos de clientes) y que automáticamente se registre así en la base de datos?
Enrique J. Ros dice
Hola Asier
Puedes probar si este plugin es lo que necesitas.
Un saludo.
Ferchu dice
Hola Enrique. Muy interesante el post.
Yo estoy en busca de algo relacionado con el tema. Tengo un sitio con woocommerce en desarrollo. Lo que pretendo es que simplemente, al registrarse un usuario, tenga el rol de suscriptor que yo asigno por defecto en la configuración, pero que cuando compre algo cambie automáticamente a cliente.
Alguien me dijo que con unas líneas de código sencillas lo podía hacer, pero no me profundizaron sobre el tema. Estuve pensando pero no logro dar con algo que me sirva. Lo cierto es que quería evitar comprar un plugin solo para esto. He visto que los de gestión de roles tienen un montón de opciones pero la mayoría no me va a resultar útil porque trato de mantener el sitio lo mas simple y rápido posible para gestión y para el visitante. Con sólo unos cuantos plugins gratuitos y con buen soporte me he arreglado y edité un poco de código para complementar.
Te agradecería si puedes ayudarme, si es mucho pedir con el código, al menos sugiriéndome un plugin sencillo que me permita hacer lo que necesito.
Saludos y gracias.
Enrique J. Ros dice
Hola Ferchu
No conozco ningún plugin gratuito que haga eso, pero creo que éste te servirá.
Un saludo.
Juan Pablo Montoya Jaramillo dice
Hola buen día amigo super interesante el post
Tengo una duda si esto se puede hacer
Comprarían diferentes empresas estas tienen 1 administrador y x empleados.
Estos empleados hacen un pedido y el administrador les toma el pedido o lo edita.
pero que este administrador solo vea los pedidos de los x empleados de su empresa
Te agradecería mucho si puedes indicarme algún plugin o como puedo acomodarlo
jhon dice
hola, este post es algo viejo pero tienes alguna solución para este caso, tengo la misma solicitud.
Leticia Castillo dice
Hola tengo una duda el plugin que tu creaste puede hacer que al Shop manager, dándole permiso obviamente pueda elegir el rol de cada usuario por ejemplo mayorista y puede eliminar usuarios, espero que me puedas ayuda por que estoy atorada en ese proyecto :(.
Enrique J. Ros dice
Hola Leticia
Disculpa, no sé a qué plugin te refieres.
Un saludo.
ray roca dice
hola queria saber que debo hacer para crear una entrada para el mi cliente solo pueda editar los productos , ejemplo añadir nuevos productos actualizar precios ,ese tipo de cosas , pero con otra interface que no sea la de wordpress que es enrredada para una persona que no tiene conocimiento de informatica
Cristian dice
Hola! muy interesante! ¿hay alguna manera de que woocommerce te cree un perfil de usuario dependiendo el tipo de producto que compras? Por ejemplo: alguien que compra una guitarra, que tenga el perfil «cliente-guitarra» para poder activarle una zona de información de especificaciones de su producto.
O alguien que compra un curso y que sea «cliente-curso» para darle luego a ese usuario a el curso en la web.
Gracias 🙂
Enrique J. Ros dice
Hola Cristian
Eso se hace no otorgando roles, sino membresías.
Un saludo
Ana dice
He instalado un woocommerce para otra persona y sólo quiero que pueda gestionar la tienda, que no tenga acceso a todo el sitio (por la que puede liar). Cómo puedo quitarle permisos al Shoper manager? Gracias!
Erica Hahn dice
Hola buenas tardes! Necesito saber si es posible aasignar un perfil que solo pueda realizar carga de pedidos en woocomerce pero no pueda modificar productos. Podrias decirme si es viable?
Gracias!
Enrique J. Ros dice
Hola Erica
Revisa las listas de capacidades para ver si esa está disponible, aunque me temo que no.
Un saludo
Antonio dice
Buenos días:
Por favor, necesito saber cual es el plugin, que te permite, en tu tienda on-line, el permitir que tus productos, algunos los puedan ver todo el mundo sin registrarse, otros solo (specif role: customer / editor..etc)
De esta forma solo pongo en portada los que quiero que se muestren a público. Hay otros que solo se muestran si estás registrado, y todo lo voy modificando cuando creo el producto.
Gracias.
Enrique J. Ros dice
Hola Antonio
Hay varios plugins capaz de hacer eso, algunos de ellos gratuitos; elige el que mejor se adapte a lo que necesitas.
Un saludo
Luli dice
Hola Enrique!
Te hago una pregunta, tengo una pagina con woocomerce y quiero que cualquiera pueda ver los productos que tengo cargados, pero que solo esten habilitados a comprar los que son usuarios mayoristas.
Tenes idea si hay algun plug in para eso?
Muchas gracias!!
Enrique J. Ros dice
Hola Luli
No conozco ningún plugin que haga algo así. La única solución que se me ocurre (aparte, obviamente, de recurrir a la programación a medida) es usar plugin para establecer un pedido mínimo por rol y poner cantidades absurdamente altas a todos los roles excepto al de mayoristas, configurando un mensaje de error del tipo «Lo sentimos, sólo usuarios mayoristas pueden comprar en esta tienda» o similar.
Un saludo
Andrés dice
Hola Enrique, estamos montando una tienda multi-vendedor (utilizaremos los de YITH) y necesitamos preparar un sistema de ventas que siga la siguiente estructura de usuarios:
1º nivel – Varios Administradores
2º nivel – «Mecenas», gestionan a varios vendedores
3º nivel – Vendedores. Que pueden ser a) particulares o b) empresas
4º nivel – Clientes. Que a su vez podrá ser Cliente/Vendedor una vez que este consiga cerrar su primera venta.
Estamos dudando entre desarrollar esto con código, encargando el trabajo a alguien, o intentar solucionarlo con alguna de las opciones que comentas en esta entrada. Cual crees que puede ser la mejor decisión? por supuesto intentando contener el gasto pero sin pecar en la construcción de un sistema complejo y pesado.
Y mil gracias por todo el contenido que compartes para neófitos como yo! 😉
Ernesto dice
Muy interesante, que tal si quiero crear un rol específico para cuando el usuario se suscriba con uno de los planes de woocommerce memberships??? Un saludo.
Ernesto dice
Gracias,No es necesaria la respuesta, encontré la solución en otro de tus artículos, con Woocommerce Role Handler
Sergio dice
Hola. como puedo hacer para convertir un cliente a usuario registrado. Compro sin crear una cuenta pero quiero pasarlo a cliente registrado.
Matias dice
Hola a ver si puedes ayudarme
Cree un Rol llamado Mayoristas (clientes especiales) y al adminsitrador del sitio le di el rol de Shop Manager
le active la opcion para que pueda editar los usuarios, pero no puede cambiarles el perfil… solo tiene Cliente y no puede marcar los que son Mayoristas. como hago? que hago?
gracias!
Matias dice
ah me olvidaba. tampoco me deja crear usuarios nuevos.. solo agregar existentes. (estoy sobre una instalacion de network)
Daniela dice
Hola enrique hay algún plugin que me permita que solo los usuarios mayoristas puedan comprar sin pagar o que el pago sea a convenir o algo así, o que solo puedan elegir pago por trasferencia bancaria
Enrique J. Ros dice
Hola Daniela
Se puede hacer que los usuarios con determinado rol (el de mayorista en tu caso) sólo tengan disponible ese método de pago usando el plugin WooCommerce Role-Based Payment / Shipping Methods
Un saludo
Pilar dice
Hola Enrique muchas gracias por compartir la información. He creado un wordpress con woocommerce y quiero darle capacidades de gestión a la propietaria pero no de administradora para que no la líe. Es decir que pueda hacer «casi todo» , subir productos, precios, publicar, cambiar algo pero no tocar el tema ni borrarlo ni instalar plugins que luego den problemas. ¿qué rol puedo asignarle? es que he visto que hay nuevos roles y el de gestor ha desaparecido, aparece gestor de tienda pero no sé si es suficiente para wordpress. Muchas gracias!!!
Angel dice
Buen dia, Enrique.
Efectivamente era un plugins que estoy utilizando que me da Conflicto, ya lo identifique, y estoy buscando otra alternativa.
Mil gracias!
angie dice
Hola. tengo una tienda woocommerce y necesito que otras personas puedan revisar los pedido que ingresan y su detalle de compra. pero no quiero que lo hagan por medio del administrador de wordpress. no quiero que ingresen a modificar nada de la tienda. Como puedes ayudarme. gracias
Laura Anturi dice
Hola Enrique.
Es posible restablecer los permisos del rol gestor de la tienda agregado por woocommerce?