WooCommerce carrito vacío al pagar cómo solucionarlo
Guía completa para solucionar el error de carrito vacío al pagar en WooCommerce: causas, pasos de diagnóstico y soluciones técnicas paso a paso.
Índice
- Introducción: el problema del carrito vacío en WooCommerce
- Causas principales del carrito vacío al pagar en WooCommerce
- Cómo comprobar sesiones y cookies en WooCommerce
- Configuración de HTTPS, dominio y cookies seguras
- Conflictos con plugins, temas y sistemas de caché
- Ajustes clave de WooCommerce para el checkout
- Revisar servidor, PHP y configuración de hosting
- Soluciones específicas según la pasarela de pago
- Buenas prácticas para evitar que el carrito se vacíe
- Checklist rápido de diagnóstico y solución
- Preguntas frecuentes
Introducción: el problema del carrito vacío en WooCommerce
El error de carrito vacío al pagar en WooCommerce es uno de los fallos más frustrantes para cualquier tienda online. El cliente añade productos al carrito, avanza al checkout y, justo al intentar pagar, el carrito aparece vacío o se redirige a una página sin productos. Esto provoca pérdida directa de ventas, desconfianza en la tienda y un aumento del abandono de carrito.
La buena noticia es que, en la mayoría de los casos, este problema se puede solucionar siguiendo un proceso ordenado de diagnóstico. Suele estar relacionado con sesiones, cookies, caché, configuración de HTTPS, plugins o el servidor. En esta guía encontrarás un enfoque paso a paso para identificar la causa y aplicar la solución adecuada, tanto si eres desarrollador como si solo gestionas tu tienda.
Objetivo de esta guía: ayudarte a entender por qué WooCommerce muestra el carrito vacío al pagar y proporcionarte un conjunto de acciones concretas para que tu proceso de compra vuelva a funcionar con normalidad, minimizando el impacto en tus ventas.
Causas principales del carrito vacío al pagar en WooCommerce
Antes de entrar en soluciones técnicas, es importante conocer las causas más habituales del carrito vacío en WooCommerce. Entender el origen te permitirá priorizar qué revisar primero y ahorrar tiempo.
- Problemas con las sesiones de WooCommerce: si la sesión del usuario se pierde o se reinicia entre el carrito y el checkout, el sistema deja de recordar qué productos había en el carrito.
- Cookies bloqueadas o mal configuradas: navegadores que bloquean cookies de terceros, reglas de seguridad excesivas o configuraciones erróneas de dominio y subdominio pueden impedir que WooCommerce guarde la información del carrito.
- Caché agresiva en páginas dinámicas: plugins de caché o sistemas de caché del servidor que almacenan versiones estáticas del carrito o del checkout pueden provocar que el contenido no se actualice correctamente.
- Conflictos con plugins o el tema: extensiones de seguridad, optimización, pasarelas de pago o incluso el propio tema pueden interferir con el funcionamiento estándar de WooCommerce.
- Configuración incorrecta de HTTPS o dominio: mezclar
httpyhttps, o usar dominios y subdominios distintos sin configurar bien las cookies, puede hacer que la sesión se pierda al cambiar de URL. - Restricciones del servidor o PHP: límites de memoria, sesiones de PHP mal configuradas, reglas de firewall (WAF) o módulos de seguridad del hosting pueden cortar la sesión del usuario.
- Errores específicos de pasarelas de pago: algunos métodos de pago redirigen fuera del sitio y, si la sesión no se conserva correctamente al volver, el carrito aparece vacío.
Consejo: anota siempre en qué punto exacto se vacía el carrito (al ir al checkout, al elegir método de pago, al volver de la pasarela, etc.). Ese detalle te dará pistas sobre qué componente revisar primero.
Conflictos con plugins, temas y sistemas de caché
Otra de las causas más habituales del carrito vacío al pagar en WooCommerce son los conflictos con plugins, el tema activo o la caché. Muchas tiendas combinan plugins de optimización, seguridad y caché que, si no se configuran bien, pueden interferir con el flujo de compra.
1. Desactivar plugins para aislar el problema
El método más efectivo para detectar conflictos es desactivar temporalmente plugins hasta identificar el responsable:
- Haz una copia de seguridad antes de realizar cambios.
- Desactiva todos los plugins excepto WooCommerce.
- Prueba el proceso de compra: si el carrito ya no se vacía, el problema está en algún plugin adicional.
- Activa los plugins uno a uno (o en pequeños grupos) y repite la prueba hasta encontrar el que provoca el fallo.
2. Probar con un tema por defecto
Algunos temas incluyen personalizaciones profundas del carrito y del checkout que pueden generar errores. Para descartar esta causa:
- Activa un tema por defecto de WordPress compatible con WooCommerce, como Storefront o Twenty Twenty-Three.
- Repite el proceso de compra y comprueba si el carrito sigue vaciándose.
- Si el problema desaparece, revisa con el desarrollador del tema o actualiza a la última versión.
3. Configurar correctamente la caché
La caché es esencial para el rendimiento, pero mal configurada puede romper el carrito. Debes asegurarte de que no se cachean páginas dinámicas como el carrito, el checkout o la cuenta de usuario.
- En tu plugin de caché (por ejemplo, WP Rocket, W3 Total Cache, LiteSpeed Cache), excluye las URLs:
/carrito/,/cart/,/finalizar-compra/,/checkout/,/mi-cuenta/,/my-account/. - Excluye también las cookies de WooCommerce (
woocommerce_cart_hash,woocommerce_items_in_cart,wp_woocommerce_session_) de la caché si el plugin lo permite. - Si tu hosting utiliza caché a nivel de servidor (Varnish, NGINX, etc.), solicita al soporte que excluya estas páginas y cookies.
Importante: después de cambiar la configuración de caché, vacía por completo la caché del sitio, la caché del navegador y, si procede, la caché del CDN (Cloudflare, etc.) antes de volver a probar el proceso de compra.
Ajustes clave de WooCommerce para el checkout
Además de los aspectos técnicos del servidor y los plugins, es fundamental revisar los ajustes internos de WooCommerce. Una configuración incorrecta de las páginas del carrito o del checkout puede provocar comportamientos inesperados, incluido el carrito vacío al pagar.
1. Comprobar las páginas asignadas
En WooCommerce > Ajustes > Avanzado, revisa que las páginas estén correctamente asignadas:
- Página del carrito: debe contener el shortcode
[woocommerce_cart]. - Página de finalizar compra: debe contener el shortcode
[woocommerce_checkout]. - Página de mi cuenta: debe contener el shortcode
[woocommerce_my_account].
Si has duplicado páginas o cambiado slugs, asegúrate de que WooCommerce apunta a las páginas correctas y elimina las versiones antiguas para evitar confusiones.
2. Revisar el flujo de redirecciones
Algunos plugins modifican el flujo estándar de WooCommerce, redirigiendo al usuario automáticamente al checkout tras añadir un producto al carrito o al completar ciertos pasos. Si estas redirecciones no se gestionan bien, pueden provocar la pérdida del contenido del carrito.
- En WooCommerce > Ajustes > Productos, revisa la opción Redirigir al carrito tras añadir un producto y prueba a activarla o desactivarla para ver si cambia el comportamiento.
- Desactiva temporalmente plugins que añadan redirecciones personalizadas tras añadir al carrito o al finalizar compra.
- Comprueba que no haya reglas de redirección en plugins como Redirection que afecten a las URLs del carrito o del checkout.
3. Actualizar WooCommerce y extensiones
Versiones antiguas de WooCommerce o de extensiones de pago pueden contener errores ya corregidos en versiones posteriores. Mantener el ecosistema actualizado es clave para evitar fallos como el carrito vacío.
- Actualiza WooCommerce a la última versión estable, previa copia de seguridad.
- Actualiza las pasarelas de pago oficiales (Stripe, PayPal, Redsys, etc.).
- Revisa el registro de cambios (changelog) de los plugins para ver si mencionan correcciones relacionadas con el carrito o el checkout.
Buena práctica: prueba siempre las actualizaciones en un entorno de staging antes de aplicarlas en producción. Así podrás verificar si el problema del carrito vacío se resuelve sin afectar a los clientes reales.
Revisar servidor, PHP y configuración de hosting
Cuando el problema del carrito vacío al pagar en WooCommerce persiste tras revisar plugins, tema y ajustes, es momento de mirar al servidor y la configuración de PHP. Algunos hostings aplican reglas de seguridad o límites de recursos que afectan directamente a las sesiones.
1. Versión de PHP y módulos necesarios
WooCommerce recomienda utilizar versiones modernas de PHP (8.0 o superior, según compatibilidad). Versiones obsoletas o sin ciertos módulos pueden generar comportamientos inesperados.
- Comprueba en WooCommerce > Estado la versión de PHP y los módulos instalados.
- Asegúrate de que están habilitados módulos como
curl,mbstring,jsony soporte para sesiones. - Si es posible, actualiza PHP desde el panel de tu hosting a una versión recomendada por WooCommerce.
2. Configuración de sesiones de PHP
Las sesiones de PHP deben poder crearse y mantenerse durante el proceso de compra. Algunos parámetros clave son:
session.save_path: ruta donde se almacenan los archivos de sesión. Debe existir y tener permisos de escritura.session.gc_maxlifetime: tiempo máximo de vida de una sesión. Si es demasiado bajo, las sesiones pueden caducar en mitad del proceso de compra.session.cookie_lifetime: duración de la cookie de sesión en el navegador.
Si no tienes acceso directo a php.ini, solicita al soporte de tu hosting que revise estos parámetros y confirme que son adecuados para una tienda WooCommerce.
3. Reglas de seguridad y firewall
Algunos hostings incluyen sistemas de seguridad (WAF, ModSecurity, reglas personalizadas) que pueden bloquear peticiones legítimas del carrito o del checkout, interpretándolas como sospechosas.
- Pregunta a tu proveedor si hay reglas de firewall que afecten a URLs como
/cart/o/checkout/. - Solicita que revisen los registros de seguridad en el momento en que se reproduce el error del carrito vacío.
- Si usas un WAF externo (por ejemplo, Cloudflare), prueba a desactivarlo temporalmente o a ponerlo en modo Desarrollo para descartar interferencias.
Nota: un buen hosting especializado en WordPress/WooCommerce suele tener configuraciones optimizadas para sesiones y caché, reduciendo significativamente la probabilidad de errores como el carrito vacío al pagar.
Soluciones específicas según la pasarela de pago
En muchos casos, el carrito solo se vacía al volver de la pasarela de pago. Es decir, el cliente añade productos, llega al checkout, elige un método de pago, se le redirige a la plataforma externa (banco, PayPal, etc.) y, al regresar a la tienda, el carrito aparece vacío o el pedido no se registra correctamente.
1. Pasarelas con redirección externa (Redsys, TPV bancario, PayPal Standard)
Estas pasarelas suelen implicar un cambio de dominio durante el proceso de pago. Para que el carrito se mantenga al volver:
- Asegúrate de que la URL de retorno (callback/URL de notificación) está correctamente configurada en el panel de la pasarela.
- Comprueba que la tienda utiliza siempre https y que la URL de retorno coincide exactamente con la configurada en WooCommerce.
- Revisa la documentación oficial del plugin de la pasarela para ver si hay requisitos especiales sobre cookies o sesiones.
2. Pasarelas integradas (Stripe, PayPal Checkout, WooCommerce Payments)
Estas pasarelas suelen funcionar mediante APIs y, en muchos casos, sin salir del dominio de la tienda. Aun así, pueden producirse errores que afecten al carrito si hay conflictos con JavaScript o con la caché.
- Actualiza el plugin de la pasarela a la última versión.
- Desactiva temporalmente plugins de optimización de scripts (minificación, combinación, carga diferida) y prueba de nuevo.
- Comprueba en los registros de WooCommerce si se generan errores específicos al procesar el pago.
3. Modo de pruebas y entorno sandbox
Siempre que sea posible, utiliza el modo de pruebas de las pasarelas para reproducir el problema sin afectar a clientes reales. Esto te permitirá:
- Verificar si el carrito se vacía solo en pagos reales o también en pruebas.
- Revisar los registros de la pasarela (logs) para detectar errores de comunicación con la tienda.
- Probar diferentes navegadores y dispositivos sin riesgo.
Consejo práctico: si el carrito solo se vacía al usar una pasarela concreta y no con otras (por ejemplo, transferencia bancaria o pago contra reembolso), céntrate en esa integración: revisa su configuración, actualízala o prueba un plugin alternativo oficial.
Buenas prácticas para evitar que el carrito se vacíe
Más allá de solucionar el problema puntual, es importante aplicar una serie de buenas prácticas para minimizar la probabilidad de que el carrito vuelva a vaciarse al pagar en WooCommerce. Estas recomendaciones mejoran la estabilidad general de tu tienda.
1. Mantener un entorno controlado y actualizado
- Actualiza regularmente WordPress, WooCommerce, el tema y los plugins, tras probar en un entorno de staging.
- Elimina plugins que no utilices para reducir la superficie de posibles conflictos.
- Evita instalar plugins de baja calidad o sin mantenimiento activo.
2. Configurar correctamente la caché desde el principio
Si vas a usar caché (recomendable para rendimiento), configúrala pensando en WooCommerce desde el primer momento:
- Excluye carrito, checkout y mi cuenta de la caché.
- No minifiques ni combines scripts críticos de WooCommerce y de las pasarelas de pago sin probar.
- Si usas CDN, configura reglas específicas para no cachear contenido dinámico.
3. Monitorizar el proceso de compra
Implementa herramientas de monitorización y analítica para detectar rápidamente problemas en el checkout:
- Usa Google Analytics o herramientas similares para medir el abandono de carrito y de checkout.
- Configura alertas si el ratio de conversión cae bruscamente.
- Solicita feedback a clientes que reporten problemas durante el pago para identificar patrones.
Resumen: un WooCommerce estable se basa en una combinación de buen hosting, configuración correcta de HTTPS y caché, plugins de calidad y un mantenimiento periódico. Invertir tiempo en estos aspectos reduce drásticamente incidencias como el carrito vacío al pagar.
Checklist rápido de diagnóstico y solución
Para ayudarte a actuar de forma ordenada cuando WooCommerce muestra el carrito vacío al pagar, utiliza este checklist rápido como guía práctica. Ve marcando cada punto a medida que lo compruebas.
- Probar en ventana de incógnito y en otro navegador para descartar caché local.
- Verificar que se crean las cookies de WooCommerce al añadir productos al carrito.
- Comprobar que la URL del sitio es única y consistente (siempre https, con o sin www, pero sin mezclar).
- Revisar que las páginas de carrito y checkout están correctamente asignadas y contienen sus shortcodes.
- Desactivar todos los plugins excepto WooCommerce y probar el proceso de compra.
- Activar un tema por defecto (Storefront o similar) y repetir la prueba.
- Configurar la caché para excluir carrito, checkout y mi cuenta, y vaciar toda la caché.
- Revisar la configuración de la pasarela de pago que da problemas, incluyendo URLs de retorno.
- Comprobar en WooCommerce > Estado si hay avisos críticos relacionados con el servidor o PHP.
- Contactar con el hosting para revisar sesiones de PHP, firewall y reglas de seguridad.
Uso recomendado: guarda este checklist y aplícalo siempre que detectes comportamientos extraños en el carrito o el checkout. Te permitirá localizar el origen del problema con rapidez y comunicarte mejor con desarrolladores o con el soporte técnico.
Preguntas frecuentes
A continuación se responden algunas de las dudas más habituales relacionadas con el error de carrito vacío al pagar en WooCommerce. Estas respuestas te ayudarán a aclarar conceptos y a actuar con mayor seguridad.
¿Por qué el carrito se vacía solo en algunos navegadores o dispositivos?
Si el carrito se vacía solo en ciertos navegadores, suele deberse a diferencias en el manejo de cookies y políticas de seguridad. Algunos navegadores bloquean más agresivamente cookies de terceros o aplican reglas estrictas de SameSite. También puede influir la caché local del navegador o extensiones de bloqueo de anuncios. Prueba en modo incógnito, sin extensiones, y verifica que tu sitio usa siempre https y un dominio consistente.
¿Puedo usar caché en WooCommerce sin que se vacíe el carrito?
Sí, puedes y debes usar caché para mejorar el rendimiento, pero con una configuración adecuada. La clave es no cachear páginas dinámicas como carrito, checkout y mi cuenta, ni las cookies de sesión de WooCommerce. Configura tu plugin de caché y, si procede, tu CDN y la caché del servidor para respetar estas exclusiones. De este modo, obtendrás un sitio rápido sin romper el proceso de compra.
¿Es siempre culpa del hosting cuando el carrito se vacía?
No siempre, aunque el hosting puede ser un factor importante. En muchos casos, el problema está en plugins mal configurados, temas incompatibles o caché agresiva. Sin embargo, si ya has descartado estos elementos, es posible que la causa esté en la configuración de PHP, las sesiones o las reglas de seguridad del servidor. Por eso es importante seguir un proceso de diagnóstico ordenado antes de culpar al hosting.
¿Qué hago si el carrito solo se vacía con una pasarela de pago concreta?
Si el problema se da únicamente con una pasarela (por ejemplo, un TPV bancario o PayPal), céntrate en esa integración. Actualiza el plugin, revisa la configuración de las URLs de retorno y notificación, y prueba en modo sandbox. Comprueba también si el proveedor de la pasarela tiene documentación específica para WooCommerce. En algunos casos, cambiar a un plugin oficial o más actualizado resuelve el problema de inmediato.
¿Cuándo debería pedir ayuda a un desarrollador o especialista?
Si has seguido el checklist básico (revisión de cookies, caché, plugins, tema, ajustes de WooCommerce y hosting) y el carrito sigue vaciándose al pagar, es recomendable acudir a un desarrollador especializado en WooCommerce. También es buena idea pedir ayuda cuando el problema afecta a un alto volumen de ventas o cuando necesitas aplicar cambios avanzados en el servidor, las sesiones o la integración con pasarelas de pago.
¿Necesitas orientación personalizada?
Te ayudamos a entender tus opciones y el siguiente paso.