Establecer límites mensuales de compra
Usa Monthly product purchase limits para limitar las unidades de un producto individual, o Monthly attribute purchase limits para compartir un límite entre productos con el mismo valor de atributo global. Los controles son independientes y se pueden activar juntos. Por ejemplo, se podría permitir a un cliente cuatro unidades de un producto concreto y cinco unidades en total con el atributo Collection: Summer.
Estos límites se aplican a los clientes que inician sesión. Los invitados no tienen restricciones. Configura tu tienda para exigir el inicio de sesión si todas las compras deben estar asociadas a una cuenta.
Limitar un producto individual
Necesitas WooCommerce, permiso para gestionar POM Tweaks y permiso para editar el producto.
- Abre Settings → POM Tweaks → E-Commerce → Products.
- Activa Monthly product purchase limits y selecciona Save.
- Edita el producto en Products → All Products en el editor de productos clásico.
- Abre Product data → Inventory.
- Selecciona Enable maximum per user e introduce un número entero en Monthly quantity limit.
- Selecciona Update.
Todas las variaciones y líneas de carrito independientes de ese producto comparten el mismo límite. Un límite de producto activado de 0 impide a los clientes con sesión iniciada comprar cualquier unidad. Desmarca Enable maximum per user para que el producto no tenga restricciones.
Los límites de producto existentes siguen disponibles sin necesidad de volver a abrir y guardar cada producto.
Compartir un límite por atributo
Primero crea los atributos globales y sus valores en Products → Attributes y asígnalos a tus productos. Los atributos de texto personalizados, las categorías y las etiquetas no forman parte de este control.
- En Settings → POM Tweaks → E-Commerce → Products, activa Monthly attribute purchase limits y selecciona Save.
- En Monthly attribute allowances, selecciona Add new.
- Busca Attribute value y elige el atributo y el valor correspondientes.
- Introduce Units per customer per month y guarda.
- Añade otra fila por cada valor que necesite su propio límite.

El límite lo comparten todos los productos coincidentes. Cada valor restringido tiene un límite independiente. Un producto que coincida con dos valores restringidos consume ambos límites. Una variación cuenta sus valores de atributo global seleccionados, incluido el valor elegido por el cliente para una variación “Any…”, en lugar de todos los valores posibles del producto padre.
En las reglas de atributo, 0 o una cantidad vacía significa sin restricciones. Si el mismo valor aparece más de una vez, se aplica el límite positivo más pequeño. Una fila con cero no anula otra regla positiva para ese valor. Elimina las filas obsoletas con Delete y guarda.
Qué consume el límite
El cálculo suma las unidades del carrito a las unidades de los pedidos Processing y Completed del cliente creados durante el mes natural actual. Usa la zona horaria del sitio de WordPress y se reinicia a medianoche el primer día del mes siguiente. Alcanzar exactamente el límite está permitido.
El cálculo cuenta unidades, no el número de pedidos. Se incluyen todas las páginas de pedido coincidentes, con soporte para el almacenamiento de pedidos de alto rendimiento (HPOS) de WooCommerce y el almacenamiento de pedidos heredado. Los estados pendiente, fallido, cancelado, totalmente reembolsado y otros no consumen el límite. Los reembolsos parciales no restan unidades mientras el pedido permanezca en Processing o Completed.
El historial de atributos usa los atributos globales actuales del producto y los valores de variación seleccionados guardados en el pedido. Por tanto, eliminar un producto o cambiar sus atributos puede modificar su contribución histórica a un límite por atributo. Los límites de producto siguen identificando las compras anteriores mediante el ID del producto.
Se comprueban las adiciones y actualizaciones clásicas del carrito, y se vuelve a comprobar el carrito completo antes de finalizar la compra. Los bloques Cart/Checkout de WooCommerce también reciben límites de cantidad conscientes del límite y errores finales del carrito. Los clientes pueden quitar artículos o reducir cantidades para resolver un exceso. Los mensajes indican el producto o el atributo y muestran el límite, las unidades compradas y el límite restante.
Se trata de comprobaciones de compra de la cuenta, no de reservas de stock. Los pedidos pendientes no reservan límite y los procesos de compra simultáneos no se serializan mediante esta función. Los pedidos existentes nunca se cancelan ni se reescriben al activar un límite.
Verificar y solucionar problemas
- Inicia sesión como un cliente con un pedido Processing o Completed conocido de este mes.
- Añade unidades hasta el límite restante y confirma que se aceptan.
- Prueba con una unidad adicional. WooCommerce debería explicar el límite superado del producto o atributo.
- Prueba diferentes variaciones y diferentes productos que compartan el mismo valor restringido.
- Confirma que un pedido del mes anterior no reduce el límite actual y que un invitado permanece sin restricciones.
Si una compra parece faltar en el recuento, comprueba la cuenta del cliente del pedido, la fecha de creación y el estado actual. En las reglas de atributo, comprueba también que haya un valor de atributo global seleccionado en el producto o la variación. Unavailable attribute value identifica un valor guardado que ya no está disponible; sustitúyelo o elimina esa fila.
Si no se puede verificar el historial, el proceso de compra pide al cliente que reintente en lugar de tratar el límite como no usado. Para desactivar una política para todos, desmarca su casilla Enable y guarda. Se conservan los metadatos del producto, las reglas guardadas y los pedidos.
Relacionado: Modern tweaks, Cart product restrictions y Product REST fields.