Comment rendre le type de données html dans le modèle de courrier électronique magento2?

13

J'ai un modèle d'e-mail dans Magento 2: email-template.html

{{template config_path="design/email/header_template"}}

{{trans "%body" body=$data.body}}

{{template config_path="design/email/footer_template"}} 

Mais en variable, le $data.bodycode html n'est pas du texte:

$data.body = `
<table width="100%"> 
  <tr> 
     <td>Name: </td> <td>Join Xanka </td>
  </tr> 
  <tr> <td>Email: </td> <td>[email protected]</td> </tr>
  {{depend Test Send}} 
  <tr> <td>Subject: </td> <td>Test Send</td> </tr>
  {{/depend}} 
  <tr> <td>Message: </td> <td>we try send email use to test.</td> </tr>
</table>

Alors, comment rendre le code html lors de l'envoi d'un e-mail. Merci beaucoup!

C'est le résultat lorsque le code d'excuse print_r($this->_message->getBody());en sendMessage()fonction:

entrez la description de l'image ici

xanka
la source

Réponses:

19

Je change {{trans "%body" body=$data.body}}pour {{trans "%body" body=$data.body|raw}}. cela rend le succès.

xanka
la source
8

À utiliser |rawavec votre variable param.

exemple: {{var data|raw}}

où data est une variable param transmise à un modèle et contient une valeur qui est du code HTML. data=<html code>

Bhargav Joshi
la source
merci c'est très utile
Pradip Garchar
5

Avec {{trans "%body" body=$data.body}}à {{trans "%body" body=$data.body|raw}}.

N'oubliez pas de passer type="text"à type="html"in email_templates.xml, sinon vous obtiendrez du HTML simple dans vos e-mails.

Imran Zahoor
la source
Merci beaucoup pour l'astuce type = "html". Je viens de faire une erreur froide, ça ruine environ une demi-heure!
DRAJI