2015-05-19 49 views
-1

在我的网站上有用户角色学生教师。现在我编辑用户配置文件并将用户角色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

你觉得那里的老数据去,一旦你已经改变了吗? – flomei

+0

我想发送这样的邮件:你的旧角色是学生和新角色使用教师 – Sourabh

+0

你可以添加一个钩子到edit_user_profile_update并从那里发送邮件。 – flomei

回答

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

相关问题