Desactivar el formulario de contacto en Prestashop

Este documento es para Prestashop 1.6

Si queremos desactivar el formulario de contacto, tenemos distintas posibilidades.

Fuente: https://stackoverflow.com/questions/38916902/prestashop-disable-contact-form

  • 1º – Crear un módulo para cuando accedemos al formulario de contacto redireccione a la página 404 de nuestra tienda o a otra sección distinta de la tienda.
    Código módulo

    El módulo queda instalado en el hook -> actionDispatcher

    Dentro de la función del hook -> actionDispatcher que definimos en el módulo comprobamos si el controlador es correspondiente al del formulario de contacto, si la condición es cumplida redireccionamos la página del formulario de contacto. En este ejemplo nos lleva a la página 404.

    Descargar módulo aquí:  Descargar

  • 2º – Crear un override del controlador /controllers/front/ContactController.php, recordamos que el override se guarda en el directorio: /override/controllers/front/
    Nombre del Override: ContactController.php

    Override del controlador del formulario de contacto

    Fijaros que en el condicional, lo que hace cuando pulsamos el botón enviar del formulario de contacto es pararlo todo y en caso contrario llamamos a la función postProcess de la clase padre.

    Eliminar fichero: /cache/class_index.php para que Prestashop nos detecte el nuevo override.

    Se ha detenido la acción de pulsar el botón “Enviar” del formulario de contacto, pero el formulario sigue visualizándose, lo que puede conllevar una confusión a los clientes que visiten tu tienda.

    El siguiente paso es editar el fichero: /themes/default-bootstrap/contact-form.tpl comentando la visualización del formulario de contacto.

    Por ejemplo, puedes comentar el contenido (comentar código en Smarty) después (a partir) de la siguiente línea:
    {capture name=path}{l s=’Contact’}{/capture}

    De esta forma veremos el formulario de contacto, pero sin contenido:

    Formulario de contacto sin contenido en Prestashop

    Y luego personalizar el TPL a vuestro gusto añadiendo una nueva estructura.

    Si tras modificar el TPL no apreciamos los cambios, recordar limpiar la cache de Prestashop en la pestaña Parámetros Avanzados -> Rendimiento.

    Descargar el override del controlador: Descargar
    Descargar fichero TPL modificadoDescargar

PosData: Se han indicado “2” posibilidades a la hora de intentar desactivar el formulario de contacto, existen más opciones y se puede hacer de diferente forma.

Documento construido bajo Prestashop 1.6.1.18 bajo la plantilla por defecto.

DOC – Añadir campos al formulario de contacto en Prestashop 1.7

Campo nuevo del formulario de contacto

Dejo un pequeño documento, donde comento brevemente los ficheros y tablas de la base de datos para posibilitar el que podamos añadir campos nuevos en el formulario de contacto, poder enviarlos por emails y almacenarlos también en la base de datos para luego poder verlos en el panel de administración.

No es una guía propiamente y es una nueva modalidad de artículos donde depende explicar cómo hacerlo, os comento que ficheros debéis modificar con un breve comentario. De esta manera os dejo a vosotros investigar dentro del universo de Prestashop.

¿Preparado para añadir campos en el formulario de contacto de Prestashop 1.7? (Pincha en la siguiente imagen)

Añadir campos en el formulario de contacto de Prestashop 1.7
Añadir campos en el formulario de contacto de Prestashop 1.7

 

Formulario de contacto en los contenidos en Prestashop 1.7

Gracias al nuevo sistema de widget que nos ofrece Prestashop 1.7, podemos mostrar el formulario de contacto que trae por defecto Prestashop 1.7 en las páginas de contenidos que tengamos en la pestaña Diseño -> Páginas 

La instrucción clave es la siguiente:

{widget name="contactform"}

Si queremos mostrar el formulario de contacto en las páginas de contenidos, editamos el fichero:

/themes/classic/templates/cms/page.tpl

Y añadimos la instrucción del widget, por ejemplo debajo de:

{$cms.content nofilter}

De esta manera se mostrara debajo de los contenidos.  ($cms.content imprime el contenido (campo contenido/descripción) de las páginas que hemos metido en la pestaña Diseño -> Páginas en los CMS)

En definitiva, lo dejaríamos así:

{$cms.content nofilter}
{widget name="contactform"}

¿Cómo podemos limitarlo para que solo se muestre en una de las páginas de contenidos y no en todas?

Tenemos varias opciones, una de ellas es hacer una comparación el ID del CMS donde estamos situados.

Dejándolo el código del widget así:

{if $cms.id == "X" }

{widget name="contactform"}

{/if}

En X, colocamos el ID del CMS (Contenido) que hemos creado en la pestaña Diseño -> Páginas.

ID CMS

En nuestro ejemplo, vamos a colocar el ID 3, dejándolo así:

{if $cms.id == "3" }

{widget name="contactform"}

{/if}
Widget formulario de contacto en Prestashop 1.7

Documento construido bajo Prestashop 1.7.1.2

Por último y no menos importante, recordar limpiar la cache en la pestaña Parámetros Avanzados -> Rendimiento

Borrar cache Prestashop 1.7

Y ahora dejo una pregunta abierta, ¿Podremos hacer esto en futuras variantes de PrestaShop 1.7, sin necesidad de tocar código?

Guía – Administrar contactos del formulario de contacto en Prestashop

Por defecto, cuando accedemos al formulario de contacto, nos aparece un desplegable que dice Tema (independientemente de las otras opciones que aparecen), y dentro del desplegable aparecen dos opciones:

Service client y Webmaster, que en realidad son dos opciones que están definidas en el panel de administración, en las cuales podemos definir un email destinatario dependiendo de la opción que vayamos a seleccionar.

La realidad es que no está limitado a dos opciones, podríamos incluir destinatarios adicionales.

Formulario contacto
Formulario contacto

Para administrar las opciones (contactos) que nos aparecen en “Tema“, debemos ir a la pestaña Clientes -> Contacto del panel de administración.

Gestionar contactos
Gestionar contactos

Continúa leyendo Guía – Administrar contactos del formulario de contacto en Prestashop