function profile_usermerge_merge_users in User Merge 6
Same name and namespace in other branches
- 7 usermerge.module \profile_usermerge_merge_users()
Implement hook_usermerge_merge_users() on behalf of profile module.
File
- ./
usermerge.module, line 248 - Main file for the user merge module, which re-assigns data from an abandoned account to a live one.
Code
function profile_usermerge_merge_users($user_to_delete, $user_to_keep) {
// Get kept-user's filled profile values.
$result = db_query("SELECT fid FROM {profile_values} WHERE uid = %d AND VALUE != ''", $user_to_keep->uid);
$kept = array();
while ($record = db_fetch_array($result)) {
$kept[] = $record['fid'];
}
if (!empty($kept)) {
// Remove profile values for blocked-user that kept-user has.
db_query('DELETE FROM {profile_values} WHERE uid = %d AND fid IN (%s)', $user_to_delete->uid, implode(',', $kept));
}
// Remove empty profile values for kept-user.
db_query("DELETE FROM {profile_values} WHERE uid = %d AND VALUE = ''", $user_to_keep->uid);
// Change uid.
db_query('UPDATE {profile_values} SET uid = %d WHERE uid = %d', $user_to_keep->uid, $user_to_delete->uid);
}