Skip to content

Commit

Permalink
Merge pull request #19129 from jitendrapurohit/paylaterreceipt
Browse files Browse the repository at this point in the history
Allow Sendconfirmation api to override pay later receipt text
  • Loading branch information
mattwire authored Dec 5, 2020
2 parents 812fd9f + f57ccf3 commit 30d51f5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
2 changes: 1 addition & 1 deletion CRM/Contribute/BAO/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}
Expand Down
5 changes: 5 additions & 0 deletions api/v3/Contribution.php
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down Expand Up @@ -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,
Expand Down
8 changes: 6 additions & 2 deletions tests/phpunit/api/v3/ContributionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down Expand Up @@ -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,
Expand All @@ -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));
}

Expand Down

0 comments on commit 30d51f5

Please sign in to comment.