web-dev-qa-db-ja.com

ユーザー/メンバーがプロフィールを変更/追加したときに管理者に自動メールを送信する

メンバー/ユーザーが自分のデータを更新したときに、プロファイルから更新/追加された値をサイトの管理者または別のEメールアドレスに送信する方法はありますか?

これが最初のステップですか?

/* do something when user edits profile */
add_action('personal_options_update', 'notify_admin_on_update');
function notify_admin_on_update(){
  // send a mail with the updated values to [email protected]
  exit;
}

WordPress内から電子メールを送信するのに最適な実例は何ですか?

3
Fredag

personal_options_updateを使うことについての最初の部分は正しいですが、安全のためにedit_user_profile_updateも追加してください。そしてWordPress内での電子メール送信に関しては wp_mail を使用するのが最善の方法です。

add_action( 'personal_options_update', 'notify_admin_on_update' );
add_action( 'edit_user_profile_update','notify_admin_on_update');
function notify_admin_on_update(){
    global $current_user;
    get_currentuserinfo();

    if (!current_user_can( 'administrator' )){// avoid sending emails when admin is updating user profiles
        $to = '[email protected]';
        $subject = 'user updated profile';
        $message = "the user : " .$current_user->display_name . " has updated his profile with:\n";
        foreach($_POST as $key => $value){
            $message .= $key . ": ". $value ."\n";
        }
        wp_mail( $to, $subject, $message);
    }
}
10
Bainternet