Com afegir camps al formulari de Prestashop

  1. Anem al fitxer:

/themes/classic/modules/contactform/views/templates/widget/contactform.tpl

I afegim (per exemple a sobre del bloc de codi de email) tots els camps que vulguem afegir d’aquesta manera:

<div class=”form-group row”>
<label class=”col-md-3 form-control-label”>{l s=’Nombre’ d=’Shop.Forms.Labels’}</label>
<div class=”col-md-6″>
<input
class=”form-control”
name=”nombrecon”
type=”text”
value=””
placeholder=”{l s=’Su Nombre’ d=’Shop.Forms.Help’}”
>
</div>
</div>

<div class=”form-group row”>
<label class=”col-md-3 form-control-label”>{l s=’Teléfono ‘ d=’Shop.Forms.Labels’}</label>
<div class=”col-md-6″>
<input
class=”form-control”
name=telefonocon”
type=”text”
value=””
placeholder=”{l s=’Su Teléfono’ d=’Shop.Forms.Help’}”
>
</div>
</div>

(en aquest cas hem afegit nom i telèfon)

Ens hem de fixar en quin nom hem posat al “name” del camp (en el cas del nom, “nombrecon”)
Ja que necessitarem recollir aquest valor després per a que es mostri al mail que rebrem quan ens enviin un contacte.

Per recollir el valor al mail, lo ideal seria fer un override a :

/override/modules/

però si tenim pressa i no ens importa hardcodejar-ho , ho posarem directament aquí:

modules/contactform/contactform.php

i en concretament buscarem la funció: 

public function sendMessage()

i en aquesta funció :

 

 public function sendMessage()
{
$extension = [‘.txt’, ‘.rtf’, ‘.doc’, ‘.docx’, ‘.pdf’, ‘.zip’, ‘.png’, ‘.jpeg’, ‘.gif’, ‘.jpg’];
$file_attachment = Tools::fileAttachment(‘fileUpload’);
$message = trim(Tools::getValue(‘message’));
$url = Tools::getValue(‘url’);
$clientToken = Tools::getValue(‘token’);
$serverToken = $this->context->cookie->contactFormToken;
$clientTokenTTL = $this->context->cookie->contactFormTokenTTL;

Afegirem :

$nombrecon= trim(Tools::getValue(‘nombre’));
$telefonocon = trim(Tools::getValue(‘telefono’));

quedant la funció així

 public function sendMessage()
{
$extension = [‘.txt’, ‘.rtf’, ‘.doc’, ‘.docx’, ‘.pdf’, ‘.zip’, ‘.png’, ‘.jpeg’, ‘.gif’, ‘.jpg’];
$file_attachment = Tools::fileAttachment(‘fileUpload’);
$nombrecon= trim(Tools::getValue(‘nombre’));
$telefonocon = trim(Tools::getValue(‘telefono’));
$message = trim(Tools::getValue(‘message’));
$url = Tools::getValue(‘url’);
$clientToken = Tools::getValue(‘token’);
$serverToken = $this->context->cookie->contactFormToken;
$clientTokenTTL = $this->context->cookie->contactFormTokenTTL;

Ara només ens cal afegir les variables a la llista de variables que s’envien al mail.

$var_list = [
‘{firstname}’ => ”,
‘{lastname}’ => ”,
‘{order_name}’ => ‘-‘,
‘{attached_file}’ => ‘-‘,
‘{message}’ => Tools::nl2br(Tools::htmlentitiesUTF8(Tools::stripslashes($message))),
‘{email}’ => $from,
‘{product_name}’ => ”,
‘{nombrecon’ => ”,
‘{telefonocon}’ => ”,
];

Ara només queda fer que es mostri a les plantilles de mail, tant la que reb el client com la que reb l’administrador.

Les trobarem a : public_html/mails/es

contact_form.html/contact_form.txt -> Email que reb el client.

contact.html/contact.txt -> Email que reb l’admin

S’hauran d’afegir aquests dos camps:

<span style=”color:#333″><strong>Telefono:</strong></span> {nombrecon}

<span style=”color:#333″><strong>Telefono:</strong></span> {telefonocon}

El mail també es pot editar des de l’admin

 

Anar a  l’Article original

  • Autor de l'entrada:
  • Categoria de l'entrada:Prestashop