Come eseguire il rendering del tipo di dati html nel modello e-mail magento2?


13

Ho un modello di email in Magento 2: email-template.html

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

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

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

Ma nella variabile $data.bodyè il codice HTML non testo:

$data.body = `
<table width="100%"> 
  <tr> 
     <td>Name: </td> <td>Join Xanka </td>
  </tr> 
  <tr> <td>Email: </td> <td>xanka@gmail.com</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>

Quindi, come rendere il codice HTML quando si invia invia e-mail. Molte grazie!

Questo è il risultato quando scusa il codice print_r($this->_message->getBody());in sendMessage()funzione:

inserisci qui la descrizione dell'immagine

Risposte:


19

Cambio {{trans "%body" body=$data.body}}a {{trans "%body" body=$data.body|raw}}. rende successo.


8

Usa |rawcon la tua variabile param.

esempio: {{var data|raw}}

dove i dati sono una variabile param che è passata a un modello e contiene un valore che è codice HTML. data=<html code>


grazie è molto utile
Pradip Garchar

5

Insieme {{trans "%body" body=$data.body}}a {{trans "%body" body=$data.body|raw}}.

Ricorda di cambiare type="text"in type="html"in email_templates.xml, altrimenti otterrai un semplice HTML nelle tue mail.


Grazie mille per il suggerimento type = "html". Ho appena fatto un errore gelido, rovina circa mezz'ora!
DRAJI,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.