มีวิธีการส่งอีเมล์ในรูปแบบ HTML ด้วยฟังก์ชั่น wp_mail ของ Wordpress หรือไม่?


41

มี action_hook หรืออะไรทำนองนี้ที่สามารถช่วยฉันทำสิ่งนี้ให้สำเร็จได้ไหม?

ฉันพยายามเพิ่มมาร์กอัปในตัวแปรสตริง PHP และเพิ่งไล่ออกจากอีเมลด้วยฟังก์ชัน wp_mail ดังนี้:

$email_to = 'someaddress@gmail.com';
$email_subject = 'Email subject';
$email_body = "<html><body><h1>Hello World!</h1></body></html>";
$send_mail = wp_mail($email_to, $email_subject, $email_body);

แต่ปรากฏว่าเป็นธรรมดา?

ความคิดใด ๆ

คำตอบ:


58

จากหน้า codex wp_mail :

ประเภทเนื้อหาเริ่มต้นคือ 'text / plain' ซึ่งไม่อนุญาตให้ใช้ HTML อย่างไรก็ตามคุณสามารถตั้งค่าประเภทเนื้อหาของอีเมลโดยใช้ตัวกรอง 'wp_mail_content_type'

// In theme's functions.php or plug-in code:

function wpse27856_set_content_type(){
    return "text/html";
}
add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );

1
อืมฟังดูมีประโยชน์ เป็นเพียงคำถามใด ๆ ที่ทำให้คุณตั้งชื่อฟังก์ชั่นของคุณเป็น wpse27856_set_content_type
racl101

13
ไม่มันเป็นเพียงชื่อที่ไม่ซ้ำใครตามรหัสของคำถามนี้ wpse = wp stachexchange, 27856 เป็น id ของคำถามนี้ใน URL ฉันแค่ทำเช่นนั้นเพื่อหลีกเลี่ยงการชนที่อาจเกิดขึ้นหากผู้คนคัดลอก / วางรหัสจากที่นี่
Milo

2
นอกจากนี้คุณยังสามารถรวมประเภทเนื้อหาไว้ในส่วนหัวอีเมลของคุณ ตรวจสอบว่าปลั๊กอิน Notifly ทำงานอย่างไร
อ็อตโต

โอ้ใช่ฮ่า ฉันเป็นอะไร คิดว่ามันเป็นรหัสของโพสต์นี้
racl101

1
สิ่งนี้จะทำให้อีเมลรีเซ็ตรหัสผ่านของคุณแตกเนื่องจากลิงก์การรีเซ็ตจะอยู่ใน <>
Simon Josef Kok

89

เป็นทางเลือกคุณสามารถระบุส่วนหัว HTTP ชนิดเนื้อหาในพารามิเตอร์ $ headers:

$to = 'sendto@example.com';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');

wp_mail( $to, $subject, $body, $headers );

2
วิธีนี้ใช้งานได้ดีกว่าเนื่องจากบางครั้ง add_filter แสดงเป็นไฟล์แนบ ขอบคุณสำหรับการแบ่งปัน!
deepakssn

10

อย่าลืมลบตัวกรองประเภทเนื้อหาหลังจากที่คุณใช้ฟังก์ชั่น wp_mail ต่อไปนี้การตั้งชื่อคำตอบที่ยอมรับคุณควรทำหลังจากดำเนินการ wp_mail:

remove_filter( 'wp_mail_content_type','wpse27856_set_content_type' );

ตรวจสอบตั๋วนี้ที่นี่ - รีเซ็ตประเภทเนื้อหาเพื่อหลีกเลี่ยงความขัดแย้ง - http://core.trac.wordpress.org/ticket/23578


7
นี่ควรเป็นความเห็นไม่ใช่คำตอบใช่ไหม?
Bob Diego

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