Làm cách nào để hiển thị loại dữ liệu html trong mẫu email magento2?


13

Tôi có mẫu email trong Magento 2: email-template.html

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

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

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

Nhưng trong biến $data.bodylà mã html không phải là văn bản:

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

Vậy làm thế nào để kết xuất mã html khi gửi gửi email. Rất cám ơn!

Đây là kết quả khi mã lý do print_r($this->_message->getBody());trong sendMessage()chức năng:

nhập mô tả hình ảnh ở đây

Câu trả lời:


19

Tôi đổi {{trans "%body" body=$data.body}}sang {{trans "%body" body=$data.body|raw}}. nó làm cho thành công


8

Sử dụng |rawvới biến param của bạn.

thí dụ: {{var data|raw}}

trong đó dữ liệu là một biến param được truyền cho một mẫu và chứa một giá trị là mã HTML. data=<html code>


cảm ơn bạn rất hữu ích
Pradip Garchar

5

Cùng với {{trans "%body" body=$data.body}}tới {{trans "%body" body=$data.body|raw}}.

Hãy nhớ thay đổi type="text"thành type="html"trong email_templates.xml, nếu không bạn sẽ nhận được HTML đơn giản trong thư của mình.


Cảm ơn bạn rất nhiều vì loại mẹo = "html". Tôi vừa mắc một lỗi lầm, Nó làm hỏng khoảng nửa giờ!
DRAJI
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.