function profile_usermerge_merge_users in User Merge 7
Same name and namespace in other branches
- 6 usermerge.module \profile_usermerge_merge_users()
Implement hook_usermerge_merge_users() on behalf of profile module.
File
- ./
usermerge.module, line 236 - 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) {
// retrieve kept-user's user field values
if (module_exists('profile')) {
//testing for profile, which is hidden in D6
$result = db_query("SELECT fid FROM {profile_value} WHERE uid = :uid AND VALUE <> ''", array(
':uid' => $user_to_keep->uid,
));
$kept = array();
foreach ($result as $record) {
$kept[] = $record->fid;
}
if (!empty($kept)) {
// Remove profile values for blocked-user that kept-user has.
db_delete('profile_value')
->condition('uid', $user_to_delete->uid)
->condition('fid', $kept, 'IN')
->execute();
}
// Remove empty profile values for kept-user.
db_delete('profile_value')
->condition('uid', $user_to_keep->uid)
->condition('VALUE', '')
->execute();
// Change uid.
db_update('profile_value')
->fields(array(
'uid' => $user_to_keep->uid,
))
->condition('uid', $user_to_delete->uid)
->execute();
}
}