【WordPress】パスワード変更、リセット時に自動送信されるメールをカスタマイズする

こんにちは!CODE CLUB965のKです!

今回も、WordPressで自動送信されるメールのカスタマイズ方法について書こうと思います。

これまでの記事では、

・メールアドレス変更時に送信されるメールを編集する
・送信元メールアドレスと差出人名を変更する
・ユーザー登録時に送信されるメールを編集する

の方法についてについて書きました。

こちら読んでいない方はぜひ読んでください!

今回は、管理画面で

パスワード変更やリセットした時に自動送信されるメールをカスタマイズする

方法について書いていきます。

パスワード変更時に自動送信されるメールを編集する

管理者画面でユーザーのパスワードを変更した時にWordPressから自動送信されるメールをカスタマイズします。

このメールは登録者へは送信されますが、管理者へは送信されません。

password_change_email」のフックを利用すればOKです。

/* パスワード変更時に送信されるメールをカスタマイズ */
function custom_password_change_email( $password_change_email ) {
 
 // 件名を編集
 $subject = 'パスワード変更のお知らせ';
 
 // メッセージを編集
 $message = '###USERNAME### 様' . "\r\n";
 $message .= "\r\n";
 $message .= '###SITENAME###で、あなたのパスワードが変更されました。' . "\r\n";
 $message .= "\r\n";
 $message .= 'パスワードを変更した覚えがない場合は、' . "\r\n";
 $message .= '管理者「###ADMIN_EMAIL###」までご連絡ください。';
 
 // 件名とメッセージの表示
 $password_change_email[ 'subject' ] = $subject;
 $password_change_email[ 'message' ] = $message;
 return $password_change_email;
}
add_filter( 'password_change_email', 'custom_password_change_email' );

上記の「###USERNAME###」などは、「password_change_email」のフックで使用できる「特別な文字列」です。
以下に使用できる文字列を記載しておきます。

「password_change_email」で使用できる文字列
・###USERNAME###(ユーザー名)
・###EMAIL###(メールアドレス)
・###SITENAME###(サイト名)
・###SITEURL###(サイトURL)
・###ADMIN_EMAIL###(管理者メールアドレス)

パスワードリセット時に送信されるメールを編集する

パスワードリセット時にWordPressから自動送信されるメールをカスタマイズします。
この自動送信メールは登録者宛と管理者宛のメールがあります。

それぞれ見ていきましょう。

登録者宛のメール

登録者宛のメールのカスタマイズですが、件名は「retrieve_password_title」のフックを使用し、メッセージは「retrieve_password_message」を使用します。

まず、件名は以下のように書くことでカスタマイズできます。

/* パスワードリセット時に「登録者」へ自動送信されるメールをカスタマイズ */
/* 件名 */
function custom_retrieve_password_title( $title, $user_login, $user_data ) {
 $title = 'パスワードリセットのお知らせ';
 return $title;
}
add_filter( 'retrieve_password_title', 'custom_retrieve_password_title', 10, 3 );

メッセージ内容を変更する場合は以下のように記述します。

/* パスワードリセット時に「登録者」へ自動送信されるメールをカスタマイズ */
/* メッセージ内容 */
function custom_retrieve_password_message( $message, $key, $user_login, $user_data ) {
 
 // サイト情報取得
 $blogname = stripslashes( get_option( 'blogname' ) );
 
 // メッセージ
 $message = $user_login . ' 様' . "\r\n";
 $message .= "\r\n";
 $message .= 'あなたのアカウントで、パスワードのリセットが要求されました。' . "\r\n";
 $message .= "\r\n";
 $message .= 'もし身に覚えがない場合は、このメールは無視してください。' . "\r\n";
 $message .= 'パスワードをリセットする場合は、次のリンクをクリックしてください。' . "\r\n";
 $message .= 'パスワード変更画面にアクセスされますので、新しいパスワードを入力してください。' . "\r\n";
 $message .= "\r\n";
 $message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode(    $user_login ), 'login' ) . "\r\n";
 $message .= "\r\n";
 $message .= $blogname;
 
 //メッセージ表示
 return $message;
}
add_filter( 'retrieve_password_message', 'custom_retrieve_password_message', 10, 4 );

管理者宛のメール

管理者宛のメールのカスタマイズは、「wp_password_change_notification_email」のフックを利用します。

/* パスワードリセット時に「管理者」へ送信されるメールをカスタマイズ */
function custom_password_change_notification_email( $password_change_notification_email, $user, $blogname ) {
	
 // 件名
 $subject = 'パスワードリセットのお知らせ';
 
 // ユーザー情報取得
 $user_name = stripslashes( $user->user_login );
 
 //メッセージを編集
 $message .= $user_name . '様のパスワードがリセットされました。' . "\r\n";
 $message .= "\r\n";
 $message .= 'このメールは、パスワードリセットが完了した後に送信されました。';
 
 //件名とメッセージ表示
 $password_change_notification_email[ 'subject' ] = $subject;
 $password_change_notification_email[ 'message' ] = $message;
 return $password_change_notification_email;
}
add_filter( 'wp_password_change_notification_email', 'custom_password_change_notification_email', 10, 3 );

最後に

今回は、パスワードを変更した時やパスワードリセット時に自動送信されるメールのカスタマイズ方法について書きました。

数回に分けてWordPressの自動送信メールのカスタマイズの方法について書きましたが、いかがでしたでしょうか。

様々なフックを利用したと思いますが、中々覚えるのは大変だと思うので、自動送信メールをカスタマイズしたい時に記事を参考にしていただければと思います!

それでは、また!

Follow me!