You are here

function profile_usermerge_merge_users in User Merge 6

Same name and namespace in other branches
  1. 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);
}