woocommerce_checkout_process

Ejemplos de woocommerce_checkout_process para validar el checkout clásico y cuándo elegir otro hook.

Revisado
Compatibilidad
WooCommerce; checkout clásico
Lectura
2 min
Autor
Gabriel — infinit8

woocommerce_checkout_process permite añadir validaciones durante el procesamiento del checkout clásico. Es sencillo, aunque para reglas basadas en los datos ya preparados suele ser más claro woocommerce_after_checkout_validation.

Diferencia frente a after_checkout_validation

Este hook no entrega parámetros. Habitualmente se leen campos de la petición y se usa wc_add_notice(). El hook posterior entrega un array procesado y un objeto de errores, lo que facilita pruebas y reglas con varios datos.

Ejemplo de validación

Si debes mantener código existente basado en este hook, limita el acceso a la entrada y sanitízala antes de evaluar la regla.

i8-checkout-process.php
add_action(
    'woocommerce_checkout_process',
    function (): void {
        $reference = isset($_POST['order_reference'])
            ? sanitize_text_field(wp_unslash($_POST['order_reference']))
            : '';

        if ('' === $reference) {
            wc_add_notice(
                'Indica la referencia del pedido.',
                'error'
            );
        }
    }
);

Seguridad y experiencia de usuario

No interpolar la entrada del cliente dentro de mensajes sin escapar. Evita reglas ambiguas y coloca el foco visual en el campo con error cuando la interfaz lo permita.

Qué hook elegir

Para proyectos nuevos, elige el hook cuyo contrato ofrezca los datos necesarios y documenta que se trata del checkout clásico. Si trabajas con bloques, usa las APIs específicas del bloque.

Preguntas frecuentes

¿Este hook recibe parámetros?

No. Se ejecuta como acción sin argumentos.

¿Funciona con Checkout Blocks?

No debe asumirse. Los bloques siguen un flujo diferente y necesitan sus APIs de extensibilidad.

Referencias y revisión

Contenido contrastado con documentación oficial. Comprueba siempre el comportamiento en un entorno de pruebas antes de desplegar cambios.