Jak wyrenderować typ danych HTML w szablonie e-mail magento2?

13

Mam szablon e-maila w Magento 2: email-template.html

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

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

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

Ale w zmiennej $data.bodykod html nie jest tekstem:

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

Jak renderować kod HTML podczas wysyłania wiadomości e-mail. Wielkie dzięki!

Jest to wynikiem, gdy kod wymówki print_r($this->_message->getBody());w sendMessage()funkcji:

wprowadź opis zdjęcia tutaj

xanka
źródło

Odpowiedzi:

19

Zmieniam się {{trans "%body" body=$data.body}}na {{trans "%body" body=$data.body|raw}}. przynosi sukces.

xanka
źródło
8

Używaj |rawze zmienną param.

przykład: {{var data|raw}}

gdzie dane to zmienna param, która została przekazana do szablonu i zawiera wartość, która jest kodem HTML. data=<html code>

Bhargav Joshi
źródło
dziękuję bardzo za przydatne
Pradip Garchar
5

Wraz z {{trans "%body" body=$data.body}}celu {{trans "%body" body=$data.body|raw}}.

Pamiętaj, aby zmienić type="text"na, type="html"w email_templates.xmlprzeciwnym razie otrzymasz zwykły kod HTML w wiadomościach e-mail.

Imran Zahoor
źródło
Dziękuję bardzo za typ końcówki = "html". Właśnie popełniłem chłodny błąd, który rujnuje około pół godziny!
DRAJI