Solucionar problemas

Error "An error occurred while sending the message" en el formulario de contacto de PrestaShop

Revisado el 3 min de lectura formularios errores prestashop

El mensaje An error occurred while sending the message, please try again. indica que el módulo contactform ha rechazado el envío, pero no identifica por sí solo la causa. En las versiones actuales puede aparecer si el campo trampa url contiene datos, falta el token, no coincide con la sesión o ha caducado.

Abre una copia nueva del formulario y repite una sola prueba mientras revisas la petición en Red / Network de las herramientas del navegador. Comprueba si se envían url y token, y anota la versión de PrestaShop, del módulo contactform y del tema. En versiones del módulo que establecen una caducidad de 600 segundos, por lo que una pestaña abierta durante más tiempo también puede fallar.

Si la petición no contiene esos campos, compara la plantilla del módulo con el override activo del tema:

/themes/Nombre_Tema/modules/contactform/views/templates/widget/contactform.tpl

La solución preferente es actualizar el tema o pedir al desarrollador un override compatible con la versión instalada de contactform. Solo si has confirmado que el override es antiguo y faltan los campos, incorpora el bloque equivalente al de la plantilla oficial antes del botón de envío:

<style>
  input[name=url] {
    display: none !important;
  }
</style>
<input type="text" name="url" value="" />
<input type="hidden" name="token" value="{$token|escape:'htmlall':'UTF-8'}" />

Vacía la caché de PrestaShop y repite el envío con una página recién cargada. Si los campos ya estaban presentes, no modifiques la plantilla: revisa la respuesta exacta, las cookies y los registros de la aplicación antes de atribuir el fallo al tema.

Consulta la plantilla oficial del módulo contactform correspondiente a la versión instalada.

Caché, sesión y entrega

Comprueba que una caché de página o CDN no esté reutilizando el formulario con el token de otra sesión o uno caducado. Prueba desde una página recién cargada y conserva las cookies durante el envío; no elimines la validación del token ni el campo trampa para forzar la aceptación.

El bloque mostrado solo sirve si esa versión del módulo proporciona la variable token a la plantilla. Compara con la etiqueta de versión instalada, no únicamente con la rama dev del repositorio. Después de aceptar el formulario, comprueba también el destino del mensaje: superar la validación no garantiza que el SMTP lo entregue.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.