【问题标题】:Wordpress - Read In HTML Email Template Stored In a FileWordpress - 读取存储在文件中的 HTML 电子邮件模板
【发布时间】:2017-01-06 22:34:22
【问题描述】:

我想通过我在 Wordpress 中的自定义主题发送一封 HTML 电子邮件。

而不是像这样填充主体:

$message = "";
$message = "<h3>Someone has applied for a job on the site.</h3>" . "<br><br>";
$message .= "Profile Picture URL: " . $Picture . "<br>";
$message .= "Name: " . $Name . "<br>";
$message .= "Email: " . $Email . "<br>";
$message .= "Phone: " . $Phone . "<br>";
$message .= "Work Phone: " . $WorkPhone . "<br>";
$message .= "Resume: " . $Resume . "<br>";
$message .= "Preferences: " . sanitize_text_field($Preferences) . "<br><br>";

相反,我希望 HTML 电子邮件模板成为它自己的文件。

然后,我想读取 HTML 电子邮件模板文件,并使用存储在 php 变量中的一些数据填充其中的部分内容。

所以,假设我有一个 html 文件:

emailtemplate.html

<h3>Name: [NameGoesHere]</h3>
<h3>Address: [AddressGoesHere]</h3>

然后,在我的 php 文件中,我有:

$name = "Jane Doe";
$address = "123 Street";
$message = "";
wp_mail($to, $subject, $message, $headers, $attachments);

我如何读入那个 html 文件,将名称和地址放在它所在的位置,然后将其存储在 $message 中?

我的示例看起来太简单了,但实际上我已经构建了 3 封非常详尽的 HTML 电子邮件,我想使用它们,而且每封都包含很多代码。

谢谢,

【问题讨论】:

    标签: php wordpress html-email


    【解决方案1】:

    您可以使用str_replace 来做到这一点。

    首先,您需要将模板内容作为变量获取

    $template = file_get_contents('/path/to/your/template.html');
    

    然后,您需要将现有变量换成放置标记。从您的示例源中,您可以像这样交换名称字段:

    $template = str_replace('[NameGoesHere]', $name, $template);
    

    根据需要重复任何需要替换的内容。

    然后,当您完成后,只需将结果用作您的电子邮件内容。

    【讨论】:

      【解决方案2】:

      我认为您自己编写的最佳解决方案就是使用 php 内置方法对其进行解析。

      要读取文件,请使用file_get_contents:

      示例

      // From Link
      <?php
      // <= PHP 5
      $file = file_get_contents('./HTML_TEMPLATE1.html', true);
      // > PHP 5
      $file = file_get_contents('./HTML_TEMPLATE1.html', FILE_USE_INCLUDE_PATH);
      ?>
      

      要解析 html 文件,请使用 the explode function:

      我建议你添加一个分隔符,例如 ##(稍后看看这对你有什么帮助) 这将保留实际字符串的位置。

      <?php
      // Example
      // Use previous $file-> ($file  = "<html>...";)
      
      $pieces = explode("#", $file);// "#" is YOUR_DELIMITER
      echo $pieces[0]; // piece1
      echo $pieces[1]; // piece2
      ?>
      

      然后,填充数组的奇数/偶数索引(取决于你如何解析它)。

      如果你按照我的建议用# 来解析它,你会得到一堆空的项目,你需要用php 代码中的值来填充它们——只需迭代数组并设置它们。您可以从要插入的所有值创建一个数组,然后它会更容易

      然后将数组重新附加到一个字符串,然后使用implode将其设置为$message

      链接中的简单示例:

      <?php
      
      $array = array('lastname', 'email', 'phone');
      $comma_separated = implode(",", $array);
      
      echo $comma_separated; // lastname,email,phone
      ?>
      

      然后,将其设置回$message 并发送邮件:

      $message = $value_of_attached_array;
      wp_mail($to, $subject, $message, $headers, $attachments);
      

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-27
        • 2019-06-11
        • 2011-04-15
        • 2013-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多