Formulario de contacto mejorado: configuración y ayuda
Inicio rápido
- Sube el ZIP del módulo en "Modules > Module Manager" y abre "Configure".
- Edita "Default Contact Form" en Formulario de contacto > Formularios, incluidos Título del formulario y Correo del administrador.
- Comprueba Enviar correo al administrador, Enviar confirmación al cliente y Casilla RGPD en el formulario.
- Revisa los campos activos en Campos, conservando un campo de tipo email para las confirmaciones.
- Configura Información de la empresa, Ubicación y horario y Protección contra spam.
- Activa Reemplazar la página de contacto nativa si quieres que la URL de contacto normal use este formulario.
- Envía una prueba después de Tiempo mín. de envío y comprueba Envíos y ambos destinos de correo.
Requiere PrestaShop 1.6.1 o posterior y PHP 7.1 o posterior.
Manual de configuración
Instalar y preparar tu primer formulario
- Sube el ZIP de Better Contact Form en "Modules > Module Manager" y abre "Configure".
- Abre Formulario de contacto > Formularios y edita "Default Contact Form".
- Revisa Título del formulario, Descripción, Correo del administrador, Mensaje de confirmación y Etiqueta RGPD en cada idioma.
- Abre Campos y comprueba los campos instalados de nombre, email, teléfono, asunto y mensaje.
- Configura la página de contacto y los ajustes de correo descritos a continuación.
- Envía un mensaje de prueba. Confirma que aparece en Envíos y comprueba ambas bandejas de notificación.
Requiere PrestaShop 1.6.1 o posterior y PHP 7.1 o posterior.
El menú del módulo contiene Panel de control, Formularios, Campos, Envíos y Configuración. "Configure" abre la pantalla de configuración bajo Configuración.
Configurar la página de contacto
Configuración
| Ajuste | Valor predeterminado | Qué hace |
|---|---|---|
| Reemplazar la página de contacto nativa | No | Dirige la URL de contacto normal, incluidas las reescrituras de contacto por idioma, a la página del módulo. Actívalo después de probar el formulario. |
| Activar marcado Schema.org | Sí | Añade datos LocalBusiness a la página de contacto principal del módulo y datos FAQPage cuando hay contenido FAQ. |
Sin sustitución, puedes abrir el controlador frontal display del módulo mediante un enlace de módulo generado por PrestaShop. La gestión SEO propia del módulo trata las páginas id_form específicas como variantes noindex, follow. Una autoridad SEO central de páginas puede controlar los metadatos finales.
Información de la empresa
| Ajuste | Valor predeterminado | Qué hacer |
|---|---|---|
| Mostrar tarjetas de información comercial | Sí | Muestra tarjetas de dirección, teléfono y email de la tienda desde los ajustes de PrestaShop. |
| Número de WhatsApp | Vacío | Introduce un número internacional con código de país, por ejemplo +48511511286. Déjalo vacío para omitirlo. |
| Mostrar enlaces sociales | Sí | Muestra los enlaces de perfiles sociales guardados. |
| Mostrar sección de preguntas frecuentes | Sí | Muestra las preguntas y respuestas guardadas. |
"Social Links" y "FAQ Items" son valores JSON almacenados, no campos editables del formulario de configuración actual. Los enlaces sociales son una lista vacía por defecto. El contenido FAQ incluye inicialmente tres preguntas genéricas sobre tiempo de respuesta, atención telefónica y visitas a la oficina. Revisa ese contenido antes de activar la sección para clientes. Puede no describir tu negocio.
Ubicación y horario
| Ajuste | Valor predeterminado | Qué hacer |
|---|---|---|
| Mostrar mapa | Sí | Activa el bloque de mapa. Ambas coordenadas deben estar también rellenadas. |
| Latitud del mapa | Vacío | Introduce la latitud del marcador. |
| Longitud del mapa | Vacío | Introduce la longitud del marcador. |
| Nivel de zoom del mapa | 15 | Ajusta el zoom de OpenStreetMap. El formulario sugiere de 1 a 18. |
| Mostrar horario de apertura | Sí | Muestra el horario semanal guardado y el cálculo actual de abierto/cerrado. |
| Zona horaria | PrestaShop PS_TIMEZONE |
Introduce un identificador de zona horaria PHP válido si tu horario comercial usa otra zona. No está fijado en Europe/Warsaw. |
El JSON guardado opening_hours define por defecto de lunes a viernes de 09:00 a 17:00, con sábado y domingo cerrados. El formulario actual no tiene editor de horarios. Un desarrollador puede actualizar la estructura guardada con las claves mon, tue, wed, thu, fri, sat, sun; cada una tiene cadenas open y close. Los valores vacíos significan cerrado. Comprueba el horario mostrado y la zona horaria antes de publicarlos.
Ajustes de correo y spam
Correo electrónico
| Ajuste | Valor predeterminado | Uso en ejecución |
|---|---|---|
| Enviar notificación al administrador | Sí | Alternativa global cuando un formulario no proporciona su propio interruptor. |
| Dirección de e-mail admin | Email de la tienda | Destinatario alternativo cuando Correo del administrador del formulario está vacío. Separa varias direcciones con comas. |
| Enviar confirmación al cliente | Sí | Alternativa global cuando un formulario no proporciona su propio interruptor. Requiere un email de cliente enviado. |
El formulario instalado tiene sus propios interruptores de correo. Cámbialos en Formularios para detener los correos de ese formulario. El interruptor global no es un control maestro que sustituya los ajustes por formulario ya rellenados.
Protección contra spam
| Ajuste | Valor predeterminado | Uso en ejecución |
|---|---|---|
| Activar protección Honeypot | Sí | Preferencia global guardada. El ajuste Activar honeypot de cada formulario controla su protección. |
| Activar verificación basada en tiempo | Sí | Preferencia global guardada. El ajuste Activar la comprobación del tiempo transcurrido de cada formulario controla su comprobación del tiempo. |
| Tiempo mínimo de envío (segundos) | 3 | Preferencia global guardada. Cada formulario usa su propio valor Tiempo mín. de envío. |
| Envíos máx. por IP/hora | 10 | Marca un nuevo mensaje cuando esa IP ya tiene esa cantidad de envíos en la última hora. Pon 0 para desactivar. |
| Palabras bloqueadas | Vacío | Introduce un fragmento de texto por línea sin distinguir mayúsculas y minúsculas. Las coincidencias en los valores enviados marcan spam. |
| Direcciones IP bloqueadas | Vacío | Introduce una IP exacta por línea. Los envíos coincidentes se marcan como spam. |
El honeypot oculto es website_url_confirm. La comprobación temporal usa la marca de tiempo de renderizado enviada y también marca las ausentes o no válidas. Estos controles no muestran un CAPTCHA.
Los mensajes de spam se guardan con un motivo, pero sin notificaciones por correo. El visitante recibe el mensaje de confirmación habitual. Es un marcado, no una prohibición de visitar la tienda.
Crear y editar formularios
Abre Formularios y añade o edita una fila. El formulario instalado se llama internamente "Default Contact Form". Su Título del formulario en inglés es "Contact us", y su descripción es "Send us a message and we will get back to you as soon as possible." Los campos de texto nuevos necesitan tu propia redacción.
| Campo | Valor del formulario instalado | Qué hacer |
|---|---|---|
| Nombre interno | "Default Contact Form" | Define una etiqueta organizativa privada. |
| Título del formulario | "Contact us" | Define el encabezado multilingüe de la tienda. |
| Descripción | Descripción de contacto instalada | Define la introducción multilingüe. |
| Mensaje de confirmación | ¡Gracias por tu mensaje! Hemos recibido tu consulta y responderemos en breve. | Define la confirmación multilingüe mostrada después de guardar. |
| Enviar correo al administrador | Sí | Activa la notificación para este formulario. |
| Correo del administrador | Vacío | Sustituye el destinatario global o deja vacío para la alternativa. Separa las direcciones con comas. |
| Asunto del correo | Nuevo envío del formulario de contacto | Define el asunto multilingüe para el administrador. El sistema de correo añade el nombre de la tienda. |
| Enviar confirmación al cliente | Sí | Activa el acuse de recibo a la dirección de email enviada. |
| Activar honeypot | Sí | Comprueba el campo oculto para bots de este formulario. |
| Activar la comprobación del tiempo transcurrido | Sí | Comprueba el tiempo transcurrido para este formulario. |
| Tiempo mín. de envío | 3 segundos | Cambia el tiempo mínimo del formulario. |
| Casilla RGPD | Sí | Exige la casilla de consentimiento antes de guardar. |
| Etiqueta RGPD | Acepto el tratamiento de mis datos personales conforme a la política de privacidad. | Define el texto multilingüe de consentimiento. |
| Activo | Sí | Desactívalo para detener la visualización y el envío del formulario. |
Añadir y ordenar campos
Abre Campos y selecciona el Formulario deseado. Los campos nuevos tienen por defecto tipo Texto, no son obligatorios, están activos, con Posición 0 y valores de texto y validación vacíos.
| Campo | Qué hacer |
|---|---|
| Formulario | Asigna el campo a su formulario. |
| Etiqueta | Define una etiqueta visible multilingüe. |
| Nombre del campo | Define una clave enviada como company_name, order_number, website o vat_number. El nombre POST pasa a ser mpr_cf_FIELD_NAME. |
| Tipo de campo | Elige text, email, phone, textarea, select, checkbox, url, number o file. |
| Texto de ejemplo | Define indicaciones de entrada multilingües. |
| Descripción | Define ayuda multilingüe bajo el campo. |
| Obligatorio | Exige un valor enviado. |
| Regla de validación | Opcionalmente indica un método Validate existente de PrestaShop, como isName, isEmail, isPhoneNumber o isMessage. |
| Opciones | Introduce un valor permitido de Selección / desplegable por línea. |
| Posición | Define el orden de los campos. |
| Activo | Oculta o muestra este campo. |
Para un desplegable de temas, introduce una línea para Consulta sobre pedido, Solicitud de devolución, Asesoramiento de producto, Cuenta de empresa y Otro. Los campos de email, teléfono, URL, número y selección también reciben comprobaciones específicas de su tipo.
Conserva un campo de tipo email si quieres confirmaciones para clientes. Usa name o full_name como clave del nombre para copiarlo a la columna de nombre de cliente del envío.
Subida de archivo muestra un campo de archivo, pero los archivos subidos no se guardan. No lo uses para recoger adjuntos. Los campos de archivo obligatorios pueden rechazarse por estar vacíos.
Insertar y dar estilo a un formulario
Usa una plantilla Smarty de tema o módulo que ejecute hooks. Pegar Smarty en HTML normal de CMS no hace que PrestaShop lo ejecute.
{hook h='displayMprContactForm'}
{hook h='displayMprContactForm' id_form=2}
La primera llamada usa el formulario activo predeterminado. La segunda selecciona un formulario por ID.
En Estilos del tema, revisa la paleta detectada, texto, fondos, bordes, colores de éxito/error, color de foco y radios. Los ajustes privados incluyen "Form spacing" (20px), "Card shadow" (0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04)), "Raised card shadow" (0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.05)) y "WhatsApp color" (#25D366).
Para cambiar el marcado, sobrescribe estas plantillas del módulo en tu tema:
themes/your-theme/modules/mprcontactform/views/templates/front/contact_form.tpl
themes/your-theme/modules/mprcontactform/views/templates/front/contact_page.tpl
Usa .mpr-contactform .mpr-cf-title, .mpr-contactform .mpr-cf-btn y .mpr-contact-page .mpr-cp-card--whatsapp para estilos propios del tema.
Un desarrollador que actualice los enlaces sociales guardados puede usar un objeto JSON con claves facebook, instagram, x, linkedin, youtube, tiktok, pinterest o whatsapp, con una URL de perfil como cada valor. Esto no crea un campo adicional en el back office.
Las plantillas de correo bajo views/templates/mails/ reciben {form_title}, {customer_name}, {customer_email}, {field_data}, {submission_date}, {ip_address}, {shop_name} y {shop_url}.
Verificar envíos y resolver problemas
Envía un mensaje normal después de esperar más que el tiempo mínimo del formulario. Comprueba en Envíos formulario, nombre, email, IP, estado, indicador de spam, fecha y valores de campos. Usa el detalle de fila para leer los valores. Las acciones masivas permiten marcar mensajes como leídos, como spam o eliminarlos.
Si falta un correo, comprueba primero el envío guardado: su motivo de spam, después los interruptores de correo por formulario, los destinatarios y la entrega de correo de PrestaShop. Un envío guardado indica que el formulario funcionó; el correo puede no llegar de todos modos.
Si falta un formulario, comprueba su estado Activo, campos activos e ID seleccionado. Si falla la sustitución de ruta, comprueba Reemplazar la página de contacto nativa y la reescritura de la URL de contacto de la tienda. Si faltan el mapa o los enlaces sociales, comprueba sus interruptores y coordenadas o enlaces guardados.
Desinstalar
Haz una copia de las definiciones de formularios y los envíos antes de desinstalar. La desinstalación elimina el esquema del módulo, incluidos formularios, campos y envíos, junto con la configuración y entradas administrativas. También elimina su registro en Theme Detector. Usa Activo por formulario o desactiva el módulo para pausarlo conservando los registros.
Preguntas
Aún no hay preguntas sobre este módulo
Pregunta lo que quieras sobre instalación, compatibilidad o configuración. Las respuestas aparecen aquí.
Problemas conocidos
13
Refuerzo de la seguridad
La página de contacto nativa mostraba dos formularios
No se entregaban los correos de notificación
Las respuestas a confirmaciones no llegaban a la tienda
Las etiquetas de administración seguían en inglés
Los horarios predeterminados usaban una zona horaria incorrecta
Las páginas de contacto podían fallar con distinto soporte del tema
Recursos ausentes del formulario de contacto
El CSS combinado alteraba los estilos del formulario de contacto
Estilos ausentes en el formulario de contacto nativo
Estilos ausentes en el formulario independiente
Enlaces de idioma incorrectos en la página de contacto
El título de la página de contacto omitía el nombre de la tienda
Solicitudes de funcionalidades
7
Implementado
Formulario de contacto predeterminado traducido
Formularios de contacto personalizados
Controles antispam integrados
Aspecto de formularios adaptado al tema
Actualizaciones con un clic
Alternativas de idioma de la página de contacto
Cloudflare Turnstile
Registro de cambios
v1.4.82026-09-06
- FixedContact form stylesheet now loads on the native PrestaShop contact page (registered via actionFrontControllerSetMedia with a PS 1.6 link fallback)
Versiones anteriores
v1.4.72026-08-10
- FixedFront-office form styling on the standalone contact page
v1.4.62026-05-27
- AddedLocalize default contact forms
- AddedUse shared theme style tokens
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedVendor prestashop compat as files
- FixedSuppress contact schema on noindex form variants
- FixedCapture contact user agent safely
- FixedUse local CSS path for CCC bundling compatibility
v1.4.62026-05-26
- Fixeddemo installation by refreshing shared package wiring and autoload registration.
- Addedlazy post-install integrity runner so first-visit install checks fire consistently.
- Cleaned the customer ZIP packaging for current shared admin, integrity, update, selector, and search assets.
v1.3.02026-04-20
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedautomatic theme detection for Classic and Hummingbird style compatibility
- Addedadmin menu management via MenuInstaller for streamlined module setup
- AddedLicense management tab with key management and renewal options
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedadmin list columns with visual badge indicators and multiselect filters
- Improvedsettings form organization with tabbed layout
- ImprovedSEO handling with proper canonical URLs and meta tags on all front pages
- FixedAdd canonical route name for getModuleLink resolution
- FixedAppend shop name to contact page meta title
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.2.02026-02-13
- AddedPrestaShop 9 and Hummingbird theme compatibility
- Addedfile attachment support with configurable allowed file types and maximum upload size
- Improvedform-specific recipient email and customer confirmation settings
- Fixedhoneypot field interfering with PS native form validation on older jQuery builds
- Addedminimum submit-time anti-bot checks as companion protection to honeypot fields
v1.0.02025-12-04
- Initialrelease of Better Contact Form
- InitialCustom field builder: add text, textarea and select fields via the back office interface
- InitialHoneypot anti-bot protection with no CAPTCHA friction for legitimate users
- InitialForm-specific recipient email address for admin notifications
- InitialInquiry log in back office with full submission history and CSV export
v1.1.02025-09-16
- Addedcustom field types: email, phone, URL, number, checkbox, file upload, textarea and select
- Addedconfigurable success messages and customer confirmation emails per form
- Improvedback office submission tracking and filtering
- Fixedsubmitted form data not saved to inquiry log when email delivery fails
Demo
Prueba el módulo completo antes de comprar
Compra la licencia más tarde y conserva tus ajustes.
- Tu demo de 30 días Pruébalo en tu propia tienda durante 30 días desde la primera instalación.
- Tienda demo lista Explora una tienda demo lista en tu navegador.
- Sin registro Sin cuenta, correo ni dominio de tienda.
Al descargar, aceptas las condiciones de la demo y la política de privacidad.
Al abrir esta demo, acepta los términos de la demo y la política de privacidad.