En este tutorial vemos cómo limitar el número máximo de productos que un usuario puede publicar en WooCommerce.
¿Por qué limitar el número de productos?
Lo primero que podéis preguntaros es por qué alguien quisiera hacer tal cosa. Bueno, pues el caso es que el otro día un suscriptor me mandó esta duda a través del formulario de soporte de la intranet:
¿Cómo puedo limitar la cantidad de productos a crear en Woocommerce?.
El contexto de la pregunta es porque quiero ofrecer como lead magnet o anzuelo unas "microtiendas" que permitan al comercio tener su tienda (he pensado en máximo 10 productos) en una subcarpeta de mi dominio y permitir que "prueben" cómo se enlaza desde el CTA de Facebook y como publicarían sus productos.
La idea es llevar a cada uno de estos contactos a un plan superior o premium donde ya tendría la libertad de subir la cantidad de productos que quiera.
Efectivamente, es una muy buena idea para captar clientes. El modelo "freemium" que tan buen resultado da, ya que tus clientes pueden "probar antes de comprar".
Y no solo queda ahí. Hay más posibles usos, como por ejemplo limitarlo para ciertos vendedores si tienes montado un marketplace con WooCommerce, o incluso si quieres montar un multisite con varias tiendas.
Así pues, ahora que ya entendemos el "¿Por qué?" de esta funcionalidad, pasemos a ver el "¿Cómo?". ¡Empecemos!
Limitar el número de productos que se pueden publicar
Lo primero que deberemos hacer es instalar el plugin Bainternet Posts Creation Limits. Este plugin nos va a permitir limitar no sólamente productos, sino cualquier tipo de Custom Post Type. Hay otros plugins que hacen cosas parecidas, como Limit Posts, pero no tienen tanta versatilidad.
Una vez instalado y activado, deberemos ir a "Ajustes / Post Creation Limits" en el panel de control:

Nos aparecerá una nueva opción en "Ajustes"
Y a continuación indicar que quieres añadir una nueva limitación:

Añadir una nueva limitación
Una vez hecho esto, nos aparecerá una interfaz muy clara e intuitiva en la que deberemos indicar los siguientes ajustes:
- User Role: Rol (perfil) del usuario limitado. En este caso indicamos el administrador de la tienda, pero podemos elegir el que queramos.
- Post Type: Tipo de Custom Post Type. En el caso que nos ocupa, deberemos elegir "product", que son los productos de Woocommerce.
- Limit: El límite de posts (en este caso productos) al que queramos limitar.
- Estado: El estado del producto limitado, podemos elegir entre:
- Any: Cualquiera de ellos.
- Publish: Sólo los publicados. Esto quiere decir que el usuario podrá tener más de 10 productos en borradores, por ejemplo, pero sólo 10 publicados en un momento dado.
- Pending: Productos pendientes de ser revisados.
- Draft: Productos en borrador no publicados
- Auto-draft: Productos en borrador automático.
- Future: Productos programados para que se publiquen en el futuro.
- Private: Productos privados que sólo pueden ver los administradores.
- Trash: Productos en la papelera (eliminados).
- Limit message: Aquí introduciremos el mensaje que queramos que aparezca si se llega al límite en cuestión.
- Time spam: Opcionalmente podemos indicar que este límite sea sólo durante cierto tiempo. Por ejemplo, si queremos que el usuario sólo pueda publicar un producto cada día, marcaremos un "limit" de 1 y un time spam de "24" horas. Si queremos que el límite sea para siempre, escribiremos "FOREVER".
Así pues, en el caso de la pregunta que me hicieron, deberemos establecer un nuevo límite para administradores de tienda, para que sólo puedan tener 10 productos a la venta, o sea, publicados, en un momento dado. En el caso que se pasen, les mostraremos el mensaje "Has llegado a tu límite de productos. Para seguir publicando hazte premium." Y así quedaría el invento:

Creamos una limitación de 10 productos
Le damos a "Add", luego a "Guardar cambios" y listos. Con esto nuestros administradores de tienda sólo podrán publicar 10 productos. En el caso que intenten publicar otro, verán este mensaje:

Le indicamos al usuario que ya ha llegado a su límite.
Ya lo veis. Así de fácil y así de rápido, ya hemos podido limitar el máximo de productos que puede vender. Tal como os decía al inicio, esto tiene muchas más utilidades, pues también podemos limitar el número de posts, páginas o cualquier otro contenido que queramos, en función de nuestras circunstancias.
Ir un poco más allá
Aunque sólo con este plugin ya podéis conseguir el objetivo que nos hemos planteado, en ocasiones querremos automatizar un poco más todo esto. Hay muchas formas de hacerlo, pero yo os recomiendo combinar estos dos plugins:
- User roles and capabiliites: Esto nos servirá para crear un rol de "Vendedor limitado". Tenéis una clase entera dedicada a este plugin y cómo configurarlo en Curso de WordPress Intermedio #1. Roles y capacidades.
- Membership site con WooCommerce: Con esto podremos modificar el rol del usuario automáticamente si se suscribe, para que pase a ser "Vendedor premium". Tenéis un curso entero en el que cuento cómo hacer eso y más en Curso de membership sites en WooCommerce.
Resumen y conclusión
Gracias al plugin Bainternet Posts Creation Limits podemos limitar el número de productos que un usuario puede publicar en WooCommerce tanto en un intervalo de tiempo, como para siempre.
Esto es útil en el caso que queramos ofrecer a nuestros clientes una tienda online gratuita, pero limitando el numero de productos, y en el caso que quieran más, deban pasarse a un plan de pago.
El proceso es manual, pero plugins como User roles and capabiliites y Membership site con WooCommerce pueden ayudar a a automatizar el proceso.
Y ya lo sabéis. Si queréis saber más, echad un vistazo a los más de 6905 videos disponibles en la sección de cursos ;)