From 238ea0e414eeb1454df121b30c002c7d2be13e39 Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Mon, 16 Sep 2019 15:38:52 +0530 Subject: [PATCH] dev/core#1255 - fix display of email address on pay later contribution --- CRM/Contribute/Form/ContributionBase.php | 13 ++++++++++--- .../Contribute/Form/Contribution/ThankYouTest.php | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CRM/Contribute/Form/ContributionBase.php b/CRM/Contribute/Form/ContributionBase.php index f548666ada..85469e4e40 100644 --- a/CRM/Contribute/Form/ContributionBase.php +++ b/CRM/Contribute/Form/ContributionBase.php @@ -577,9 +577,16 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } $this->assignPaymentFields(); - $this->assign('email', - $this->controller->exportValue('Main', "email-{$this->_bltID}") - ); + if ($this->_emailExists && empty($this->_params["email-{$this->_bltID}"])) { + foreach ($this->_params as $key => $val) { + if (substr($key, 0, 6) == 'email-') { + $this->assign('email', $this->_params[$key]); + } + } + } + else { + $this->assign('email', CRM_Utils_Array::value("email-{$this->_bltID}", $this->_params)); + } // also assign the receipt_text if (isset($this->_values['receipt_text'])) { diff --git a/tests/phpunit/CRM/Contribute/Form/Contribution/ThankYouTest.php b/tests/phpunit/CRM/Contribute/Form/Contribution/ThankYouTest.php index c4bfa47465..654ecc11d1 100644 --- a/tests/phpunit/CRM/Contribute/Form/Contribution/ThankYouTest.php +++ b/tests/phpunit/CRM/Contribute/Form/Contribution/ThankYouTest.php @@ -84,9 +84,11 @@ class CRM_Contribute_Form_Contribution_ThankYouTest extends CiviUnitTestCase { $pageContribution = $this->getPageContribution((($withPendingContribution) ? 2 : 1), $isTestContribution); $form = $this->getThankYouForm(); $form->_lineItem = []; + $form->_bltID = 5; $form->_params['contributionID'] = $pageContribution['contribution_id']; $form->_params['invoiceID'] = $pageContribution['invoice_id']; + $form->_params['email-5'] = 'demo@example.com'; $form->_params['payment_processor_id'] = $paymentProcessorID; if ($isTestContribution) { $form->_mode = 'test'; -- 2.25.1