$strtolower = function_exists('mb_strtolower') ? 'mb_strtolower' : 'strtolower';
$email->email = $strtolower($email->email);
- // since we're setting bulkmail for 1 of this contact's emails, first reset all their emails to is_bulkmail false
- // (only 1 email address can have is_bulkmail = true)
+ /*
+ * since we're setting bulkmail for 1 of this contact's emails, first reset all their other emails to is_bulkmail false
+ * We shouldn't not set the current email to false even though we
+ * are about to reset it to avoid contaminating the changelog if logging is enabled
+ * (only 1 email address can have is_bulkmail = true)
+ */
if ($email->is_bulkmail != 'null' && $params['contact_id'] && !self::isMultipleBulkMail()) {
$sql = "
UPDATE civicrm_email
SET is_bulkmail = 0
WHERE contact_id = {$params['contact_id']}
";
+ if($hook == 'edit'){
+ $sql .= " AND id <> {$params['id']}";
+ }
CRM_Core_DAO::executeQuery($sql);
}