//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;
- if (!empty($input['receipt_date'])) {
- $values['receipt_date'] = $input['receipt_date'];
+ foreach (['receipt_date', 'cc_receipt', 'bcc_receipt', 'receipt_from_name', 'receipt_from_email', 'receipt_text'] as $fld) {
+ if (!empty($input[$fld])) {
+ $values[$fld] = $input[$fld];
+ }
}
$template = $this->_assignMessageVariablesToTemplate($values, $input, $returnMessageText);
], [
'Event',
]);
+ $this->checkReceiptDetails($mut, $contributionPage['id'], $contribution['id']);
$mut->stop();
}
]);
}
+ /**
+ * Check receipt details in sent mail via API
+ *
+ * @param CiviMailUtils $mut
+ * @param int $pageID Page ID
+ * @param int $contributionID Contribution ID
+ *
+ * @throws \CRM_Core_Exception
+ */
+ public function checkReceiptDetails($mut, $pageID, $contributionID) {
+ $pageReceipt = [
+ 'receipt_from_name' => "Page FromName",
+ 'receipt_from_email' => "page_from@email.com",
+ 'cc_receipt' => "page_cc@email.com",
+ 'receipt_text' => "Page Receipt Text",
+ ];
+ $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",
+ ];
+ $this->callAPISuccess('ContributionPage', 'create', array_merge([
+ 'id' => $pageID,
+ 'is_email_receipt' => 1,
+ ], $pageReceipt));
+
+ $this->callAPISuccess('contribution', 'sendconfirmation', array_merge([
+ 'id' => $contributionID,
+ 'payment_processor_id' => $this->paymentProcessorID,
+ ], $customReceipt));
+
+ //Verify if custom receipt details are present in email.
+ $mut->checkMailLog(array_values($customReceipt), array_values($pageReceipt));
+ }
+
/**
* Test sending a mail via the API.
*/