Jump to content

[resolu]Variables dans les mails


 Share

Recommended Posts

Bonjour,

 

J'ai besoin de faire une modif sur le template du mail order_deposit.

J'ai ajouté la variable {total_paid}, j'ai besoin de calculer 40% de cette somme et l'afficher, j'ai essayé plusieurs choses :

 

{total_paid}*0.4

{math equation="x*0.4" x=$total_paid format="%.2f" }

 

 

 

Cela ne calcul rien, et m'affiche la formule en texte.

 

Avez vous une solution ?

Merci d'avance,

Romain

 

 

 

Edited by parilla77 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour

si je ne dit pas de bêtise les mails ne sont pas en smarty. Ce sont des fichiers textes qui sont scanné et dans lesquels certain élément {total_paid} par exemple sont remplacé par la variable correspondante.

 

Cela signifie que vous ne pouvez faire aucune manipulation à partir des templates d'email.

Share this post


Link to post
Share on other sites

Merci pour la réponse,

Aie je ne sais pas comment je vais faire, la meilleure solution serait peut être de recréer une variable en amont et de la modifier avant la création du mail, connaissez vous la solution afin de créer ces variables ainsi que d'y accéder ?

 

Merci

Share this post


Link to post
Share on other sites

Bonjour,

je n'ai pas le code en tête mais la class qui gère les mails dans prestashop attend de recevoir un tableau avec d'un coté les mots clefs de l'autre leur valeur.

 

Si vous ajoutez dans ce tableau votre mot clef et sa valeur (que vous aurez recalculez en amont en effet) elle sera disponible dans l'email.

 

Pour résumé (attention c'est théorique car comme dit plus haut je n'ai pas le code exacte en tête, juste le principe):

 

$array['monMotClef']=$total_paid*0.4;

 

classMail($array) {

}

 

Ensuite dans le template vous utilisez {monMotClef} pour afficher la valeur.

  • Like 1

Share this post


Link to post
Share on other sites

Merci pour l'aide,

 

Donc la solution se trouve dans la classe OrderHistory.php

Ligne 155, dans mon cas il faut ajouter ceci :

 

$data['{total_paid_acompte}'] = Tools::displayPrice((float)$order->total_paid * 0.4, new Currency((int)$order->id_currency), false);

 

 

(presta 1.4.5.1)

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More