Errores y problemas

Mirar solo AJAX oculta fallos del checkout WooCommerce

Un cliente llega al pago, el botón se queda cargando, aparece un error o el pedido queda pendiente sin que la venta se complete. Si revisas solo AJAX, puedes pasar por alto la causa: el checkout clásico depende principalmente de ese flujo, mientras que Checkout Blocks utiliza la Store API. Cambiar plugins, caché o pasarela sin distinguirlos puede convertir un incidente puntual en más ventas perdidas.

Los problemas de checkout suelen deberse a conflictos de JavaScript, caché, Store API o comunicación con la pasarela, no al formulario en sí. Clasifica primero el síntoma y el tipo de checkout; después comprueba consola, peticiones de Network y logs. Hazlo en staging y con una copia de seguridad antes de intervenir en producción.

Índice

Anuncio

Diagnostica problemas WooCommerce checkout

Clasifica el síntoma y la arquitectura antes de cambiar ajustes.

Relaciona síntoma y primera prueba

SíntomaPrimera prueba seguraRespuesta que buscarNo hagas esto
Spinner que no terminaNetwork, filtro Fetch/XHR403, 429, 500 o JSON con errorDesactivar extensiones en producción
Error al procesar el pedidoConsola y log de WooCommerceCampo inválido, PHP o credencialesCulpar a la pasarela sin revisar el log
Vuelve de Redsys, Stripe o PayPal sin confirmarEstado de pedido y callbackRedirección, webhook o firma fallidaMarcar pedidos como pagados a mano
Pedido pendiente de pagoPanel de la pasarelaTransacción aprobada, rechazada o ausenteBorrar el pedido antes de comprobarlo

Distingue AJAX de store API

Si aparece el bloque de pago de WooCommerce, se trata de Checkout Blocks; si aparece el shortcode [woocommerce_checkout], es el flujo clásico. El clásico suele lanzar ?wc-ajax=, mientras que el bloque llama a rutas REST y a la Store API. En Network, filtra Fetch/XHR, realiza una prueba de pago y guarda la URL, el código HTTP y la respuesta.

Ruta de diagnóstico sin tocar ventas activas
1. Síntoma
Spinner, error, vuelta o pendiente
→
2. Arquitectura
AJAX clásico o Store API
→
3. Evidencia
Network, consola y logs
→
4. Corrección
Staging, prueba y rollback

Para investigar un error de checkout, abre la consola del navegador antes de reproducir el fallo y conserva el registro de Network.

Si Network devuelve 200 pero la interfaz muestra un error, revisa la consola para detectar una excepción que impida procesar la respuesta.

Mirar solo AJAX oculta fallos del checkout WooCommerce

Aísla caché, código y pasarela

Excluye las páginas transaccionales y localiza la capa que modifica la petición.

Revisa caché, CDN y firewall

Comprueba el plugin de caché, CDN y firewall. Excluye /cart/, /checkout/ y /my-account/, sus slugs traducidos y las cookies woocommerce_items_in_cart, woocommerce_cart_hash y wp_woocommerce_session_. Un 403 suele apuntar al WAF; un 429, a límites de peticiones.

Comprueba tema, campos y actualizaciones

Valida credenciales y autenticación

Tras validar las credenciales y la autenticación, si el checkout WooCommerce no funciona después de una actualización, aísla el conflicto en staging con una prueba controlada. Desactiva primero los plugins que modifican campos, precios, envíos, consentimiento, moneda, pagos o scripts, y repite la compra tras cada cambio para identificar el responsable. Si el problema continúa, cambia temporalmente a un tema predeterminado de WordPress y desactiva la combinación, minificación o aplazamiento de JavaScript. Los errores JavaScript checkout suelen aparecer cuando un script elimina eventos de WooCommerce, altera los datos del formulario o carga tarde una dependencia.

No basta con que desaparezca el spinner de pago WooCommerce: valida también que se crea el pedido, se registra el pago y llega el correo.

