4

Is there a way to send the updated/added values from profile, when a member/user updates his/hers data, to the admin of the site or another emailadress?

Can this be the first step?

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

What is best pracice to send emails from within WordPress?

1 Answer 1

12

you got the first part right about using personal_options_update but to be on the safe side add edit_user_profile_update also. and as for sending emails within WordPress the best way would be to use wp_mail, So something like this:

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);
    }
}
9
  • Your if statement will assign 1 as the current user id, thus making anybody who updates a profile temporarily an administrator. Instead of using user id numbers, it makes more senese to check for permsissions: if( !current_user_can( 'administrator' ) ) Commented Mar 16, 2011 at 14:19
  • Thanks, Bainternet and John P Bloch! I used: if ($current_user->ID != 1){
    – Fredag
    Commented Mar 16, 2011 at 15:43
  • I have a second question to this issue:
    – Fredag
    Commented Jun 16, 2011 at 9:02
  • I have a second question to this issue: The above suggestions works well but I want to only show/email the data that was updated, not all of the users data. And is it possible to email the data when a specific field has been updated.
    – Fredag
    Commented Jun 16, 2011 at 9:09
  • that going to be hard since you don't have a compression point for what the data was before the update, but you can.
    – Bainternet
    Commented Jun 16, 2011 at 10:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.