วิธีการแสดงผลชนิดข้อมูล HTML ในแม่แบบอีเมล magento2?


13

ฉันมีแม่แบบอีเมลใน Magento 2: email-template.html

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

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

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

แต่ในตัวแปร$data.bodyคือรหัส html ไม่ใช่ข้อความ:

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

ดังนั้นวิธีการแสดงรหัส html เมื่อส่งส่งอีเมล ขอบคุณมาก ๆ!

นี่คือผลลัพธ์เมื่อโค้ดแก้ตัวprint_r($this->_message->getBody());ในsendMessage()ฟังก์ชั่น:

ป้อนคำอธิบายรูปภาพที่นี่

คำตอบ:


19

การเปลี่ยนแปลงฉันไป{{trans "%body" body=$data.body}} {{trans "%body" body=$data.body|raw}}มันประสบความสำเร็จ


8

ใช้|rawกับตัวแปรพารามิเตอร์ของคุณ

ตัวอย่าง: {{var data|raw}}

โดย data คือตัวแปรพารามิเตอร์ที่ส่งผ่านไปยังเทมเพลตและมีค่าซึ่งเป็นรหัส HTML data=<html code>


ขอบคุณที่มีประโยชน์มาก
Pradip Garchar

5

พร้อมกับการ{{trans "%body" body=$data.body}}{{trans "%body" body=$data.body|raw}}

อย่าลืมที่จะเปลี่ยนtype="text"ไปtype="html"ในemail_templates.xmlมิฉะนั้นคุณจะได้รับธรรมดา HTML ในอีเมลของคุณ


ขอบคุณมากสำหรับเคล็ดลับ type = "html" ฉันเพิ่งทำผิดพลาดที่เย็นชาซากปรักหักพังประมาณครึ่งชั่วโมง!
DRAJI
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.