我正在使用为独特的注册网站定制的插件。在WP仪表板中有一个设置页面,管理员可以在其中编写发送给用户的注册确认电子邮件,此页面使用默认的wp编辑器(我认为它是TinyMCE)。
我确认了这一点,因为插件的setting.php有以下循环
<?php
wp_editor( $content, $editor_id );
?>
问题在于,虽然编辑器在帖子和页面上工作正常,但是当我的插件的设置页面使用相同的编辑器发送电子邮件时,它会在没有换行的情况下发送。
我尝试在文字模式下使用编辑器创建包含<br />
<p></p>
和<div></div>
的换行符,但它们也不起作用,在保存更改后,html标记转换为富文本,即<br />
转为<br >
。
这是我的发送邮件功能在插件中的样子:
function SendMails($Data){
$To = $Data['To'];
$Subject = $Data['Subject'];
$Sender = $Data['SenderName'];
$From = 'support@'.$_SERVER['SERVER_NAME'];
$Body = $Data['Body'];
$Attachments = $Data['Attachments'];
$recipients = array($To);
$headers[] = "From: $Sender <$From>" . "\r\n";
$headers[] = "Content-Type: text/html";
$subj = $Subject;
$SendMail = wp_mail( $recipients, $subj, $Body, $headers, $Attachments );
return $SendMail;
}
P.S。所有其他WP电子邮件都正确传递与换行符。
知道问题可能是什么和/或如何修复它?
答案 0 :(得分:2)
使用此代码将转折转换为
$Body = preg_replace("/\r\n|\r|\n/",'<br/>',$Data['Body']);