From b6f5751b7ba4a15185aca96a3ec0c1fa4d5a239e Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Thu, 29 Jun 2017 21:54:01 +0000 Subject: [PATCH] CRM-20789 Add check based on mailing_type following chat with Tim to ensure only deailing with AB tests --- CRM/Mailing/Event/BAO/Unsubscribe.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CRM/Mailing/Event/BAO/Unsubscribe.php b/CRM/Mailing/Event/BAO/Unsubscribe.php index ee7b45137c..fb79d689bc 100644 --- a/CRM/Mailing/Event/BAO/Unsubscribe.php +++ b/CRM/Mailing/Event/BAO/Unsubscribe.php @@ -158,10 +158,12 @@ WHERE email = %2 WHERE $job.id = " . CRM_Utils_Type::escape($job_id, 'Integer')); $do->fetch(); $mailing_id = $do->mailing_id; + $mailing_type = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_Mailing', $mailing_id, 'mailing_type', 'id'); $entity = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_MailingGroup', $mailing_id, 'entity_table', 'mailing_id'); - // If $entity is null then most likely we are dealing with an AB test - if (empty($entity)) { + // If $entity is null and $mailing_Type is either winner or experiment then we are deailing with an AB test + $abtest_types = array('experiment', 'winner'); + if (empty($entity) && in_array($mailing_type, $abtest_types)) { $mailing_id_a = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_MailingAB', $mailing_id, 'mailing_id_a', 'mailing_id_b'); $field = 'mailing_id_b'; if (empty($mailing_id_a)) { @@ -170,7 +172,7 @@ WHERE email = %2 } $jobJoin = "INNER JOIN $ab ON $ab.mailing_id_a = $mg.mailing_id INNER JOIN $job ON $job.mailing_id = $ab.$field"; - $entity = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_MailingGroup', $maiing_id_a, 'entity_table', 'mailing_id'); + $entity = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_MailingGroup', $mailing_id_a, 'entity_table', 'mailing_id'); } else { $jobJoin = "INNER JOIN $job ON $job.mailing_id = $mg.mailing_id"; -- 2.25.1