From 0930231a2e7183367f26e94d45db98d997f518a3 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Tue, 17 Mar 2015 17:14:17 +1300 Subject: [PATCH] CRM-16125 more sensible default for completetransaction api email from address --- CRM/Core/Payment/BaseIPN.php | 4 ++-- api/v3/Contribution.php | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CRM/Core/Payment/BaseIPN.php b/CRM/Core/Payment/BaseIPN.php index 4cfe9ab88d..c64a8bfb1d 100644 --- a/CRM/Core/Payment/BaseIPN.php +++ b/CRM/Core/Payment/BaseIPN.php @@ -832,8 +832,8 @@ LIMIT 1;"; $userID = $session->get('userID'); if (!empty($userID)) { list($userName, $userEmail) = CRM_Contact_BAO_Contact_Location::getEmailDetails($userID); - $values['receipt_from_email'] = $userEmail; - $values['receipt_from_name'] = $userName; + $values['receipt_from_email'] = CRM_Utils_Array::value('receipt_from_email', $input, $userEmail); + $values['receipt_from_name'] = CRM_Utils_Array::value('receipt_from_name', $input, $userName); } } return $contribution->composeMessageArray($input, $ids, $values, $recur, $returnMessageText); diff --git a/api/v3/Contribution.php b/api/v3/Contribution.php index 9d340142fc..cf6c5f0b6b 100644 --- a/api/v3/Contribution.php +++ b/api/v3/Contribution.php @@ -440,6 +440,16 @@ function _civicrm_api3_contribution_completetransaction_spec(&$params) { 'title' => 'Send email Receipt?', 'type' => CRM_Utils_Type::T_BOOLEAN, ); + $params['receipt_from_email'] = array( + 'title' => 'Email to send receipt from.', + 'description' => 'If not provided this will default to being based on domain mail or contribution page', + 'type' => CRM_Utils_Type::T_EMAIL, + ); + $params['receipt_from_name'] = array( + 'title' => 'Name to send receipt from', + 'description' => '. If not provided this will default to domain mail or contribution page', + 'type' => CRM_Utils_Type::T_STRING, + ); } /** @@ -513,6 +523,15 @@ function _ipn_process_transaction(&$params, $contribution, $input, $ids, $firstC if (isset($params['is_email_receipt'])) { $input['is_email_receipt'] = $params['is_email_receipt']; } + if (empty($contribution->contribution_page_id)) { + static $domainFromName; + static $domainFromEmail; + if (empty($domainFromEmail) && (empty($params['receipt_from_name']) || empty($params['receipt_from_email']))) { + list($domainFromName, $domainFromEmail) = CRM_Core_BAO_Domain::getNameAndEmail(TRUE); + } + $input['receipt_from_name'] = CRM_Utils_Array::value('receipt_from_name', $params, $domainFromName); + $input['receipt_from_email'] = CRM_Utils_Array::value('receipt_from_email', $params, $domainFromEmail); + } // @todo required for base ipn but problematic as api layer handles this $transaction = new CRM_Core_Transaction(); $ipn = new CRM_Core_Payment_BaseIPN(); -- 2.25.1