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変数に格納されたデータを取り込みたいとします。

私は読んではどうすればよい
$name = "Jane Doe"; 
$address = "123 Street"; 
$message = ""; 
wp_mail($to, $subject, $message, $headers, $attachments); 

:私は私のPHPファイルで、その後

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

emailtemplate.html

それでは、私はhtmlファイルを持っているとしましょうその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); 
?> 

the explode functionを使用して、HTMLファイルを解析するには、次の

私はあなたが#で区切り文字を入れてお勧め#(これが後でどのように役立つかを参照) 実際の文字列の場所を保持します。

<?php 
// Example 
// Use previous $file-> ($file = "<html>...";) 

$pieces = explode("#", $file);// "#" is YOUR_DELIMITER 
echo $pieces[0]; // piece1 
echo $pieces[1]; // piece2 
?> 

次に、配列の奇数/偶数インデックス(解析方法によって異なります)を入力します。

私が示唆したように#を解析すると、PHPコードの値を入力したい空のアイテムがたくさんあります。単に配列を繰り返して設定してください。 implodeを使用してあなたが挿入したいすべての値から配列を作成することができますし、それはさらに簡単になり、

をして、文字列に配列をアタッチ再度、および$messageにそれをthenset:

簡単な例を

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

希望するもの:

関連する問題