2015-05-19 52 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

相關問題