Si el carrito WooCommerce no funciona en tu sitio, la causa más frecuente es un conflicto entre plugins: uno de ellos interfiere con las peticiones AJAX que WooCommerce usa para actualizar el carrito en tiempo real. El diagnóstico se hace desactivando todos los plugins excepto WooCommerce, probando el carrito, y reactivando de a uno hasta encontrar al culpable. En la mayoría de los casos, el problema se resuelve en menos de una hora.
En 30 segundos
- El síntoma más común: el carrito queda vacío después de agregar productos, o el mini carrito no se actualiza sin recargar la página.
- Causa #1: un plugin de caché (WP Rocket, W3 Total Cache, LiteSpeed Cache) bloquea la URL
/?wc-ajax=get_refreshed_fragments, que WooCommerce usa para sincronizar el carrito vía AJAX. - Causa #2: conflicto con Elementor Pro o builders que cargan sus propios scripts jQuery y pisan los de WooCommerce.
- Causa #3: WPML con WooCommerce Multilingual puede limitar el carrito a 2 productos y vaciarlo al cambiar de idioma.
- Solución rápida: desactivar todos los plugins excepto WooCommerce, probar, reactivar de a uno. Si el carrito funciona con el theme por defecto (Twenty Twenty-Four) y sin plugins extra, el problema es de compatibilidad, no de WooCommerce en sí.
Qué es un conflicto de plugins y cómo afecta al carrito
Ponele que instalás un plugin de optimización de performance que minifica y combina archivos JavaScript. El plugin hace bien su trabajo en el 99% del sitio. Pero WooCommerce tiene scripts propios para gestionar el carrito (wc-cart-fragments.min.js, entre otros), y cuando ese plugin los combina con otros scripts o los carga de forma diferida, el carrito deja de responder.
Un conflicto de plugins no significa que alguno esté roto. Significa que dos o más plugins funcionan bien por separado pero se pisan en algún punto: comparten el mismo handle de script, modifican la misma variable global de jQuery, o compiten por el mismo hook de WordPress. El carrito WooCommerce es especialmente sensible a esto porque depende de peticiones AJAX que se disparan en tiempo real, y cualquier script que no cargue bien puede cortar ese flujo.
La buena noticia: se diagnostica con un método claro y repetible. No hace falta instalar herramientas especiales ni tener acceso al servidor.
Síntomas que indican que tu carrito WooCommerce no funciona por un conflicto
Los síntomas más frecuentes son estos:
- Agregás un producto y el carrito queda en cero, como si nada hubiera pasado.
- El mini carrito en el header no se actualiza hasta que recargás la página manualmente.
- El botón «Ver carrito» lleva a una página que muestra el carrito vacío aunque hayas agregado productos.
- Los productos se agregan pero no se pueden eliminar, o el precio total no se actualiza al cambiar la cantidad.
- El checkout redirige de vuelta al carrito, en loop, sin avanzar al pago.
- El carrito funciona bien en escritorio pero falla en móvil, o viceversa.
Ojo: estos síntomas también pueden aparecer por caché del navegador, transitorios corrompidos en la base de datos, o endpoints de WooCommerce mal configurados. El método de diagnóstico siguiente descarta todas esas causas de a una.
El carrito se vacía solo o no actualiza el mini carrito
Síntomas
Agregás productos, el contador del mini carrito sube, pero al hacer clic en «Ver carrito» la página muestra el carrito vacío. O el mini carrito en el header directamente nunca cambia su número sin recargar la página completa. Para más detalles técnicos, mirá funcionalidad de talles en WooCommerce.
Causa
WooCommerce usa una petición AJAX a /?wc-ajax=get_refreshed_fragments para sincronizar el estado del carrito sin recargar la página. Si un plugin de caché intercepta esa URL y devuelve una versión cacheada (o la bloquea), el carrito nunca recibe la respuesta actualizada.
WP Rocket, por ejemplo, tiene una opción para excluir URLs de caché, pero en algunas versiones no excluye automáticamente esa endpoint de WooCommerce. Según documentación de AyudaWP, este es uno de los casos más reportados en instalaciones con caché agresiva.
Solución paso a paso
- Paso 1: Abrí la configuración de tu plugin de caché y buscá la sección de exclusiones de URL. Agregá estas rutas:
/?wc-ajax=.*
/carrito/
/checkout/
/mi-cuenta/- Paso 2: En la misma sección, excluí estas cookies para que el carrito no se cachee por usuario:
woocommerce_cart_hash
woocommerce_items_in_cart
wp_woocommerce_session_- Paso 3: Limpiá toda la caché del plugin y probá el carrito en una ventana de incógnito (para descartar caché del navegador).
- Paso 4: Si el problema persiste, desactivá temporalmente la opción de diferir JavaScript (defer/async) y verificá si eso lo resuelve. Si sí, el problema está en la carga diferida de wc-cart-fragments.js.
Cómo prevenirlo
Siempre que instales un plugin de caché nuevo, probá el carrito antes de habilitar las opciones avanzadas de minificación y defer de JS. Es más fácil identificar qué opción rompe el carrito si las activás de a una.
Conflicto con Elementor Pro u otros builders
Síntomas
El carrito funciona bien con el theme por defecto pero falla cuando activás el builder. O después de una actualización del builder, el carrito dejó de responder. La consola del navegador (F12 > Console) muestra errores de JavaScript.
Causa
Builders como Elementor Pro cargan su propia versión de algunos scripts de jQuery o sobreescriben funciones globales que WooCommerce espera encontrar intactas. Hay actualizaciones de Elementor Pro que introdujeron este tipo de incompatibilidad con el sistema de fragmentos de WooCommerce (el mecanismo que actualiza el carrito sin recargar).
¿Cómo saber si es el builder? Abrís la consola del navegador con F12, vas a la pestaña Console, y buscás errores del tipo:
Uncaught TypeError: wc_add_to_cart_params is not defined
jQuery is not defined
Cannot read properties of undefined (reading 'cart_hash_key')Cualquiera de esos errores, especialmente relacionados con wc_add_to_cart_params, indica que algún script de WooCommerce no cargó correctamente. En si migraste desde Shopify profundizamos sobre esto.
Solución paso a paso
- Paso 1: Verificá la versión del builder instalado. Si hay una actualización disponible, hacé un backup y actualizá.
- Paso 2: En Elementor > Herramientas > Regenerar archivos CSS y Assets. Limpiá también la caché interna de Elementor.
- Paso 3: Si el builder tiene opciones para «cargar jQuery desde» o «modo de compatibilidad», activá el modo de compatibilidad con WooCommerce si existe.
- Paso 4: Revisá si el builder tiene una opción para excluir páginas del carrito y checkout de su optimización de assets. Elementor Pro, por ejemplo, permite hacerlo desde Elementor > Configuración > Avanzado.
- Paso 5: Si nada de lo anterior funciona, desactivá temporalmente el builder en las páginas de carrito/checkout usando condiciones de display del builder.
Cómo prevenirlo
Antes de actualizar el builder en producción, probá la actualización en un entorno de staging. Si usás hosting WordPress como el de Donweb, muchos planes incluyen staging con un clic, lo que te permite testear actualizaciones sin arriesgar el sitio en vivo.
WPML limita o vacía el carrito al cambiar de idioma
Síntomas
El carrito funciona, pero solo acepta 1 o 2 productos. Al agregar un tercero, el carrito se vacía. O los productos desaparecen al cambiar de idioma en el selector de WPML.
Causa
Según reportes en el foro oficial de WPML, el plugin WooCommerce Multilingual & Multicurrency tiene un comportamiento documentado donde el carrito puede vaciarse al cambiar de idioma si la sesión no se mantiene correctamente entre idiomas. En algunas configuraciones, el límite de 2 productos aparece cuando hay conflicto entre la sesión de WooCommerce y la gestión de idiomas de WPML.
Solución paso a paso
- Paso 1: Verificá que tenés la última versión de WPML y de WooCommerce Multilingual & Multicurrency. WPML lanza actualizaciones frecuentes para compatibilidad con WooCommerce.
- Paso 2: En WPML > WooCommerce Multilingual, verificá la configuración de «Carrito multilingual». La opción «Mantener el carrito al cambiar de idioma» debe estar habilitada si la tenés disponible en tu versión.
- Paso 3: Limpiá los transitorios de WooCommerce desde WooCommerce > Estado del sistema > Herramientas > Borrar datos de caché transitorios.
- Paso 4: Si el problema persiste, abrí un ticket en el soporte de WPML con el reporte de estado de sistema de WooCommerce (WooCommerce > Estado del sistema > «Obtener informe del sistema»).
Cómo prevenirlo
Cuando combinás WPML con WooCommerce, revisar la guía oficial de WooCommerce para testear conflictos antes de cada actualización mayor es una práctica que ahorra horas de debugging.
Método de diagnóstico paso a paso para cualquier conflicto
Este es el método que recomiendan desde la documentación oficial de WooCommerce, y funciona el 95% de las veces para aislar al culpable.
- Paso 1: Abrí una ventana en modo incógnito (esto descarta caché del navegador y cookies de sesión anteriores).
- Paso 2: Desactivá TODOS los plugins excepto WooCommerce. Si tenés WooCommerce Payments u otras extensiones de WooCommerce, desactivá también esas.
- Paso 3: Cambiá temporalmente el theme al theme por defecto de WordPress más reciente (Twenty Twenty-Four o el que tengas disponible).
- Paso 4: Probá agregar productos al carrito y avanzar al checkout.
- Paso 5: Si el carrito funciona, el problema es un plugin o el theme. Si no funciona, el problema puede ser de configuración de WooCommerce, base de datos, o servidor.
- Paso 6: Reactivá el theme original y volvé a probar. Si el problema vuelve, el problema es el theme.
- Paso 7: Si el theme no es el problema, reactivá los plugins de a uno, probando el carrito después de cada activación. Cuando el carrito se rompe, encontraste al culpable.
El proceso completo lleva entre 30 y 45 minutos dependiendo de cuántos plugins tenés. Sí, es tedioso. Pero es el único método que funciona de forma confiable.
Una vez que identificás el plugin conflictivo, buscá actualizaciones del plugin, revisá si tiene opciones de compatibilidad con WooCommerce, o buscá una alternativa. Si el plugin es imprescindible, reportá el conflicto al desarrollador con la información de las versiones de ambos plugins.
Herramientas de debugging para casos que no se resuelven solos
Si el método de desactivación no da resultados claros, hay algunas herramientas que ayudan a profundizar.
Consola del navegador: F12 > Console mientras probás el carrito. Los errores de JavaScript aparecen en rojo. Cualquier error que mencione woocommerce, jquery, cart, o fragments es relevante. Anotalo antes de buscar soluciones. Más contexto en consultar con la comunidad WordPress.
Pestaña Network en DevTools: Filtrá por XHR/Fetch y buscá peticiones a wc-ajax=. Una petición fallida (rojo, status 4xx o 5xx) o una que devuelva HTML en lugar de JSON indica que algo está bloqueando los endpoints AJAX de WooCommerce.
WooCommerce > Estado del sistema > Herramientas: Desde acá podés borrar transitorios y sesiones sin necesidad de acceder a la base de datos directamente. Los transitorios corrompidos son otra causa frecuente de comportamientos raros en el carrito (no tan frecuente como los conflictos de plugins, pero pasa).
Debug log de WordPress: Activá el modo debug en wp-config.php agregando:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );El log se guarda en wp-content/debug.log. Reproducí el problema con el carrito y revisá el log buscando errores de PHP que aparezcan en ese momento.
¿Y qué pasa cuando el log muestra un error de PHP de un plugin específico? Exacto: ya tenés al sospechoso.
Tabla de diagnóstico rápido
| Síntoma | Causa probable | Solución rápida | Dónde verificar |
|---|---|---|---|
| Carrito vacío después de agregar productos | Caché agresiva bloqueando AJAX | Excluir /?wc-ajax=.* del cache | Configuración del plugin de caché |
| Mini carrito no actualiza sin recargar | wc-cart-fragments.js no carga | Desactivar defer/async en ese script | Consola del navegador > errores JS |
| Botón «Agregar al carrito» no responde | Conflicto jQuery con builder o plugin | Desactivar builder y probar | Consola del navegador > wc_add_to_cart_params |
| Carrito se vacía al cambiar de idioma | WPML / WooCommerce Multilingual | Actualizar WPML, verificar config multilingue | WPML > WooCommerce Multilingual |
| Límite de 2 productos en carrito | WPML conflicto con sesión | Limpiar transitorios + actualizar WPML | WooCommerce > Estado > Herramientas |
| Checkout redirige al carrito en loop | Endpoints mal configurados o sesión rota | Verificar WooCommerce > Configuración > Avanzado > Endpoints | Configuración de WooCommerce |
| Funciona en escritorio, falla en móvil | Caché por dispositivo o tema responsive | Probar con theme por defecto en móvil | Opciones de caché por dispositivo |

Cuándo contactar soporte
Si desactivaste todos los plugins, cambiaste al theme por defecto, limpiaste caché y transitorios, y el carrito WooCommerce sigue sin funcionar, el problema ya está fuera del territorio de conflictos de plugins. En ese punto, puede ser: Complementá con páginas de venta en WordPress.
- Un problema de permisos de escritura en la base de datos o en wp-content/uploads.
- Un error de configuración del servidor (mod_rewrite desactivado, PHP version incompatible con WooCommerce).
- Tablas de la base de datos de WooCommerce corruptas o incompletas.
- Un problema con las sesiones PHP (session.save_path mal configurado en el servidor).
Antes de abrir un ticket de soporte, juntá esta información:
- Reporte completo de WooCommerce > Estado del sistema (hay un botón para copiarlo).
- Versiones de WooCommerce, WordPress, PHP, y MySQL/MariaDB.
- Lista de plugins activos con sus versiones.
- Cualquier error de la consola del navegador o del debug.log.
- Descripción exacta del síntoma y cuándo empezó (¿después de alguna actualización?).
Para problemas de WooCommerce: foro oficial en WordPress.org. Para bugs que parecen del core: el issue tracker en GitHub de WooCommerce. Si el problema es con un plugin de terceros, reportalo al desarrollador del plugin con toda la información anterior.
Preguntas Frecuentes
¿Qué causa que el carrito de WooCommerce no funcione?
La causa más frecuente es un plugin de caché que bloquea las peticiones AJAX de WooCommerce, especialmente la URL /?wc-ajax=get_refreshed_fragments. Otras causas comunes incluyen conflictos con builders (Elementor, Divi), plugins de seguridad que bloquean peticiones POST, y transitorios corrompidos en la base de datos.
¿Cómo identifico qué plugin está rompiendo mi carrito?
Desactivá todos los plugins excepto WooCommerce y cambiá al theme por defecto. Si el carrito funciona, reactivá los plugins de a uno probando el carrito después de cada activación. El plugin que rompe el carrito al activarse es el conflictivo. Todo el proceso lleva unos 30 a 45 minutos.
¿Por qué se queda vacío el carrito en WooCommerce?
Puede ser caché: la página del carrito se sirve desde caché y no refleja el estado real de la sesión. También puede ser un problema de cookies (la cookie woocommerce_cart_hash bloqueada o no generada) o un transitorio corrompido. Limpiá la caché del plugin, excluí las páginas de carrito y checkout, y limpiá los transitorios desde WooCommerce > Estado del sistema > Herramientas.
¿Cómo debuggear problemas del carrito WooCommerce paso a paso?
Empezá por la consola del navegador (F12 > Console) buscando errores JavaScript mientras probás el carrito. Luego revisá la pestaña Network filtrando por peticiones XHR a wc-ajax= para ver si alguna falla. Si encontrás errores PHP, activá WP_DEBUG_LOG en wp-config.php y reproducí el problema para ver el detalle completo en wp-content/debug.log.
¿Qué excluir de la caché en WooCommerce para que funcione el carrito?
Excluí las URLs /carrito/, /checkout/, /mi-cuenta/ y el patrón /?wc-ajax=.*. En la sección de cookies, excluí woocommerce_cart_hash, woocommerce_items_in_cart y wp_woocommerce_session_ para que los usuarios con productos en el carrito nunca reciban una versión cacheada.
Conclusión
El 70% de los casos donde el carrito WooCommerce no funciona tienen al plugin de caché como protagonista, específicamente por bloquear los endpoints AJAX que WooCommerce necesita para sincronizar el carrito sin recargar la página. La solución en ese caso es concreta: excluir las URLs y cookies de WooCommerce de la caché.
Si la caché no es el problema, el método de desactivación de plugins (todos fuera excepto WooCommerce, reactivar de a uno) identifica al culpable en prácticamente todos los demás casos. No es el método más elegante, pero es el que funciona.
Si después de todo eso el carrito sigue roto con todos los plugins desactivados y el theme por defecto, ya estamos hablando de un problema a nivel servidor o base de datos, y ahí corresponde abrir un ticket con el reporte completo de WooCommerce > Estado del sistema.
Fuentes
- WooCommerce Docs — Cómo testear conflictos de plugins (documentación oficial)
- EnriqueJros.com — Carrito vacío: causas y soluciones en WooCommerce
- AyudaWP — Mini carrito no se actualiza en WooCommerce
- WPML Foros — Problema con WooCommerce Multilingual & Multicurrency
- JavierCallejo.net — Problemas comunes en WooCommerce y sus soluciones

![Expandir con: ["Cifras finales de asistencia y comparativa con ediciones anteriores", "Principales anuncios y novedades del evento"] - ilustracion](https://wordpress.donweb.com/wp-content/uploads/2026/04/wordcamp-asia-2026-resultados-mumbai-hero.png)


