You are here

function multiple_email_usermerge_merge_accounts in User Merge 7.2

Implements hook_usermerge_merge_accounts() on behalf of multiple_email.

File

includes/multiple_email.usermerge.inc, line 93
Adds support for Multiple E-mail. Supplemental include loaded via usermerge_load_includes().

Code

function multiple_email_usermerge_merge_accounts($user_to_delete, $user_to_keep, $review) {
  $emails_to_keep = $review['multiple_email']['multiple_email']['options'];
  if ($emails_to_keep == 'merge') {
    $query = db_update('multiple_email')
      ->fields(array(
      'uid' => $user_to_keep->uid,
    ))
      ->condition('uid', $user_to_delete->uid)
      ->execute();

    // Make sure $user_to_keep's primary email remains primary
    // Necessary because support for regular mail property is disabled by this extension
    multiple_email_make_primary(multiple_email_find_address($user_to_keep->mail));
  }
  else {
    $emails_to_delete = $emails_to_keep == 'user_to_keep' ? 'user_to_delete' : 'user_to_keep';
    $query_delete = db_delete('multiple_email')
      ->condition('uid', ${$emails_to_delete}->uid)
      ->execute();

    // This fires only if the emails to keep are those of the account to delete
    // If not, this would be redundant
    if ($emails_to_keep == 'user_to_delete') {
      $query_update = db_update('multiple_email')
        ->fields(array(
        'uid' => $user_to_keep->uid,
      ))
        ->condition('uid', ${$emails_to_keep}->uid)
        ->execute();
    }

    // Make sure $emails_to_keep's primary email remains primary
    multiple_email_make_primary(multiple_email_find_address(${$emails_to_keep}->mail));
  }
}