2017-01-06 3 views
1

Из моей пользовательской темы в Wordpress я бы хотел отправить HTML-письмо.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 Email и заполнить его части некоторыми данными, хранящимися в 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-письма, которые я хочу использовать, и это много кода.

Спасибо,

ответ

1

Вы можете сделать это с str_replace.

Сначала вы хотели бы, чтобы захватить содержимое шаблона в качестве переменной

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

Тогда вам нужно поменять в существующих переменных для маркеров размещения. Из вашего примера источника, вы могли бы поменять имя поля в так:

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

Повторите по мере необходимости для любой контент нуждается в замене.

Затем, когда вы закончите, просто используйте результат в качестве своего электронного содержимого.

1

Я думаю, что ваше собственное собственное собственное решение будет просто проанализировать его с помощью встроенных методов 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 - просто выполните итерацию массива и установите их. Вы можете создать массив из всех значений, которые вы хотите вставить, и тогда это будет еще проще,

, а затем повторно присоединять массив в строку, и thenset его $message использованием implode:

Простой пример от ссылки:

<?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); 

Надеюсь, что это поможет :)

 Смежные вопросы

  • Нет связанных вопросов^_^