Jump to content

Conditions "If" dans le template d'un mail


Recommended Posts

Bonjour,

 

J'ai parcouru les réponses de mon ami Google quand à mon problème mais je n'ai pas vraiment trouvé de réponses dans l'immédiat...

 

Ce que je souhaite faire, c'est afficher, en fonction du jour de la semaine une partie de mon template de mail (situé dans le répertoire /mails/fr de mon dossier Prestashop).

 

Je m'explique pour plus de clarté, j'ai ce genre de code dans le order_conf.html :

<font size="2" face="Open-sans, sans-serif" color="#555454">
   <span class="title" style="font-weight:500;font-size:28px;text-transform:uppercase;line-height:33px;">Bonjour {firstname} {lastname},</span><br />

   <span class="subtitle" style="font-weight:500;font-size:16px;text-transform:uppercase;line-height:25px;">Merci d'avoir effectué vos achats sur {shop_name}!</span>
</font>
J'aimerai y ajouter une condition du type :
<? php
  if date(strtotime('Monday')) {
    echo <p>Rappel : vous avez passé votre commande un lundi, la boutique ne pourra vous livrer que mardi</p>
  }
?>
Est-ce possible ? Il faut dans ce cas changer l'extension en php ? Comment cette modification est-elle dans ce cas répercutée sur la version .txt du mail ?
Link to comment
Share on other sites

Bonjour,

 

il n'est pas possible de faire de conditions dans les fichiers HTML ou TXT.

 

Il faut réussir à faire la condition dans le controller ou classe PHP provoquant l'appel du template email.

Merci, c'est ce que je craignais.

 

Une idée dans ce cas du controller ou de la classe PHP qui influe sur l'appel du template /mails/fr/order_conf.html (et order_conf.txt bien sûr ;) ) ?

 

Je débute sur Prestashop et je suis un peu perdu dans tous ces appels ^^

Link to comment
Share on other sites

c'est la classe Mail elle même qui fait cela, mais le code ne sait que faire du remplacement simple à partir d'un tableau fournit. Il n'y a aucun langage derrière

Merci bien, je vais regarder ça.

 

Mais en gros si je comprends bien, il n'y a pas vraiment de solution à mon problème...? :/ (si tu dis qu'il ne s'agit que d'un principe de remplacement)

Link to comment
Share on other sites

Est-ce qu'une feuille de papier peut faire un "if" ?

La c'est pareil. Il n'y a aucun code, juste la substitution d'un mot {firstname} par le prénom

Oui merci.

 

Mais en fait le {firstname} était un exemple, pour bien préciser que je me trouvais dans la partie mail. Je voulais savoir si c'était possible de faire un "if", mais apparemment non. Je vais donc chercher une autre solution à mon problème.

Link to comment
Share on other sites

Bonjour,

 

Il y a bien entendu une solution, comme le mentionnait MediaCom.

 

Il vous faut donc éditer la classe PaymentModule et plus précisément la méthode validateOrder() à cet effet.

 

Pour bien faire, le mieux serait d'avoir un module tiers implémentant le hook "actionGetExtraMailTemplateVars" par exemple et qui se chargerait donc de retourner un tableau avec les variables (cela peut être le contenu de votre chaine de caractère ou du vide) et ajouter la "variable" dans le template d'email, donc.

Link to comment
Share on other sites

Bonjour,

 

Il y a bien entendu une solution, comme le mentionnait MediaCom.

 

Il vous faut donc éditer la classe PaymentModule et plus précisément la méthode validateOrder() à cet effet.

 

Pour bien faire, le mieux serait d'avoir un module tiers implémentant le hook "actionGetExtraMailTemplateVars" par exemple et qui se chargerait donc de retourner un tableau avec les variables (cela peut être le contenu de votre chaine de caractère ou du vide) et ajouter la "variable" dans le template d'email, donc.

Merci beaucoup,

 

Je vais regarder ça et tenter de me pencher sur cette solution.

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