Green Mouse Concept Posted April 7, 2016 Share Posted April 7, 2016 (edited) Bonjour, Je suis en train de modifier le pied de page de chaque modèle d'email en y ajoutant des liens vers quelques pages CMS (par exemple livraison ou paiement). Je modifie (par exemple) le fichier /www/mails/fr/bankwire.html et y ajoute les lignes suivantes dans le footer: <td class="footer" style="border-top:4px solid #333333;padding:7px 0"> <span> <a href="{shop_url}" style="color:#337ff1">Site principal</a> - <a href="{shop_url}content/5-paiement-securise" style="color:#337ff1">Paiement</a> - <a href="{$link->getCMSLink('1', 'livraison')}" style="color:#337ff1">Livraison</a> </span> </td> Ligne 5: le lien codé en dur dans le template. Cela fonctionne bien mais ce n'est à mon avis pas la meilleure technique à utiliser. Ligne 7: selon moi la meilleure méthode mais ceci ne semble pas fonctionner, le lien généré dans le mail envoyé est vide (pas de href): <a style="color:#337ff1">Livraison</a> Une idée? Dois-je en conclure qu'il est impossible d'utiliser la méthode getCMSLink au sein d'un template d'email html ou ai-je fait une erreur quelque part? Note: J'utilise la version 1.6.1.4 de PrestaShop. D'avance, merci pour votre aide! Edited April 7, 2016 by greenmouseconcept (see edit history) Link to comment Share on other sites More sharing options...
erouvier29 Posted April 8, 2016 Share Posted April 8, 2016 Votre erreur: vous utilisez la syntaxe Smarty, or le contenu des mails est géré par Swift. Pour y ajouter des champs personnalisés, vous pouvez le faire: Avant les appels à Mail::Send() par extension de la variable passée en 4e argument (par ex. /classes/PaymentModule.php, ligne 778, variable $data construite à la ligne 705) Dans Mail::Send() elle-même par extension de l'argument $template_vars Par le hook actionGetExtraMailTemplateVars (déclenché dans /classes/Mail.php ligne 344) La syntaxe dans votre cas serait '{delivery_url}' => $link->getCMSLink('1', 'livraison'), puis insertion de {delivery_url} dans le template Link to comment Share on other sites More sharing options...
Green Mouse Concept Posted April 16, 2016 Author Share Posted April 16, 2016 J'ai essayé la 3e technique que vous décriviez (actionGetExtraMailTemplateVars) mais cela ne voulait malheureusement pas fonctionner alors en cherchant un peu j'ai trouvé la solution suivante: - Après la ligne 341 dans Mail.php, ajouter la ligne de code qui suit (donc en dehors de la fonction actionGetExtraMailTemplateVars): $template_vars['{paymentLink}'] = Context::getContext()->link->getCMSLink('1', 'livraison'); Ensuite la variable {paymentLink} est bien utilisable dans n'importe quel modèle de mail. A noter que sans votre aide je n'aurais jamais pu trouver cette solution, encore merci! Link to comment Share on other sites More sharing options...
erouvier29 Posted April 16, 2016 Share Posted April 16, 2016 Exact, vous avez besoin d'un $link, et vous le récupérez dans le contexte. Désolé de ne pas avoir été complet au départ... 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