Skip to content

Instantly share code, notes, and snippets.

@nciske
Forked from RevConcept/profile-change-notice.php
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nciske/9682725 to your computer and use it in GitHub Desktop.
Save nciske/9682725 to your computer and use it in GitHub Desktop.
<?php
// THIS WORKS FINE
function sr_user_profile_update_email( $user_id, $old_user_data ) {
$user = get_userdata( $user_id );
if($old_user_data->user_email != $user->user_email) {
$admin_email = "chris@revelationconcept.com";
$message = sprintf( __( 'This user has updated their profile on the SchoolRise USA Staff Member site.' ) ) . "\r\n\r\n";
$message .= sprintf( __( 'Display Name: %s' ), $user->display_name ). "\r\n\r\n";
$message .= sprintf( __( 'Old Email: %s' ), $old_user_data->user_email ). "\r\n\r\n";
$message .= sprintf( __( 'New Email: %s' ), $user->user_email ). "\r\n\r\n";
wp_mail( $admin_email, sprintf( __( '[Staff Member Site] User Profile Update' ), get_option('blogname') ), $message );
}
}
add_action( 'profile_update', 'sr_user_profile_update_email', 10, 2 );
// THIS NOW WORKS
function sr_user_profile_update_phone( $user_id, $old_user_data ) {
$old_user_data = get_transient( 'sr_old_user_data_' . $user_id );
if($old_user_data->phone != $user->phone) {
$user = get_userdata( $user_id );
$admin_email = "chris@revelationconcept.com";
$message = sprintf( __( 'This user has updated their profile on the SchoolRise USA Staff Member site.' ) ) . "\r\n\r\n";
$message .= sprintf( __( 'Display Name: %s' ), $user->display_name ). "\r\n\r\n";
$message .= sprintf( __( 'Old Phone: %s' ), $old_user_data->phone ). "\r\n\r\n";
$message .= sprintf( __( 'New Phone: %s' ), $user->phone ). "\r\n\r\n";
wp_mail( $admin_email, sprintf( __( '[Staff Member Site] User Profile Update' ), get_option('blogname') ), $message );
}
}
add_action( 'profile_update', 'sr_user_profile_update_phone', 10, 2 );
// Save old user data and meta for later comparison
function sr_old_user_data_transient(){
$user_id = get_current_user_id();
$user_data = get_userdata( $user_id );
$user_meta = get_user_meta( $user_id );
foreach( $user_meta as $key=>$val ){
$user_data->data->$key = current($val);
}
// 1 hour should be sufficient
set_transient( 'sr_old_user_data_' . $user_id, $user_data->data, 60 * 60 );
}
add_action('show_user_profile', 'sr_old_user_data_transient');
// Cleanup when done
function sr_old_user_data_cleanup( $user_id, $old_user_data ){
delete_transient( 'sr_old_user_data_' . $user_id );
}
add_action( 'profile_update', 'sr_old_user_data_cleanup', 1000, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment