PRCOD_Cart_Handler, PRCOD_Order_Creator y PRCOD_Settings_Secondary_ButtonEl motor de checkout de Modal COD Form PRO v5.0 está diseñado para resolver los escenarios más complejos del comercio electrónico: desde productos con variaciones comodín («Cualquier talla / Cualquier color») hasta tiendas híbridas que combinan Pago Contra Entrega con un Botón Secundario de Pago Anticipado con Descuento (tarjeta, PSE, Nequi, Mercado Pago o PayPal).
1. Cómo Funciona el Flujo Completo de Compra en el Modal
- Apertura y Preparación del Carrito (
cod_form_add_to_cart): Cuando el comprador hace clic en el botón COD, el scriptcod-form-custom.jsrecolecta la cantidad y los atributos de variación seleccionados y los envía por AJAX. - Renderizado Dinámico del Modal (
load_modal_content): El servidor devuelve el contenido detemplates/modal-content.phpincluyendo la tabla de productos (o el selector de Ofertas por Cantidad), el bloque de Upsell 1-Tick, el formulario de envío y el resumen de totales. - Cálculo Reactivo de Envíos y Descuentos: Al elegir el departamento en
#state, se consultan las tarifas de envío firmadas criptográficamente con HMAC-SHA256 y se actualizan el subtotal y el total sin recargar la página. - Intercepción Post-Submit (1-Click Upsell) y Creación de la Orden: Al pulsar el botón de envío, si existe un Upsell 1-Click activo se presenta el popup de oferta con 1 clic; finalmente se ejecuta
cod_create_order(ocod_create_dropi_order), verificando primero las reglas de Prevención de Fraude.
2. Resolución Inteligente de Productos Variables y Swatches (v5.0)
Uno de los problemas más frecuentes en WooCommerce ocurre cuando un producto variable tiene variaciones configuradas como «Cualquier atributo…» (wildcard) o cuando se utilizan plugins externos de muestras de color/talla (Swatches). En la versión 5.0 (tanto Free como PRO):
- Recolector en 2 Pasos en Frontend: Primero lee los selectores nativos
.variations select, select[name^="attribute_"]dentro deform.cart; si algún atributo sigue vacío, inspecciona automáticamente los elementos visuales activos de plugins de Swatches (.selected[data-value], .active[data-value], [aria-checked="true"][data-value]). - Validación en Servidor (
resolve_variation_attributes): Completa únicamente los atributos comodín sin sobrescribir atributos fijos de la variación, normaliza contra los términos de taxonomía del producto padre y aplica un respaldo automático (fallback) a la primera variación con stock disponible para que ningún pedido falle.
3. Configuración del Botón Secundario («Pagar con Tarjeta / PSE con Descuento»)
Si deseas incentivar a tus clientes a pagar por adelantado (reduciendo el riesgo de devolución contraentrega), ve a WooCommerce → Ajustes → Modal COD Form → Botón Secundario (Secondary Button):
- Habilitar Botón Secundario (
cod_form_enable_wc_checkout = 'yes'): Muestra un segundo botón debajo del botón de confirmación COD dentro del modal. - Compra Inmediata con Datos Pre-cargados (
cod_form_enable_immediate_purchase = 'yes'): Cuando el cliente pulsa el botón secundario, el endpointcod_immediate_purchasetoma el nombre, teléfono, departamento, ciudad, dirección, oferta de cantidad y Upsell 1-Tick que el usuario ya seleccionó en el modal, los carga en la sesión de WooCommerce y lo redirige directo a finalizar el pago con pasarela. - Descuento Exclusivo por Pago Anticipado: Puedes activar
cod_form_secondary_button_enable_discount = 'yes'y definir un descuento porcentual o fijo (cod_form_secondary_button_discount_typeycod_form_secondary_button_discount_value). El servidor genera un cupón temporal seguro (checkout_discount_{timestamp}) verificado desdewp_options.
Siguientes Pasos
- 🧩 Aprende a colocar múltiples botones en tus páginas de venta: Shortcodes [custom_add_to_cart_button] y [cod_menu_cart].
- 🛒 Configura la captura de clientes que no completan el formulario: Captura y Recuperación de Carritos Abandonados.