WordPressにユーザーが新規登録した際に送られる標準の登録完了メール(ユーザ名、パスワード、ログインURL)の内容をすこしだけ変更したかったので、カスタマイズ方法を調べたメモです。
参考記事
- Function Reference/wp new user notification « WordPress Codex
- Customizing the new user email with a pluggable function » Steve Taylor
手順
-
上の参考記事1の「Examples」のコードをコピーして <?php ~ ?> で囲み、phpファイルとして(例えば「my_new_user_mail.php」などとして)保存します。
12345678910111213141516171819202122232425262728293031323334353637383940<?php// Redefine user notification functionif ( !function_exists('wp_new_user_notification') ) {function wp_new_user_notification( $user_id, $plaintext_pass = '' ) {$user = new WP_User( $user_id );$user_login = stripslashes( $user->user_login );$user_email = stripslashes( $user->user_email );$message = sprintf( __('New user registration on %s:'), get_option('blogname') ) . "\r\n\r\n";$message .= sprintf( __('Username: %s'), $user_login ) . "\r\n\r\n";$message .= sprintf( __('E-mail: %s'), $user_email ) . "\r\n";@wp_mail(get_option('admin_email'),sprintf(__('[%s] New User Registration'), get_option('blogname') ),$message);if ( empty( $plaintext_pass ) )return;$message = __('Hi there,') . "\r\n\r\n";$message .= sprintf( __("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n";$message .= wp_login_url() . "\r\n";$message .= sprintf( __('Username: %s'), $user_login ) . "\r\n";$message .= sprintf( __('Password: %s'), $plaintext_pass ) . "\r\n\r\n";$message .= sprintf( __('If you have any problems, please contact me at %s.'), get_option('admin_email') ) . "\r\n\r\n";$message .= __('Adios!');wp_mail($user_email,sprintf( __('[%s] Your username and password'), get_option('blogname') ),$message);}}?> -
同記事の「Notes」に「This function can be replaced via plugins」とありますが、Pluggable Functions として登録されている関数はプラグイン内で再定義できるようです。
なので、上のコードにプラグインヘッダーを追加し、プラグイン化します。1234567891011<?php/*Plugin Name: My New User MailDescription: Redefine user notification function*/// Redefine user notification functionif ( !function_exists('wp_new_user_notification') ) {(略)?> -
作成した「my_new_user_mail.php」をプラグインディレクトリ(/wp-content/plugins/)にアップロードします。
-
管理画面の「インストール済みプラグイン」に「My New User Mail」が追加されるので、有効化します。
テスト
-
テストに際して一時的に、管理画面の「設定:一般設定」の「メンバーシップ」を「だれでもユーザー登録ができるようにする」にチェックします。
-
一旦ログアウトして、WordPressのログインページ(wp-login.php)から、「登録ページ」(wp-login.php?action=register)を開きます。
-
新規ユーザーとして登録します。
-
受信した登録完了通知メールの内容が変わったか確認します。
12345678910111213Hi there,Welcome to (サイト名)! Here's how to log in:http://(サイトURL)/wp-login.phpユーザー名: (ユーザー名)パスワード: (パスワード文字列)If you have any problems, please contact me at (管理者のメールアドレス).Adios!
カスタマイズ
テストで、通知メールの内容が変わったことが確認できたので、あとは自由に変更します。
下記のマークされた部分がユーザー宛てのメッセージ内容になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
<?php /* Plugin Name: My New User Mail Description: Redefine user notification function */ // Redefine user notification function if ( !function_exists('wp_new_user_notification') ) { function wp_new_user_notification( $user_id, $plaintext_pass = '' ) { $user = new WP_User( $user_id ); $user_login = stripslashes( $user->user_login ); $user_email = stripslashes( $user->user_email ); $message = sprintf( __('New user registration on %s:'), get_option('blogname') ) . "\r\n\r\n"; $message .= sprintf( __('Username: %s'), $user_login ) . "\r\n\r\n"; $message .= sprintf( __('E-mail: %s'), $user_email ) . "\r\n"; @wp_mail( get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname') ), $message ); if ( empty( $plaintext_pass ) ) return; $message = __('Hi there,') . "\r\n\r\n"; $message .= sprintf( __("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n"; $message .= wp_login_url() . "\r\n"; $message .= sprintf( __('Username: %s'), $user_login ) . "\r\n"; $message .= sprintf( __('Password: %s'), $plaintext_pass ) . "\r\n\r\n"; $message .= sprintf( __('If you have any problems, please contact me at %s.'), get_option('admin_email') ) . "\r\n\r\n"; $message .= __('Adios!'); wp_mail( $user_email, sprintf( __('[%s] Your username and password'), get_option('blogname') ), $message ); } } ?> |
コメントを残す