dev/core#1255 - fix display of email address on pay later contribution
authorJitendra Purohit <jitendra@fuzion.co.nz>
Mon, 16 Sep 2019 10:08:52 +0000 (15:38 +0530)
committerJitendra Purohit <jitendra@fuzion.co.nz>
Wed, 6 Nov 2019 11:45:42 +0000 (17:15 +0530)
CRM/Contribute/Form/ContributionBase.php
tests/phpunit/CRM/Contribute/Form/Contribution/ThankYouTest.php

index f548666ada042fde77152d426b3650e91426671e..85469e4e400f5ddc8f6ed309caff7d457b77b8e4 100644 (file)
@@ -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'])) {
index c4bfa47465695dbbb4f1b106fe5c84691da114ed..654ecc11d19dbae7e1308a47de853e100b5a92b5 100644 (file)
@@ -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';