diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index b7bbf5f32371..fc388d6b2b9d 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -2839,7 +2839,7 @@ public function composeMessageArray(&$input, &$ids, &$values, $returnMessageText //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 de6bf1b0629a..a2e112f76e30 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 6efc949f33fb..d30a117cc754 100644 --- a/tests/phpunit/api/v3/ContributionTest.php +++ b/tests/phpunit/api/v3/ContributionTest.php @@ -3751,7 +3751,7 @@ public function testSendconfirmationPayLater() { ], [ 'Event', ]); - $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id']); + $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id'], $pageParams); $mut->stop(); } @@ -3786,21 +3786,24 @@ public function checkCreditCardDetails($mut, $contributionID) { * @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 @@ public function checkReceiptDetails($mut, $pageID, $contributionID) { ], $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)); }