编辑配置文件时显示用户的旧数据

时间:2015-05-19 06:36:10

标签: wordpress

在我的网站中,用户角色学生教师。现在我编辑用户配置文件并将用户角色TEACHER更改为STUDENT。我想发送邮件,但我也希望显示旧值。我使用以下代码:

function user_profile_update($userid) {
    $userdata = get_userdata($userid);//get updated user data 
    print_r($userdata);// print values
    die("check");//stop the screen
}
add_action('profile_update','user_profile_update');

请帮我打印旧值。

2 个答案:

答案 0 :(得分:0)

I found answer myself if this help any one please use so i post answer 
set_transient function are save data for save old data and use it when send mail.

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 );

答案 1 :(得分:0)

对于其他任何人,这里有一个基于原始问题和代码的替代方案:

他们使用profile_update()有正确的想法,但忘记添加其他参数,userID然后$show_old_values ....

function user_profile_update($userid, $olduserdata) {
    $userdata = get_userdata($userid);//get updated user data 
    print_r($userdata);// print values
    print_r($olduserdata);// print old values
    die("check");//stop the screen
}

add_action('profile_update','user_profile_update', get_current_user_id(), 2);

如果您需要插入userID以获取我们更新为2的参数数量参数,则这两个参数为$userid$old_user_data ...

https://codex.wordpress.org/Plugin_API/Action_Reference/profile_update