WooCommerce / Errores
Errores de WooCommerce: PHP, JavaScript, base de datos y conflictos
Un mensaje de error es la pista más útil que da una tienda rota, si encuentras el de verdad. El mensaje que ven los clientes suele ser genérico; el error preciso, con archivo y línea, está en un registro.
Respuesta corta
Encuentra primero el error exacto. Los errores PHP están en WooCommerce → Estado → Registros (fatal-errors), en el log de errores de PHP o en wp-content/debug.log. Los errores de JavaScript están en la consola del navegador. Lee la ruta del archivo del error: te dice si la causa es un plugin, el tema, código a medida o el propio WooCommerce, y la hora te dice qué cambio lo provocó.
Recursos técnicos
Guías sobre errores
- WooCommerce / Errores Conflicto de plugins en WooCommerce: cómo encontrar la causa Parte de las evidencias (el error, el momento, la petición) y aísla en staging por mitades, no plugin a plugin en producción.
- WooCommerce / Errores Error fatal en WooCommerce: guía práctica para resolverlo Lee bien el error fatal (archivo, línea, traza) y relaciónalo con el cambio que lo provocó.
Problemas concretos
Tipos de error
Error fatal de PHP
«Ha habido un error crítico en esta web» y pantallas en blanco.
Errores de JavaScript
Botones que no funcionan, checkout que no hace nada, carrito que no se actualiza.
Errores AJAX
Peticiones a admin-ajax.php o ?wc-ajax= que fallan con 400, 403 o 500.
Conflictos de plugins
Dos extensiones, o una extensión y código a medida, compitiendo por el mismo flujo.
Conflictos con el tema
Plantillas sobrescritas desactualizadas, hooks eliminados, JavaScript del tema.
Errores de base de datos
Errores de conexión, tablas que faltan, bloqueos, consultas fallidas.
Errores de la REST API
Respuestas 401, 403 y 500 de los endpoints /wp-json/wc/.
Lee bien el error
Un error fatal de PHP contiene todo lo necesario para empezar: el tipo de error, el mensaje, el archivo y la línea y, normalmente, una traza. La ruta del archivo te dice dónde: wp-content/plugins/<plugin>/…, el tema, un mu-plugin o WooCommerce. La traza te dice cómo se llegó ahí, a menudo un hook de WooCommerce que llama a código a medida. La hora te dice cuándo, y puedes relacionarla con una actualización, un cambio de versión de PHP o un despliegue.
PHP Fatal error: Uncaught TypeError: Unsupported operand types: string + float
in /wp-content/plugins/custom-fees/custom-fees.php:142
Stack trace:
#0 /wp-includes/class-wp-hook.php(324): add_custom_fee(Object(WC_Cart))
#1 /wp-includes/plugin.php(205): WP_Hook->apply_filters(...)En este ejemplo, el código de la línea 142 de un plugin a medida recibe un texto donde espera un número, durante el cálculo de los cargos del carrito. Eso apunta a un cambio reciente en lo que se le pasa a esa función, no al propio WooCommerce.
Dónde se registra cada tipo de error
| Error | Dónde encontrarlo |
|---|---|
| Errores fatales de PHP | WooCommerce → Estado → Registros (fatal-errors), log de errores PHP |
| Avisos y notices de PHP | wp-content/debug.log con WP_DEBUG_LOG activado |
| Errores de JavaScript | Consola del navegador |
| Errores AJAX y de la REST API | Panel de red del navegador: código de estado y cuerpo de la respuesta |
| Errores de base de datos | Log de errores PHP, debug.log, log de errores de MySQL en el servidor |
Preguntas frecuentes
¿Dónde están los registros de errores de WooCommerce?
En WooCommerce → Estado → Registros. Los errores fatales se registran con el origen fatal-errors. Los errores PHP también van al log de errores PHP del servidor, y a wp-content/debug.log cuando el registro de depuración de WordPress está activo.
¿Es seguro activar WP_DEBUG en una tienda en producción?
Activa el registro, no la visualización: pon WP_DEBUG y WP_DEBUG_LOG a true y WP_DEBUG_DISPLAY a false, para que los errores se escriban en el registro y nunca se muestren a los clientes. Desactívalo al terminar y mantén el registro fuera del acceso público.
¿Cómo sé qué plugin causa un conflicto?
Empieza por la ruta del archivo del error y por el momento de los cambios recientes. Si no hay error, reproduce el problema en una copia de staging y aíslalo desactivando plugins por mitades allí, nunca en producción en horario comercial.
$ describe el problema
¿Tienes un problema con WooCommerce?Solicita un diagnóstico.
Cuéntanos qué falla, qué ha cambiado últimamente y cómo afecta al negocio. Revisamos cada solicitud y te recomendamos el siguiente paso.
Nunca envíes contraseñas, claves API ni datos de tarjetas a través del formulario.