Jump to content

Modifier les emails : ajout variable gender


Recommended Posts

Bonjour à tous,

 

j'ai un petit problème que je n'arrive pas a résoudre, j'aimerai la variable gender à  touts les emails

j'ai essayer ce code <td align="left">Bonjour <strong style="color: {color};">{gender} {firstname} {lastname}</strong> mais  ça marche pas

 

Auriez vous une idée de comment faire ?

 

Merci d'avance de vos réponses !

Link to comment
Share on other sites

Bonjour,

 

Les emails sur prestashop sont envoyés via la fonction Maill::Send() dont les paramètres sont les suivants :

 

public static function Send($id_lang, $template, $subject, $template_vars, $to, $to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null, $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null)

 

L'ensemble des variables affichées dans l'emails sont assignées via la variable template_vars

 

Voici par exemple comment est envoyé l'email de création de compte

Mail::Send(
$this->context->language->id,
'account',
Mail::l('Welcome!'),
array(
	'{firstname}' => $customer->firstname,
	'{lastname}' => $customer->lastname,
	'{email}' => $customer->email,
	'{passwd}' => Tools::getValue('passwd')),
$customer->email,
$customer->firstname.' '.$customer->lastname
);

Toutes les variables sont envoyées à la fonction d'envoi.

 

Si tu souhaites rajouter le genre, il va donc falloir modifier tous les scripts d'envois d'emails pour renseigner la valeur gender ce qui pourrait donner un script comme cela

$gender = new Gender($customer->id_gender);

Mail::Send(
$this->context->language->id,
'account',
Mail::l('Welcome!'),
array(
	'{firstname}' => $customer->firstname,
	'{lastname}' => $customer->lastname,
	'{email}' => $customer->email,
	'{passwd}' => Tools::getValue('passwd')),
        '{gender}' => $gender->name[$this->context->language->id],
$customer->email,
$customer->firstname.' '.$customer->lastname
);
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Bonjour à tous,

 

Je rencontre le même problème.

 

Je souhaite ajouter le "Genre" dans l'email de confirmation de commande mais la variable {gender} ne fonctionne pas et je ne saisi pas bien la solution proposée plus haut.

 

Une bonne âme pour trouver la patience de me donner un début de solution pratique ? ^^

 

Merci !

Edited by zataweb (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Il n'y a malheureusement pas d'autre solution que de passer par le code pour rajouter cette information.

 

Concernant l'email de confirmation de commande, l'email est envoyé dans la fonction validateOrder() du fichier classes/PaymentModule.php

Il faut donc surcharger cette fonction afin d'ajouter les informations du genre.

Link to comment
Share on other sites

  • 1 year later...

Je viens de tester et enfin j'arrive a une solution d'envoie de mail :

 

 protected function sendConfirmationMail(Customer $customer)
    {
        $gender = new Gender((int)$customer->id_gender, $this->context->customer->id_gender);
        if (!Configuration::get('PS_CUSTOMER_CREATION_EMAIL')) {
            return true;
        }
            return Mail::Send(
            $this->context->language->id,
            'account',
            Mail::l('Welcome!'),
            array(
                '{firstname}' => $customer->firstname,
                '{lastname}' => $customer->lastname,
                '{email}' => $customer->email,
                '{gender}' => $gender->name[(int)$this->context->language->id],
                '{passwd}' => Tools::getValue('passwd')),
            $customer->email,
            $customer->firstname.' '.$customer->lastname
        );
    
        
    }

Edited by haithem turki (see edit history)
Link to comment
Share on other sites

  • 3 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...