Es posible que un cliente te haya indicado que tu formulario de contacto no funciona y le da un error. Si este es tu caso y el formulario no envía correos en Prestashop, aquí tienes la solución. Es rápida y sencilla. Sigue leyendo…
El formulario no envía correos en Prestashop
Hay múltiples y variadas causas por las que el formulario de contacto no envía los mensajes. Una de ellas podría ser que el servicio de envío de correos electrónicos estuviera mal configurado (vía smtp, por ejemplo, o vía mail() de php). Pero en ambos casos, afectaría al resto de envío de mensajería (pedidos, avisos a clientes, notificaciones de bajo stock, etc). Este tema lo comentaremos más adelante. Si el problema atañe sólo a los mensajes enviados desde el formulario de contacto, entonces no está relacionado ni con el smtp ni mail(). Se trata exclusivamente de una variación de código en un fichero concreto, que vamos a tratar a continuación.
Si tu formulario no le envía el correo al cliente, tampoco te envía a ti el correo de la consulta, pero en el backoffice sí que aparece un mensaje recibido, entonces tu problema está en la forma en que tu tienda está enviando los correos.
Debes configurar el envío por SMTP en lugar de mail de php().
Asegúrate de contactar con tu proveedor de hosting o de nombre de dominio, donde te indicarán los datos del servidor de correo. Luego envía un correo de prueba desde la utilidad del propio prestashop, para comprobar que el envío funciona correctamente, y si es así, ya lo tienes en marcha.
Si tu caso es que el formulario da error cuando tu cliente intenta enviar el mensaje, entonces el problema no es de cómo se envían los mensajes sino de que el formulario tiene un error. Aquí te explico la solución.
Solución para Prestashop 1.6
Si trabajas con 1.6, y utilizando una aplicación tipo Filezilla o similar, localiza el siguiente fichero (y haz antes de nada una copia de seguridad del mismo): themes/tu-tema/contact-form.tpl Busca las siguiente línea, que es la que se encarga de abrir el campo de de entrada de datos del formulario:
<div class="submit"></>
Justo después de ella, añade el siguiente código:
<input type="text" name="url" value="" class="hidden"/> <input type="hidden" name="contactKey" value="{$contactKey}" />
Guarda los cambios, vacía la caché de prestashop, refresca la pantalla del formulario y verás que ahora puedes enviar mensajes sin que aparezca el error. Espero haberte ayudado! Mucha suerte y mucho ecommerce 🙂
Solución para Prestashop 1.7
Edita el fichero /themes/classic/modules/contactform/views/templates/widget/contactform.tpl. Localiza el final del formulario de contacto, algo así:
<input class="btn btn-primary" type="submit" name="submitMessage" value="{l s='Send' d='Shop.Theme.Actions'}"> </footer>
Y justo encima, añade el siguiente código:
<style> input[name=url] { display: none !important; } </style> <input type="text" name="url" value=""/> <input type="hidden" name="token" value="{$token}" />