wp_email模板无法更改

时间:2015-12-16 12:16:20

标签: php wordpress email templates

我创建了一个在wp_email()函数中使用的基本html模板。 这是模板代码:

<?php

$opties = json_decode($array_opties);


$message .= '
<p>'. date("Y-m-d H:i:s") .'</p>
<p>'. $titel .'</p>
<p>'. $uitvoering_field .'</p>
<p>'. $vermogen_gewicht_gewicht .'</p>
<p>'. $vermogen_gewicht_type .'</p>
<p>'. $vermogen_gewicht_kw .'</p>
<p>'. $vermogen_gewicht_prijs .'</p>
<p><img src="'. $kleurafbeelding .'" /></p>
<p>'. $kleurtitel .'</p>
<p>'. $kleurprijs .'</p>
<p><img src="'. $bekledingafbeelding .'" /></p>
<p>'. $bekledingtitel .'</p>
<p>'. $bekledingprijs .'</p>
<p><img src="'. $velgenafbeelding .'" /></p>
<p>'. $velgentitel .'</p>
<p>'. $velgenprijs .'</p>
<table class="table table-hover table-bordered">
        <thead>
                <tr>
                        <th>Optiepakket</th>
                        <th>Omschrijving</th>
                        <th>Prijs</th>
                </tr>
        </thead>
';
foreach ($opties as &$optie) {
$message .= '
        <tr>
            <td>'. $optie->titel .'</td>
            <td width="250">'. $optie->omschrijving .'</td>
            <td>'. $optie->prijs .'</td>
        </tr>
        ';
}



$message .= '
</table>
<p>'. $bedrijf .'</p>
<p>'. $naam .'</p>
<p>'. $adres .'</p>
<p>'. $postcode .'</p>
<p>'. $plaats .'</p>
<p>'. $telefoon .'</p>
<p>'. $mobiel .'</p>

';

这是我用来发送电子邮件的代码:

                $located = locate_template('mail.php');
            if(!empty($located)){
                    include $located;
            } else {
                    include (ABSPATH. 'wp-content/plugins/quido/frontend/mail.php');
            }
    $email_ontvangers = array('example@email.com', 'example@email.com');
    $headers = 'From: from <email@example.com>' . "\r\n";
    wp_mail( $email_ontvangers, 'text', $message, $headers );

这一切都正常,但我需要在电子邮件中添加一些字符串,因此我将它们添加到具有<p></p>元素的行中。但这并没有改变电子邮件。然后我在桌子上添了一个桌头。正如您所看到的,我添加了第3个标签,这并没有改变电子邮件。然后我刚刚删除了文件中的所有内容,并没有更改电子邮件。所以我有点迷茫。我还试图改变wp_mail使用我的模板的路径。所以我将'mail.php'改为模板的完整路径,但也没有成功。那么我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

  

默认内容类型为'text / plain',不允许使用   HTML。您可以使用以下命令设置电子邮件的内容类型   'wp_mail_content_type'过滤或通过包含标题   “内容类型:text / html”。小心重置'wp_mail_content_type'   但是,在发送邮件后回到'text / plain',因为   如果不这样做可能会导致意外的电子邮件问题   WP或插件/主题。

add_filter( 'wp_mail_content_type', 'set_content_type' );
function set_content_type( $content_type ) {
    return 'text/html';
}

https://codex.wordpress.org/Function_Reference/wp_mail https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_mail_content_type

答案 1 :(得分:0)

我解决了这个问题。这是由于标题不包含这行代码:

$headers = 'From: From <example@email.com>' . "Content-Type: text/plain; charset=\"" ."\r\n";