Anuncio

Comprueba cobros, webhooks y pruebas seguras

Verifica el recorrido completo del dinero antes de cambiar estados de pedido.

Revisa pedidos y webhooks

En WooCommerce, abre el pedido y consulta sus notas. Después entra en WooCommerce > Estado > Registros y selecciona el archivo de la pasarela por fecha y hora. Busca firma inválida, URL no accesible, credenciales erróneas, timeout o respuestas 401, 403 y 500; compara pedido, importe, moneda y hora con la operación real.

Haz cambios en staging con rollback

Ante un pago aprobado que deja un pedido pendiente, confirma primero si la pasarela recibió la operación y qué identificador de transacción le asignó. Después compara ese identificador, importe, moneda y hora con las notas del pedido y el registro del plugin de pago. Revisa en el panel de la pasarela los intentos de entrega del webhook de pago o del callback de pasarela, incluida la URL llamada, la respuesta HTTP y los reintentos.

Una respuesta 404, 401, 403 o 500 impide que WooCommerce actualice el estado aunque el banco haya cobrado. Si usas HPOS, comprueba que la extensión de la pasarela declara compatibilidad y está actualizada antes de atribuir el fallo al webhook o cambiar manualmente el pedido.

Lo que más preguntan

¿Por qué falla el checkout de WooCommerce?

El pago suele fallar por caché, JavaScript, campos inválidos, pasarela o un bloqueo del servidor. Distingue primero el checkout clásico con AJAX de Checkout Blocks con Store API. Esa diferencia decide qué llamada debes revisar en Network.

¿Por qué se queda cargando el pago?

Un spinner infinito suele corresponder a una petición bloqueada, lenta o con error HTTP 403, 429 o 500. Abre F12, filtra Fetch/XHR y revisa la respuesta de la última petición. Excluye el checkout de caché y JavaScript diferido antes de cambiar plugins.

¿Qué páginas de WooCommerce no debo cachear?

Carrito, mi cuenta y finalizar compra deben quedar fuera de caché de página, CDN y scripts diferidos agresivos. Respeta también las cookies de sesión de WooCommerce. Sin esas exclusiones, el carrito puede variar entre visitas.

¿Por qué hay un pago cobrado sin pedido?

Un pago cobrado sin pedido suele indicar un webhook o callback bloqueado, fallido o no compatible con HPOS. Compara hora e importe en la pasarela, las notas del pedido y los logs. No devuelvas ni marques cobros manualmente sin esa conciliación.

¿Cómo veo los errores de WooCommerce?

Los errores se consultan en WooCommerce > Estado > Registros y en la consola del navegador. Activa WP_DEBUG_LOG solo de forma temporal y sin mostrar errores al público. Un log de PHP complementa la respuesta de Network, no la sustituye.

Lo esencial:

Cierra la incidencia con una prueba real

Documenta la causa y valida una compra controlada antes de cerrar el incidente. Anota el ajuste aplicado, la petición que fallaba, su código HTTP y el resultado. Confirma navegador, pedido, cobro, webhook y correo en la misma operación; si uno no coincide, la incidencia sigue abierta.

⚠️ No cierres la incidencia solo porque desapareció el mensaje de error: confirma pedido, cobro, webhook y correo en la misma operación.
RESUMIR CON IA: Extrae lo importante

Comparte este artículo:

Josu Barrios

Josu Barrios

Somos especialistas en mantenimiento WordPress para empresas, profesionales y tiendas online. Contamos con experiencia en seguridad web, optimización de rendimiento, actualizaciones, copias de seguridad y resolución de incidencias técnicas, ayudando a que cada sitio funcione de forma rápida, estable y protegida. Nuestro enfoque combina soporte técnico profesional, buenas prácticas de seguridad y seguimiento continuo para ofrecer un servicio fiable, transparente y orientado a resultados reales.