Jump to content

[Résolu]: Non prise en compte du changement de sujet du mail envoyé via le module "Send to a friend"


Recommended Posts

Bonjour,

 

J'ai un niveau débutante, j'utilise prestashop 1.5.3. Et j'ai le thème par défaut de Prestashop ainsi qu'un thème nommé 7xj que j'ai activé pour l'apparence de ma boutique.

 

Et aujourd'hui j'ai un problème avec le sujet du mail envoyé par le module "Send to a friend", alors que tous les autres sujets de mail fonctionnent bien.

 

En fait, malgré toutes mes manipulations pour essayer de changer le sujet du mail envoyé par le module "Send to a friend", le sujet reste le même avec une partie en français et une autre partie en anglais, soit "Un ami sent you a link to..."

 

Et avant de vous demander de l'aide, j'ai lu avec attention les sujets prestashop :

- [Résolu]Objets de mail en anglais

- titre d'email ? Ou intervenir ?

- [RESOLU]modification des emails

- [RESOLU] CHANGER TITRE MAIL AUTOMATIQUE

 

Puis en m'inspirant de ces sujets, j'ai fait ceci :

 

• 1ère manipulation via le manager de Prestashop (Chemin d'accès : Localisations > Traductions > default > 5.jpg  > E-mails pour le module sendtoafriend) :

 

a. J'ai noté "Un ami vous envoie un lien", dans le champ "Objet pour send_to_a_friend", juste en dessous de la mention "%1$s sent you a link to %2$s".

 

b. J'ai indiqué "Message from {shop_name}" dans le champ "send_to_a_friend.html".

 

c. J'ai édité la version html du mail (voir sujet "Problème d'accents avec le mail reçu via le module "Send to a friend"").

 

d. J'ai édité la version texte du mail.

 

e. J'ai enregistré les modifications.

 

* Conclusion n°1 : Le sujet du mail "Send_to_a_friend" est resté "Un ami sent you a link to..." même après 48 heures d'attente et, après avoir vidé les caches.

 

 

• 2ème manipulation via le FTP de mon hébergement (Chemin d'accès : mails > fr > lang.php) :

 

f. J'ai cherché le sujet du mail "%1$s sent you a link to %2$s". Et je l'ai trouvé dans "$_LANGMAIL['%1$s sent you a link to %2$'] = '%1$s vous envoie un lien vers %2$s';.

 

g. J'ai remplacé "%1$s vous envoie un lien vers %2$s" par "Un ami vous envoie un lien". Je ne voulais pas garder "%1$s" ni "%2$s" dans le sujet à afficher pour l'objet du mail.

 

h. J'ai enregistré les modifications.

 

* Conclusion n°2 : Le sujet du mail "Send_to_a_friend" est resté "Un ami sent you a link to..." même après avoir attendu 48 heures et, après avoir vidé les caches.

 

 

• 3ème manipulation via le FTP de mon hébergement (Chemin d'accès : themes > defaut > lang > fr.php) :

 

i. J'ai cherché le sujet du mail "%1$s sent you a link to %2$s".

 

j. Je ne l'ai pas trouvé.

 

 

• 4ème manipulation via le FTP de mon hébergement (Chemin d'accès : themes > theme7xj > lang > fr.php) :

 

k. J'ai cherché le sujet du mail "%1$s sent you a link to %2$s".

 

l. Je ne l'ai pas trouvé.

 

 

• 5ème manipulation via le FTP de mon hébergement (Chemin d'accès : controllers > admin > AdminEmailsController.php)

 

m. J'ai cherché "%1$s sent you a link to %2$s".

 

n. Je ne l'ai pas trouvé.

 

 

• 6ème manipulation via le FTP de mon hébergement (Chemin d'accès : controllers > front)

 

o. J'ai cherché un controller avec un nom contenant "mail", "email", "module" ou "send to a friend" (j'ai utilisé plusieurs orthographes et la traduction des mots en anglais avec ou sans point, tiret,...)

 

p. Je n'ai rien trouvé.

 

 

• 7ème manipulation via la base de données (Chemin d'accès : ps_order_state_lang > id_order_state)

 

q. J'ai cherché "Send to a friend" en utilisant différentes orthographes en anglais et français.

 

r. Je n'ai rien trouvé

 

 

• 8ème manipulation via la base de données (Chemin d'accès : ps_order_state_lang > id_lang)

 

s. J'ai cherché "Send to a friend" en utilisant différentes orthographes en anglais et français.

 

t. Je n'ai rien trouvé

 

 

• 9ème manipulation via la base de données (Chemin d'accès : ps_order_state_lang > name)

 

u. J'ai cherché "Send to a friend" en utilisant différentes orthographes en anglais et français.

 

v. Je n'ai rien trouvé

 

 

• 10ème manipulation via la base de données (1er Chemin d'accès : ps_order_state_lang > template)

 

w. J'ai cherché "Send to a friend" en utilisant différentes orthographes en anglais et français.

 

x. Je n'ai rien trouvé.

 

 

Merci d'avance d'avoir pris la temps de lire et de comprendre tous mes détails et, surtout de m'aider à résoudre ce problème de sujet de mail, avec des explications didactiques et claires :).

 

Deb'

Edited by deb-dou (see edit history)
Link to comment
Share on other sites

Bonjour,
 
J'ai enfin trouvé la solution, grâce à l'orientation d'un génialissime "PrestaShop Fanatic". Et j'ai également apprécié qu'il ne m'ait pas donné le code, puisque ça m'a permis de faire des tests, réfléchir, avant d'avoir la satisfaction de résoudre le problème.
 
Et pour ceux qui n'auraient pas le temps de chercher, voici la solution :
 
1. Accéder à votre FTP
 
2. Suivez le chemin "modules > sendtoafriend"
 
3. Editez le fichier "sendtoafriend_ajax.php"
 
4. Repérez avec la fonction "Ctrl + F" la partie suivante (en gras ce sont les parties importantes):

/* Email generation */
        $product = new Product((int)$id_product, false, $module->context->language->id);
        $productLink = $module->context->link->getProductLink($product);
        $customer = $module->context->cookie->customer_firstname ? $module->context->cookie->customer_firstname.' '.$module->context->cookie->customer_lastname : $module->l('A friend', 'sendtoafriend_ajax');

        $templateVars = array(
            '{product}' => $product->name,
            '{product_link}' => $productLink,
            '{customer}' => $customer,
            '{name}' => Tools::safeOutput($friendName)
        );

        /* Email sending */
        if (!Mail::Send((int)$module->context->cookie->id_lang,
                'send_to_a_friend',
                sprintf(Mail::l('%1$s sent you a link to %2$s', (int)$module->context->cookie->id_lang), $customer, $product->name),
                $templateVars, $friendMail,
                null,
                ($module->context->cookie->email ? $module->context->cookie->email : null),
                ($module->context->cookie->customer_firstname ? $module->context->cookie->customer_firstname.' '.$module->context->cookie->customer_lastname : null),
                null,
                null,
                dirname(__FILE__).'/mails/'))
            die('0');

 

5. Pour obtenir un sujet ou un objet de mail correspondant à "(Prénom), votre ami(e) vous envoie un lien", vous devez :

a. remplacer A friend par votre ami(e) ou Votre ami(e).

 

b. remplacer %1$s sent you a link to %2$s par %1$s, %2$s vous envoie un lien.

 

c. remplacer $customer, $product->name  par Tools::safeOutput($friendName), $customer

 

d. enregistrer les changements.

 

6. Tester le module "Send to a friend" en vous envoyant un mail.

 

Remarques :

Après ces petites modifications, j'ai remarqué :

 

- la disparition de "$_LANGMAIL['%1$s sent you a link to %2$'] = '%1$s vous envoie un lien vers %2$s' (voir le chemin d'accès du FTP "mails > fr > lang.php").

 

- la disparition de la mention "%1$s sent you a link to %2$s" (voir le chemin d'accès du manager de Prestashop "Localisations > Traductions > default > 5.jpg  > E-mails pour le module sendtoafriend").

 

Voilà. J'espère que ça aidera. :)

 

Deb'

Edited by deb-dou (see edit history)
  • Like 2
Link to comment
Share on other sites

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...