当从后端/管理员在用户编辑页面中更新用户wordpress配置文件时,我正在尝试更新BuddyBoss配置文件。(基本上我想同步数据)。我有这个功能:
function BB_WP_SYNC_update_BB_profile( $user_id ) {
// Get user information
$country = get_user_meta($user_id, \'ofc_country\', true);
error_log($country);
$region = get_user_meta($user_id, \'ofc_regional_organisation\', true);
error_log($region);
$gender = get_user_meta($user_id, \'ofc_gender\', true);
error_log($gender);
$dob = get_user_meta($user_id, \'ofc_date_of_birth\', true);
$timestamp = strtotime(str_replace(\'/\', \'-\', $dob));
$date = date(\'Y-m-d H:i:s\', $timestamp);
//Update BuddyBoss Profile
xprofile_set_field_data(\'Country\', $user_id, $country, true);
xprofile_set_field_data(\'Regional Organisation\', $user_id, $region, true);
xprofile_set_field_data(\'Gender\', $user_id, $gender, true);
xprofile_set_field_data(\'Date of Birth\', $user_id, $date, true);
}
add_action( \'edit_user_profile_update\', \'BB_WP_SYNC_update_BB_profile\');
add_action( \'personal_options_update\', \'BB_WP_SYNC_update_BB_profile\');
此函数获取的用户信息是更新之前的旧信息。例如,如果我将国家/地区从澳大利亚更改为塔希提岛,则函数中的$Country设置为澳大利亚。
我必须再次单击update profile按钮,它才能获得新的值(显然是第一次单击时设置的),然后它才能正确地更新BuddyBoss。
似乎是“edit\\u user\\u profile\\u update”&;\'personal\\u options\\u update“在更新用户元字段之前挂接。
是否有其他方法可以确保用户元字段和;在钩子触发之前更新用户字段?