El sistema nativo de cupones de WooCommerce cubre lo básico: descuentos fijos, porcentaje y envío gratis. Pero si necesitás auto-aplicar un cupón de bienvenida, hacer un BOGO condicional, o restringir por provincia, el core no alcanza. Necesitás un plugin cupones WooCommerce gratis o código personalizado.
En 30 segundos
- WooCommerce core tiene cupones de descuento fijo, porcentaje y envío gratis, con restricciones básicas por monto mínimo/máximo y productos.
- Lo que falta: auto-aplicación, BOGO, restricciones por rol de usuario, por primera compra, por historial o por zona geográfica.
- Plugins gratuitos destacados: Advanced Coupons for WooCommerce (free), Smart Coupons for WooCommerce, y Extended Coupon Features Free.
- Si ningún plugin gratuito cubre tu caso, los hooks
woocommerce_coupon_is_validywoocommerce_coupon_get_discount_amountson el punto de entrada para código propio. - Los errores más comunes al personalizar cupones: no contemplar apilado, no registrar uso, y no testear con impuestos activos.
Limitaciones nativas de WooCommerce: por qué los cupones básicos no son suficientes
WooCommerce es un plugin de ecommerce para WordPress que incluye un sistema de cupones incorporado desde hace años. Ese sistema permite crear descuentos de monto fijo, de porcentaje sobre el carrito o sobre productos específicos, y descuentos de envío gratis. Las restricciones disponibles nativamente son: monto mínimo y máximo del carrito, productos incluidos/excluidos, categorías incluidas/excluidas, y la opción de uso individual (que bloquea combinación con otros cupones).
Hasta acá, zafa para una tienda simple.
El problema aparece en cuanto querés hacer algo más sofisticado. WooCommerce diseñó los cupones como una herramienta genérica, sin casos de uso específicos de marketing o fidelización. Eso tiene sentido desde la perspectiva del producto: mantener el core liviano y dejar las features avanzadas al ecosistema de plugins. El resultado es que si vas a la documentación oficial de cupones de WooCommerce, vas a ver una interfaz honesta pero bastante básica para las necesidades de una tienda en 2026.
Ponele que tenés una tienda de ropa y querés dar un 15% de descuento solo a los clientes nuevos, solo para su primera compra, y que se aplique automáticamente al llegar al checkout. Con el sistema nativo, eso no existe. Tenés que poner el código manualmente, no hay forma de restringir «solo primera compra», y el auto-apply directamente no está.
Opciones que faltan en el sistema nativo y por qué los usuarios las piden
A lo largo de los últimos años, trabajando con tiendas WooCommerce de distinto tamaño, las funcionalidades que más aparecen en los pedidos de los clientes son siempre las mismas:
- Auto-apply de cupones: que el descuento se aplique solo cuando se cumplen condiciones, sin que el usuario tenga que saber el código. Fundamental para campañas de abandono o bienvenida.
- BOGO (Buy One Get One): «llevás 2, pagás 1» o «comprás X, te llevo Y gratis». El core no lo tiene. Ninguna variante de BOGO existe nativamente.
- Restricción por rol de usuario: que el cupón solo funcione para clientes mayoristas, o solo para subscribers, o para cualquier rol de WordPress. El core no diferencia.
- Restricción por primera compra: uno de los casos más pedidos. El nativo no valida historial de compras.
- Restricción geográfica: descuento solo para compradores de determinada provincia o país. Útil para campañas locales o diferenciación de precios por región.
- Scheduling de cupones: que el cupón se active y desactive solo en fechas específicas, con hora incluida. El core solo tiene fecha de expiración, no de inicio.
- Cupones por historial: «si compraste más de $50.000 acumulados, accedés a este cupón». Fidelización básica que el core no contempla.
¿Alguien levantó la mano para que WooCommerce resuelva esto en el core? Desde hace más de 5 años se pide, y la respuesta sigue siendo «usá un plugin».
Restricciones disponibles vs. restricciones avanzadas: tabla comparativa
| Tipo de restricción | WooCommerce nativo | Requiere plugin o código |
|---|---|---|
| Monto mínimo/máximo del carrito | Sí | No |
| Productos/categorías incluidas o excluidas | Sí | No |
| Envío gratis | Sí | No |
| Uso individual (no apilable) | Sí | No |
| Fecha de expiración | Sí (solo fecha fin) | No |
| Auto-aplicación sin código | No | Sí |
| BOGO (compra uno lleva uno) | No | Sí |
| Restricción por rol de usuario | No | Sí |
| Restricción por primera compra | No | Sí |
| Restricción geográfica (país/provincia) | No | Sí |
| Scheduling con hora de inicio | No | Sí |
| Restricción por historial de compras acumulado | No | Sí |

