Skip to content

Commit

Permalink
fixes event#64: Send event confirmation to submitted email address
Browse files Browse the repository at this point in the history
  • Loading branch information
MegaphoneJon committed Oct 5, 2021
1 parent f37e22a commit 2ba7b9e
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 5 deletions.
8 changes: 4 additions & 4 deletions CRM/Event/BAO/Event.php
Original file line number Diff line number Diff line change
Expand Up @@ -1108,9 +1108,9 @@ public static function sendMail($contactID, $values, $participantId, $isTest = F

if ($values['event']['is_email_confirm'] || $returnMessageText) {
list($displayName, $email) = CRM_Contact_BAO_Contact_Location::getEmailDetails($contactID);

$notifyEmail = CRM_Utils_Array::valueByRegexKey('/^email-/', $participantParams) ?? $email;
//send email only when email is present
if (isset($email) || $returnMessageText) {
if (isset($notifyEmail) || $returnMessageText) {
$preProfileID = $values['custom_pre_id'] ?? NULL;
$postProfileID = $values['custom_post_id'] ?? NULL;

Expand Down Expand Up @@ -1153,7 +1153,7 @@ public static function sendMail($contactID, $values, $participantId, $isTest = F
$customPostTitles = NULL;
}
$tplParams = array_merge($values, $participantParams, [
'email' => $email,
'email' => $notifyEmail,
'confirm_email_text' => $values['event']['confirm_email_text'] ?? NULL,
'isShowLocation' => $values['event']['is_show_location'] ?? NULL,
// The concept of contributeMode is deprecated.
Expand Down Expand Up @@ -1233,7 +1233,7 @@ public static function sendMail($contactID, $values, $participantId, $isTest = F
else {
$sendTemplateParams['from'] = CRM_Utils_Array::value('confirm_from_name', $values['event']) . " <" . CRM_Utils_Array::value('confirm_from_email', $values['event']) . ">";
$sendTemplateParams['toName'] = $displayName;
$sendTemplateParams['toEmail'] = $email;
$sendTemplateParams['toEmail'] = $notifyEmail;
$sendTemplateParams['autoSubmitted'] = TRUE;
$sendTemplateParams['cc'] = CRM_Utils_Array::value('cc_confirm',
$values['event']
Expand Down
5 changes: 4 additions & 1 deletion CRM/Event/Form/Registration/ThankYou.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,10 @@ public function buildQuickForm() {
// Assign the email address from a contact id lookup as in CRM_Event_BAO_Event->sendMail()
$primaryContactId = $this->get('primaryContactId');
if ($primaryContactId) {
list($displayName, $email) = CRM_Contact_BAO_Contact_Location::getEmailDetails($primaryContactId);
$email = CRM_Utils_Array::valueByRegexKey('/^email-/', current($this->_params));
if (!$email) {
$email = CRM_Contact_BAO_Contact::getPrimaryEmail($primaryContactId);
}
$this->assign('email', $email);
}
$this->assignToTemplate();
Expand Down
68 changes: 68 additions & 0 deletions tests/phpunit/CRM/Event/Form/Registration/ConfirmTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -595,4 +595,72 @@ public function testNoteSubmission(): void {
$this->submitWithNote($event, $contact_id);
}

/**
* event#64 - ensure we send to the submitted email, not the primary email when they differ.
*
* @throws \Exception
*/
public function testSubmitNonPrimaryEmail(): void {
$event = $this->eventCreate();
$mut = new CiviMailUtils($this, TRUE);
$cid = $this->createLoggedInUser();
CRM_Event_Form_Registration_Confirm::testSubmit([
'id' => $event['id'],
'contributeMode' => 'direct',
'registerByID' => $cid,
'params' => [
[
'qfKey' => 'e6eb2903eae63d4c5c6cc70bfdda8741_2801',
'entryURL' => 'http://dmaster.local/civicrm/event/register?reset=1&amp;id=3',
'first_name' => 'k',
'last_name' => 'p',
'email-Other' => 'nonprimaryemail@example.com',
'hidden_processor' => '1',
'credit_card_number' => '4111111111111111',
'cvv2' => '123',
'credit_card_exp_date' => [
'M' => '1',
'Y' => '2019',
],
'credit_card_type' => 'Visa',
'billing_first_name' => 'p',
'billing_middle_name' => '',
'billing_last_name' => 'p',
'billing_street_address-5' => 'p',
'billing_city-5' => 'p',
'billing_state_province_id-5' => '1061',
'billing_postal_code-5' => '7',
'billing_country_id-5' => '1228',
'priceSetId' => '6',
'price_7' => [
13 => 1,
],
'payment_processor_id' => '1',
'bypass_payment' => '',
'MAX_FILE_SIZE' => '33554432',
'is_primary' => 1,
'is_pay_later' => 0,
'campaign_id' => NULL,
'defaultRole' => 1,
'participant_role_id' => '1',
'currencyID' => 'USD',
'amount_level' => 'Tiny-tots (ages 5-8) - 1',
'amount' => '800.00',
'tax_amount' => NULL,
'year' => '2019',
'month' => '1',
'ip_address' => '127.0.0.1',
'invoiceID' => '57adc34957a29171948e8643ce906332',
'button' => '_qf_Register_upload',
'billing_state_province-5' => 'AP',
'billing_country-5' => 'US',
],
],
]);

$mut->checkMailLog(['nonprimaryemail@example.com']);
$mut->stop();
$mut->clearMessages();
}

}

0 comments on commit 2ba7b9e

Please sign in to comment.