Allow Sendconfirmation api to override pay later receipt text
authorJitendra Purohit <jitendra@fuzion.co.nz>
Sat, 5 Dec 2020 09:59:00 +0000 (15:29 +0530)
committerJitendra Purohit <jitendra@fuzion.co.nz>
Sat, 5 Dec 2020 09:59:00 +0000 (15:29 +0530)
CRM/Contribute/BAO/Contribution.php
api/v3/Contribution.php
tests/phpunit/api/v3/ContributionTest.php

index b7bbf5f323715235ec3f5d1d65d12254eb2e71e6..fc388d6b2b9d24a30a266990861e7121c3b84a08 100644 (file)
@@ -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];
       }
index de6bf1b0629acebab79c343281b1c8ec3681c82b..a2e112f76e30cde4af08d12749f6a7ba36a339d2 100644 (file)
@@ -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,
index 6efc949f33fbf7aa5c7761e9ad23cd3a5707dde7..d30a117cc754bd3e737f9bffe072892ea0b22602 100644 (file)
@@ -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));
   }