クローズドな会員サイトを運営している方からの依頼。
パスワードを忘れて変更されるユーザーが多いようなので、どのユーザーがどれくらいの頻度でパスワード変更しているのかを知りたいとのこと。
そこで、パスワード変更される際に、「パスワードの失効と変更」メール(admin_emailに送られるやつ)と同じものを、特定のメールアドレスへ送るようにした。
以下対応メモ。
- wp-includes/pluggables.php を開き、 wp_password_change_nofification() を探す
- wp-mail()でメールを送信しているので、メールを送りたい先を追記する
function wp_password_change_notification(&$user) { // send a copy of password change notification to the admin // but check to see if it's the admin whose password we're changing, and skip this if ( 0 !== strcasecmp( $user->user_email, get_option( 'admin_email' ) ) ) { $message = sprintf(__('Password Lost and Changed for user: %s'), $user->user_login) . "\r\n"; // The blogname option is escaped with esc_html on the way into the database in sanitize_option // we want to reverse this for the plain text arena of emails. $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); wp_mail(get_option('admin_email'), sprintf(__('[%s] Password Lost/Changed'), $blogname), $message); // 追記 wp_mail( 'your-desired-email@hoge.com', sprintf(__('[%s] Password Lost/Changed'), $blogname), $message); } }
この関数の中身を変更すると、パスワード変更のメールを送信しなかったり、文面を変えたりすることも容易にできる。