在我的网站中,用户角色学生和教师。现在我编辑用户配置文件并将用户角色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');
请帮我打印旧值。
答案 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