【WordPress 4.3.0~】ユーザー情報変更時に送るメールをカスタムする方法
みなさんこんにちは
まだ夏のような天気の日も多いですがいかがお過ごしでしょうか。
秋を挟まずに冬が来たらどうしましょう。
さて、今回はWordPressが送るメールをカスタムする方法についてご紹介します。
該当するタイミングは以下の2点です。
- 各ユーザーのパスワードを変更した時
- 各ユーザーのメールアドレスを変更した時
実装方法
どちらのタイミングでもfunction.phpに書き込みます。
以下コード例です。
/*
* メールアドレス変更の通知メールをカスタム
*/
function custom_email_change_email($email_change_email, $user, $userdata)
{
// 件名の編集
$email_change_email["subject"] = "メールアドレス変更が変更されました";
// 本文の編集 ###xxxxx###は各値に置換される
$email_change_email["message"] =
"こんにちは ###USERNAME### さん\n" .
"\n" .
"あなたのメールアドレスが ###SITENAME### で変更されたことをお知らせします。\n" .
"\n" .
"もしメールアドレスを変更した覚えがない場合、次のサイト管理者に連絡してください。\n" .
"###ADMIN_EMAIL###\n" .
"\n" .
"このメールは ###EMAIL### に送信されました。\n" .
"\n" .
"\n" .
"###SITENAME###\n" .
"###SITEURL###";
// 宛先の設定 デフォルトは変更されたユーザーです。
$email_change_email["to"] = jibun@sample.co.jp;
// 差出人やCc、Bccなども設定できる
$header[] = "From: バシャログ <from@sample.co.jp>";
$header[] = "Cc: cc@sample.co.jp";
$header[] = "Bcc: bcc@sample.co.jp";
$header[] = "Bcc: bcc2@sample.co.jp"// 複数設定も可
$email_change_email["headers"] = $header;
// カスタムしたものをreturnするとメールに反映される
return $email_change_email;
}
// メールアドレスが変更された時に呼び出し
add_filter('email_change_email', 'custom_email_change_email',10,2);
以下add_filter()解説
上の例はメールアドレスが変更された時のコードになります。
add_filter('email_change_email', 'custom_email_change_email',10,2);
でフィルターに関数を登録します。
第一引数 フックするタイミング
上ではemail_change_email
とメールアドレスが変更された時になってますが。
pass_word_change_email
にかえるとパスワード変更時のメールに対応します。
第二引数 登録する関数名
ここはわかりやすい関数名を自由につけてください。
もちろん宣言しているものに限りますが。
第三引数 同じタイミングでの実行優先度
複数関数を実行する時に便利そうですが、今回はデフォルト値の10を指定しています。
第四引数 登録した関数に受け渡す引数の数
デフォルト値は1ですが、ユーザーのデータが欲しい場合は2以上にする必要があります。
以下関数内処理解説
基本的にはwp_mail()と同じです。
連想配列の各キーに任意の値を登録してください。指定してない場合はデフォルトの値が追加されます。
$array['to']
メールの宛先を指定、デフォルトはメールアドレスが変更されたユーザーになります。
$array['subject']
件名です。
$array['message']
本文です。以下の文字列は対応する登録された値と置き換わります。
- ##USERNAME###
ログイン名 user_login - ###SITENAME###
サイトのタイトル blogname - ###ADMINEMAIL###
管理者のメールアドレス adminemail - ###EMAIL###
変更したユーザーのメールアドレス user_email - ###SITEURL###
現在のサイトのホームURL
$array['headers']
to以外のヘッダ情報を記載します。
書き方は上のコードを参考にしてください。
CcやBccには複数アドレスを登録したいことも多いと思いますので、是非覚えておきたいですね。
以上、パスワードかメールアドレスを変更した時に送信されるメールのカスタム方法でした。