You are on page 1of 2

PRESTASHOP, AADIR NUEVO CAMPO AL FORMULARIO DE CONTACTO

Publicado por David Otero el 6 febrero, 2014 | 2 Responses

En este tutorial vamos a explicar como aadir nuevos campos en el formulario de contacto de una tienda Prestashop. Para ello vamos a tener que modificar tres ficheros en el servidor:

1. 2. 3.

Plantilla del formulario que se mostrar en la pgina Controlador del servidor que recibe la peticin desde el formulario y se encarga de realizar el envo del correo Plantilla del correo que se enviar al cliente y al administrador

Durante el tutorial vamos a seguir un ejemplo que ser aadir un nuevo campo para que el cliente introduzca su ciudad.

AADIR NUEVO CAMPO EN EL FORMULARIO


Para empezar vamos a aadir un nuevo input en nuestro formulario de contacto. Para esto hay que editar el fichero ~/theme/default/contact-form.tpl, en caso de tener activado el tema por defecto, o sion el mismo fichero dentro de la carpeta del tema que est activo. Deberemos aadir las siguientes lneas para que aparezca el nuevo campo:
1 <p class="text"> <label for="provincia"> </label> 2 <input type="text" id="provincia" name="provincia" value="" /> 3 4 </p>

Provincia

Este campo tendremos que aadir en el lugar del formulario que consideremos oportuno. El siguiente paso ser editar el controlador para que recoja el valor introducido.

MODIFICAR CONTROLADOR CONTACTCONTROLLER


En el controlador deberemos recuperar el valor introducido por el usuario en el formulario y aadirlo en la lista de parmetros que se van a enviar en el correo final. Para ello debemos editar el fichero ~/Controllers/front/ContactController.php en dos pasos:

1.

Recuperar el valor introducido. En este caso lo hemos llamado provincia:

1 $provincia

Tools::getValue('provincia');

2.

Aadir el nuevo valor a los parmetros con el que se rellenar el correo. Esto se har aadiendo un nuevo campo en el array mail_var_list con el valor que hemos recogido en el punto anterior:
1 $mail_var_list = array( '{provincia}' => $provincia, 2 '{email}' => $from, 3 4 5 6 '{message}' => ::nl2br(stripslashes($message)), '{id_order}' => $id_order, '{order_name}' => $order->getUniqReference(), => isset($_FILES['fileUpload'], $_FILES['fileUpload']['name'])

Tools

'{attached_file}' 7 8 );

$_FILES['fileUpload']['name']

''

EDITAR PLANTILLA DEL CORREO QUE SE ENVA AL USUARIO


El ltimo paso ser editar la plantilla del correo que se el enva finalmente al usuario para que le aparezca la informacin del nuevo campo.

Para esto hay que editar el fichero de la plantilla del correo contact.html y tambin el fichero contact.txt p ara cada uno de los idiomas que tengamos configurados en la tienda. Estos ficheros los podemos encontrar en la carpeta ~/mails/. En esta carpeta existir una carpeta por cada uno de los idiomas que estn isntalados. Debemos escoger los idiomas con lo que trabajamos y editar los ficheros indicados para cada uno. En este ejemplo vamos a aadrselo a la plantilla en castellano.

Por tanto vamos a editar primero el fichero ~/mails/es/contact_form.html aadiendo estas lneas en el lugar de la tabla donde queramos que aparezca la informacin:
1 <tr> 2 3 </tr> <td align="left">

Provincia: {provincia}</td>

El ltimo paso ser editar la plantilla de correo en texto plano ~/mails/es/contact_form.txt aadiendo la siguiente lnea:

Provincia: {provincia}

Con estas dos modificaciones ya aparecer el nuevo campo en el correo que le llega al cliente tras rellenar el formulario de contacto.

PLANTILLAS CORREO ENVIADO AL ADMINISTRADOR


Cuando un cliente rellena un formulario de contacto la informacin le llegar al admistrador en un correo y al cliente en otro. Estos correos son diferentes. El que le llega a los clientes lo hemos configurado con las plantillas del ejemplo anterior. Ahora para editar la plantilla del correo que se enva al dueo de la tienda hay que hacer esos mismos cambios pero en los fichero ~/mails/es/contact.html y ~/mails/es/contact.txt. Con esto el administrador tambin recibir la informacin del nuevo campo.

Realizando estas modificaciones ya podrs ver el nuevo campo en el formulario de contacto y el valor que el cliente rellen aparecer en el correo que se le enva tanto a l como al administrado de la tienda.

Espero que os sea de ayuda el tutorial. Para cualquier duda, queja o sugerencia dejadnos vuestros comentarios.

You might also like