web-dev-qa-db-fra.com

Envoyer un courrier automatique à l'administrateur lorsque l'utilisateur/le membre change/ajoute un profil

Est-il possible d'envoyer les valeurs mises à jour/ajoutées à partir du profil, lorsqu'un membre/utilisateur met à jour ses données, à l'administrateur du site ou à une autre adresse électronique?

Cela peut-il être le premier pas?

/* 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;
}

Quelle est la meilleure pratique pour envoyer des emails à partir de WordPress?

3
Fredag

vous avez tout à fait raison en ce qui concerne l'utilisation de personal_options_update, mais pour être sûr, ajoutez également edit_user_profile_update. et comme pour l'envoi d'emails dans WordPress, le meilleur moyen serait d'utiliser wp_mail , quelque chose comme ceci:

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