Soluciones gratuitas: plugins recomendados y su alcance
El ecosistema tiene varias opciones gratuitas que cubren distintos casos. Ninguna lo tiene todo, pero según lo que necesites, alguna va a zafar sin pagar nada. Esto se conecta con lo que analizamos en mejorar la experiencia de compra.
Advanced Coupons for WooCommerce (free)
Disponible en wordpress.org/plugins/advanced-coupons-for-woocommerce-free/, este plugin amplía el editor de cupones con restricciones por rol de usuario, condiciones de carrito más avanzadas, y la posibilidad de aplicar cupones automáticamente. La versión gratuita cubre auto-apply y restricciones básicas de rol. El BOGO, gift cards y scheduling con hora quedan para la versión paga. Si tu caso es cupón de bienvenida por rol o auto-apply simple, la versión gratuita alcanza.
Smart Coupons for WooCommerce
El plugin de WT (disponible en wordpress.org) tiene una versión gratuita con restricciones por usuario, restricción de primera compra, y condiciones de carrito extendidas. La interfaz es un poco más densa que la de Advanced Coupons, pero las funciones de la free son más completas en ese aspecto. Si la restricción por primera compra es tu necesidad principal, este plugin lo resuelve sin pagar.
Extended Coupon Features Free
Más liviano que los anteriores, cubre scheduling con fecha de inicio, restricciones por URL y algunas condiciones de usuario. No tiene auto-apply ni BOGO, pero si lo que necesitás es poner fecha de inicio a un cupón de campaña, esta es la opción más simple (sin peso extra en el dashboard).
Lo que no va a cubrir ningún plugin gratuito con calidad decente: BOGO avanzado (tipo «comprás producto A, llevo producto B con 50% off»), gift cards con saldo real, y restricciones geográficas por provincia argentina. Ahí o pagás o programás.
Construir tu propio plugin de cupones: qué considerar
Si ningún plugin gratuito cubre tu caso y no querés pagar por una feature puntual, la ruta del código propio es viable. WooCommerce expone hooks bastante limpios para esto.
El hook central para validar restricciones personalizadas es woocommerce_coupon_is_valid. Recibe el objeto del cupón y el carrito, y esperás devolver un booleano o lanzar una excepción WC_Coupon_Exception con el mensaje de error. Para modificar el monto del descuento en casos como BOGO condicional o descuento escalonado, el hook relevante es woocommerce_coupon_get_discount_amount.
Para auto-apply, el hook es distinto: woocommerce_before_calculate_totals o woocommerce_cart_loaded_from_session, donde verificás las condiciones y llamás a WC()->cart->apply_coupon('codigo') si corresponde. Ojo que esto se ejecuta varias veces en una sesión, así que la validación tiene que ser eficiente (sin queries pesadas en cada cálculo de carrito).
Casos de uso que implementé con código propio y que vale la pena documentar:
- Cupón de primera compra: verificar si el email del cliente tiene pedidos anteriores con estado
completedoprocessing. Conwc_get_ordersfiltrado por email y estado, alcanza. - BOGO condicional: en
woocommerce_coupon_is_valid, verificar que el carrito contenga el producto A, y enwoocommerce_coupon_get_discount_amount, devolver el precio del producto B como descuento. - Descuento bulk (por cantidad): escalonar el porcentaje según la cantidad de ítems del mismo SKU. Esto normalmente va mejor como precio variable directo, pero si querés que sea cupón aplicable, se puede.
Si vas por esta ruta y el sitio está en un hosting WordPress compartido, asegurate de que el ambiente soporte PHP 8.1+ y de cachear los resultados intermedios para no reventar el tiempo de respuesta en el checkout. El hosting WordPress de Donweb tiene ambientes con PHP 8.2 y opcache activo, lo cual ayuda bastante cuando tenés lógica de validación medianamente compleja.
Errores comunes al implementar cupones personalizados
Acá hay una lista honesta de cosas que salen mal, porque todas me pasaron alguna vez (o las vi en código de terceros que tuve que arreglar). Complementá con preparar tu tienda para 2026.
No contemplar cupones apilables. Si tu lógica de auto-apply no verifica si ya hay otro cupón aplicado, podés terminar con dos descuentos acumulados que no deberían combinarse. WooCommerce tiene la opción «uso individual» en el campo nativo, pero si programás la aplicación por hook, esa opción no se respeta automáticamente: tenés que verificarla vos en la lógica del hook.
No registrar uso para análisis. Aplicar el cupón está bien. Pero si no guardás metadatos de qué condición lo disparó (primera compra, rol, zona), no tenés datos para evaluar si la campaña funcionó. Un campo de post meta en el pedido alcanza para esto.
No testear con impuestos activos. El descuento sobre el carrito cambia el cálculo de impuestos. Si testeás con la tienda en modo «sin impuestos» y después activás IVA o impuestos de cada provincia, los montos del descuento se van a comportar diferente. Testeá siempre con el régimen tributario real de la tienda.
Ignorar compatibilidad con otros plugins. Si la tienda usa un plugin de suscripciones, de precios por rol, o de bundles de productos, la lógica de cupones puede chocar. El hook woocommerce_coupon_is_valid lo filtran varios plugins. Antes de asumir que tu código funciona, revisá si hay otros callbacks en ese hook y el orden de prioridad.
Auto-apply sin cache de condiciones. Si la condición de validación hace una query a la base de datos (chequeando historial de compras, por ejemplo), esa query se ejecuta en cada recalculación del carrito. En un sitio con tráfico, esto puede impactar el rendimiento del checkout. Guardá el resultado en session o en una variable estática para evitar queries repetidas en la misma sesión.
Estrategia de cupones: casos de uso reales en ecommerce argentino
La diferencia entre una estrategia de cupones que funciona y una que se convierte en un agujero de revenue está en la precisión de las condiciones. Algunos casos que tienen sentido para tiendas locales en 2026:
Cupón de bienvenida para nuevos clientes. Se aplica automáticamente en el primer checkout de un email nuevo, con un 10-15% de descuento. La restricción de «primera compra» más auto-apply es la combinación básica. Con Smart Coupons free o un hook propio, se hace sin problema.
BOGO para liquidación de stock. «Llevás 2 unidades del mismo producto, la segunda es gratis.» Útil antes de renovar inventario. Esto sí requiere plugin pago o código personalizado, el core no lo tiene.
Descuento por cantidad (bulk). Escalonado: 5-9 unidades = 5% off, 10+ = 10% off. Funciona mejor como regla de precio (con un plugin de pricing por cantidad) que como cupón, pero si la tienda ya usa cupones para todo, se puede hacer con código en el hook de descuento.
Cupón por provincia o región. Ofrecés despacho gratis o descuento adicional para compras que van a CABA o GBA, por ejemplo, porque el costo de envío es menor. Esto requiere hook personalizado que lea la provincia del shipping address antes de validar.
Fijate que ninguno de estos casos es complicado conceptualmente. El problema es que WooCommerce no los tiene listos y hay que elegir: plugin, código, o pagar por una extensión premium. La respuesta depende del presupuesto y de cuántas veces vas a necesitar la misma funcionalidad.
Preguntas Frecuentes
¿Cómo crear cupones automáticos en WooCommerce?
WooCommerce nativo no tiene auto-apply de cupones. Para esto necesitás un plugin como Advanced Coupons for WooCommerce (versión free incluye auto-apply básico) o código propio usando el hook woocommerce_before_calculate_totals para llamar a WC()->cart->apply_coupon('codigo') cuando se cumplen las condiciones. En si vienes de Shopify profundizamos sobre esto.
¿Qué limitaciones tienen los cupones nativos de WooCommerce?
El sistema nativo permite descuento fijo, porcentaje y envío gratis, con restricciones de monto mínimo/máximo, productos y categorías. No incluye auto-aplicación, BOGO, restricciones por rol de usuario, por primera compra, por geolocalización, ni scheduling con hora de inicio. Para cualquiera de esas funciones necesitás plugin o desarrollo a medida.
¿Cuál es el mejor plugin gratuito para cupones en WooCommerce?
Depende del caso. Para auto-apply y restricciones por rol, Advanced Coupons for WooCommerce free es la opción más completa. Para restricción por primera compra, Smart Coupons for WooCommerce (WT) cubre ese caso en su versión gratuita. Para scheduling con fecha de inicio, Extended Coupon Features Free es más liviano. Ninguno cubre BOGO en versión gratuita.
¿Cómo hacer una oferta BOGO en WooCommerce sin plugin pago?
Con código propio, usando los hooks woocommerce_coupon_is_valid para verificar que el producto A esté en el carrito, y woocommerce_coupon_get_discount_amount para devolver el precio del producto B como descuento. Es una implementación de unas 30-40 líneas de PHP. Si no querés código, las opciones gratuitas disponibles no cubren BOGO de forma confiable (spoiler: los intentos gratuitos de replicar BOGO suelen tener bugs con impuestos o con variaciones de producto).
¿Se pueden restringir cupones por primera compra en WooCommerce?
Nativo, no. Con el plugin Smart Coupons for WooCommerce (versión gratuita en wordpress.org), sí. También se puede implementar con el hook woocommerce_coupon_is_valid, consultando si el email del checkout tiene pedidos anteriores con estado completed o processing mediante wc_get_orders.
Conclusión
El sistema nativo de cupones de WooCommerce es funcional para casos básicos, pero queda corto para cualquier estrategia de marketing que vaya más allá de «ingresá este código y tenés 10% off». Auto-apply, BOGO, restricciones por primera compra, por rol o por zona son features que se piden constantemente y que el core decidió no incluir.
En 2026, las opciones gratuitas mejoraron: Advanced Coupons y Smart Coupons tienen versiones free que cubren bastante terreno sin pagar. Si necesitás BOGO real o restricciones geográficas por provincia, ahí el camino es código propio (los hooks de WooCommerce son limpios y documentados) o una extensión premium. La elección depende de con qué frecuencia vas a necesitar la misma funcionalidad y si tenés presupuesto para mantenimiento de código personalizado a largo plazo.
Lo que sí está claro: seguir usando solo el sistema nativo y forzar a los clientes a ingresar códigos manualmente para todo es dejar conversiones sobre la mesa.


![Just released our AI agent plugin for wordpress - [FREEMIUM] - ilustracion](https://wordpress.donweb.com/wp-content/uploads/2026/05/plugin-ia-para-wordpress-claude-agente-hero.jpg)

