deb-dou Posted January 31, 2014 Share Posted January 31, 2014 (edited) 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 > > 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 February 2, 2014 by deb-dou (see edit history) Link to comment Share on other sites More sharing options...
deb-dou Posted January 31, 2014 Author Share Posted January 31, 2014 Re, Je fais des recherches depuis ce matin et, je ne trouve aucune solution à mon niveau. Y a t-il donc une âme charitable pour m'éclairer? Merci d'avance . Deb' Link to comment Share on other sites More sharing options...
deb-dou Posted February 2, 2014 Author Share Posted February 2, 2014 (edited) 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 > > E-mails pour le module sendtoafriend"). Voilà. J'espère que ça aidera. Deb' Edited February 2, 2014 by deb-dou (see edit history) 2 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now