Añadir nombre y tel...
 
Avisos
Vaciar todo

Añadir nombre y teléfono al formulario de contacto - Prestashop

20 Respuestas
3 Usuarios
0 Reactions
1,120 Visitas
Respuestas: 2640
Famed Member
Topic starter
 

Buenas tardes,

Necesito añadir el campo Nombre y Teléfono al formulario de contacto de prestashop.

He seguido este manual:

http://nemops.com/adding-new-fields-to-prestashop-contact-form/#.WfBw11t-qUl

Me he quedado en el paso este:

Go to override/controllers/front/ and create a new file named ContactController.php, the open up the original file with the same name, located in controllers/front. copy the whole _postProcess method and paste it inside the newly created file, so it looks like this:

**
Ahí me dicen que cree el archivo pero vosotros ya lo tenéis creado, creo que por el tema del captcha.

También he seguido con el paso 3 cuando relleno los campos, el email no entra en Prestashop.

Adjunto el fichero, a ver si le podéis echar un vistazo.

Gracias.

Un saludo, Enrique P.

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 25/10/2017 4:31 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Efectivamente sería cuestión de agregar las funciones adicionales para la creación de los campos en el archivo que ya tienes.

Envía nuevamente tu archivo, ya que no se adjuntó, envíalo en .zip, o puedes subirlo a dropbox y envianos la url.

Saludos.


 
Respondido : 25/10/2017 7:46 pm
Respuestas: 2640
Famed Member
Topic starter
 

Buenos días,

Disculpa. Adjunto fichero.

Gracias.

Un saludo, Enrique P.


 
Respondido : 26/10/2017 8:24 am
Pepe
 Pepe
Respuestas: 41135
Illustrious Member Admin
 

Hola Enrique.

.- edita el archivo contact-form.tpl que encontraras en la ruta themes/tu_plantilla/contact-form.tpl
.- antes de " {if !$PS_CATALOG_MODE} " añade los siguiente:

 

.- Edita el archivo ContactController.php que encontrarás controllers/front/ContactController.php
.- debajo del codigo " $file_attachment = Tools::fileAttachment('fileUpload'); " añade lo siguiente:

$telefono = trim(Tools::getValue('telefono'));
$empresa = trim(Tools::getValue('empresa'));            
if ($telefono)
   $message = 'El telefono es: ' . $telefono .' ';
if ($empresa)
   $message .= ' El nombre de la empresa es: ' . $empresa .' ';		

Este es el resultado:

Nota: recuerda descargar una copia de los archivo s antes de realizar ninguna modificación.

Un saludo


 
Respondido : 26/10/2017 12:52 pm
Respuestas: 2640
Famed Member
Topic starter
 

Buenas tardes,

Los campos aparecen pero cuando se rellenan dichos campos no se reflejan en el mensaje que llega. ¿Tenemos que modificar algo más?

Por otra parte, ¿como puedo cambiar el captcha antiguo pero el captcha v2 nuevo que Google exigirá a partir del 18 de Marzo de 2018?

Gracias.

Un saludo, Enrique P.


 
Respondido : 30/10/2017 5:19 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Has creado el archivo de clase?, es decir, no sólo es necesario modificar el archivo .tpl
http://nemops.com/adding-new-fields-to-prestashop-contact-form/

Tu otra consulta de recaptcha mejor plantéala en un nuevo hilo cuando hayas solucionado este primer punto

Saludos.


 
Respondido : 30/10/2017 8:35 pm
Respuestas: 2640
Famed Member
Topic starter
 

Buenos días,

Esta bien, vayamos por pasos.

Según puedo entender, me iría al paso 2:

http://nemops.com/adding-new-fields-to-prestashop-contact-form/#.Wfg4V1v9SUk

Iría a la carpeta override/classes/ y dentro crearía el fichero CustomerThread.php y dentro de dicho fichero y según los campos que hemos añadido tu compañero Pablo y yo tendría que añdir el siguiente código:


 'customer_thread',
        'primary' => 'id_customer_thread',
        'fields' => array(
            'id_lang' =>     array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
            'id_contact' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true),
            'id_shop' =>     array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'id_customer' =>array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'id_order' =>    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'id_product' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'email' =>       array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'size' => 254),
            'token' =>       array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true),
            'status' =>  array('type' => self::TYPE_STRING),
            'date_add' =>    array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
            'date_upd' =>    array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
            'empresa' =>  array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'),
            'telefono' =>  array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId''),
             
        ),
    );
 
 
}

Dime si ese paso y está bien y pasaré al siguiente.

Un saludo, Enrique P.


 
Respondido : 31/10/2017 9:52 am
Pepe
 Pepe
Respuestas: 41135
Illustrious Member Admin
 

Hola Enrique.

Con lo que te pase tiene que aparecerte en el correo los datos tanto del teléfono como el de el nombre.

Revisa esta entrada -> https://www.informax.es/2016/05/27/crear-campos-en-el-formulario-de-contacto-de-prestashop-en-menos-de-un-minuto/

Un saludo


 
Respondido : 31/10/2017 11:47 am
Respuestas: 2640
Famed Member
Topic starter
 

Buenas tardes Pepe,

Que raro, no me aparece. Te adjunto los archivos modificados, a ver si me he saltado algo.

Tengo que compilar los archivos o algo? o hacer algo en la página de temas de caché?

Gracias.

Espero noticias.

Un saludo, Enrique P.


 
Respondido : 31/10/2017 12:12 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Te falta concatenar la variable mensaje al final, si te das cuenta debe llevar un "." delante

$message .= Tools::getValue('message')

Saludos.


 
Respondido : 31/10/2017 5:18 pm
Respuestas: 2640
Famed Member
Topic starter
 

Buenas tardes,

He modificado el contactcontroller.php y he añadido el punto donde lo ponéis vosotros en la línea 47 pero el mensaje me sigue llegando igual, sin el número de teléfono y sin el nombre de la empresa.

Adjunto archivos nuevamente.

Gracias por vuestra ayuda.

Un saludo, Enrique P.


 
Respondido : 02/11/2017 3:38 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

El código en el ContactController.php lo veo correcto ahora ya que esta que concatena.

En donde has modificado este archivo? indícanos la ruta, ten en cuenta que si tienes el mismo archivo en la carpeta de override tendrá prioridad : /override/controllers/front/ , verifica si tienes archivos de overrides en esta última ruta.

Saludos.


 
Respondido : 02/11/2017 5:26 pm
Respuestas: 2640
Famed Member
Topic starter
 

Buenas tardes,

He renombrado el archivo que había en esa ruta y he metido el nuevo y la web me da un error 500.

Adjunto nuevamente todos los archivos, el que ponen OLD es el que estaba antes de poner el válido.

Gracias.

Espero noticias.

Un saludo, Enrique P.


 
Respondido : 02/11/2017 6:43 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Entiendo que estas modificando en la carpeta overrides

Prueba con el archivo que te adjunto, he modificado en base al archivo contactcontrollerOLD.php ya que entiendo que era el original y sólo he agregado las variables de empresa

Saludos.


 
Respondido : 02/11/2017 9:27 pm
Respuestas: 2640
Famed Member
Topic starter
 

Buenos días Jhon,

Sigue sin llegarme ni el teléfono ni el nombre. Echa un vistazo al archivo que tengo publicado, es el que te adjunto.

A ver si he tenido cualquier confusión.

Gracias por tu ayuda.

Un saludo, Enrique P.


 
Respondido : 03/11/2017 8:35 am
Página 1 / 2