From f57ccf3ce26666f806d4381616b24f0d77679fc8 Mon Sep 17 00:00:00 2001 From: Jitendra Purohit Date: Sat, 5 Dec 2020 15:29:00 +0530 Subject: [PATCH] Allow Sendconfirmation api to override pay later receipt text --- CRM/Contribute/BAO/Contribution.php | 2 +- api/v3/Contribution.php | 5 +++++ tests/phpunit/api/v3/ContributionTest.php | 8 ++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index b7bbf5f323..fc388d6b2b 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -2839,7 +2839,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac //not really sure what params might be passed in but lets merge em into values $values = array_merge($this->_gatherMessageValues($input, $values, $ids), $values); $values['is_email_receipt'] = !$returnMessageText; - foreach (['receipt_date', 'cc_receipt', 'bcc_receipt', 'receipt_from_name', 'receipt_from_email', 'receipt_text'] as $fld) { + foreach (['receipt_date', 'cc_receipt', 'bcc_receipt', 'receipt_from_name', 'receipt_from_email', 'receipt_text', 'pay_later_receipt'] as $fld) { if (!empty($input[$fld])) { $values[$fld] = $input[$fld]; } diff --git a/api/v3/Contribution.php b/api/v3/Contribution.php index de6bf1b062..a2e112f76e 100644 --- a/api/v3/Contribution.php +++ b/api/v3/Contribution.php @@ -401,6 +401,7 @@ function civicrm_api3_contribution_sendconfirmation($params) { 'cc_receipt', 'bcc_receipt', 'receipt_text', + 'pay_later_receipt', 'payment_processor_id', ]; $input = array_intersect_key($params, array_flip($allowedParams)); @@ -441,6 +442,10 @@ function _civicrm_api3_contribution_sendconfirmation_spec(&$params) { 'title' => ts('Message (string)'), 'type' => CRM_Utils_Type::T_STRING, ]; + $params['pay_later_receipt'] = [ + 'title' => ts('Pay Later Message (string)'), + 'type' => CRM_Utils_Type::T_STRING, + ]; $params['receipt_update'] = [ 'title' => ts('Update the Receipt Date'), 'type' => CRM_Utils_Type::T_BOOLEAN, diff --git a/tests/phpunit/api/v3/ContributionTest.php b/tests/phpunit/api/v3/ContributionTest.php index 6efc949f33..d30a117cc7 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -3751,7 +3751,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase { ], [ 'Event', ]); - $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id']); + $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id'], $pageParams); $mut->stop(); } @@ -3786,21 +3786,24 @@ class api_v3_ContributionTest extends CiviUnitTestCase { * @param CiviMailUtils $mut * @param int $pageID Page ID * @param int $contributionID Contribution ID + * @param array $pageParams * * @throws \CRM_Core_Exception */ - public function checkReceiptDetails($mut, $pageID, $contributionID) { + public function checkReceiptDetails($mut, $pageID, $contributionID, $pageParams) { $pageReceipt = [ 'receipt_from_name' => "Page FromName", 'receipt_from_email' => "page_from@email.com", 'cc_receipt' => "page_cc@email.com", 'receipt_text' => "Page Receipt Text", + 'pay_later_receipt' => $pageParams['pay_later_receipt'], ]; $customReceipt = [ 'receipt_from_name' => "Custom FromName", 'receipt_from_email' => "custom_from@email.com", 'cc_receipt' => "custom_cc@email.com", 'receipt_text' => "Test Custom Receipt Text", + 'pay_later_receipt' => 'Mail your check to test@example.com within 3 business days.', ]; $this->callAPISuccess('ContributionPage', 'create', array_merge([ 'id' => $pageID, @@ -3813,6 +3816,7 @@ class api_v3_ContributionTest extends CiviUnitTestCase { ], $customReceipt)); //Verify if custom receipt details are present in email. + //Page receipt details shouldn't be included. $mut->checkMailLog(array_values($customReceipt), array_values($pageReceipt)); } -- 2.25.1