diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index cd261dc549dd..5158869f2dad 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -2833,10 +2833,7 @@ public function loadRelatedObjects($input, &$ids, $loadAll = FALSE) { $this->find(TRUE); } - $paymentProcessorID = CRM_Utils_Array::value('payment_processor_id', $input, CRM_Utils_Array::value( - 'paymentProcessor', - $ids - )); + $paymentProcessorID = $input['payment_processor_id'] ?? $ids['paymentProcessor'] ?? NULL; if (!isset($input['payment_processor_id']) && !$paymentProcessorID && $this->contribution_page_id) { $paymentProcessorID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionPage', diff --git a/api/v3/Contribution.php b/api/v3/Contribution.php index 286eb8770843..7e0f3d7e585b 100644 --- a/api/v3/Contribution.php +++ b/api/v3/Contribution.php @@ -479,10 +479,7 @@ function civicrm_api3_contribution_completetransaction($params) { throw new API_Exception('A valid contribution ID is required', 'invalid_data'); } - if (isset($params['payment_processor_id'])) { - $input['payment_processor_id'] = $params['payment_processor_id']; - } - if (!$contribution->loadRelatedObjects($input, $ids, TRUE)) { + if (!$contribution->loadRelatedObjects(['payment_processor_id' => $params['payment_processor_id'] ?? NULL], $ids, TRUE)) { throw new API_Exception('failed to load related objects'); } elseif ($contribution->contribution_status_id == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed')) { @@ -606,12 +603,12 @@ function civicrm_api3_contribution_repeattransaction($params) { ); } - $input['payment_processor_id'] = civicrm_api3('contributionRecur', 'getvalue', [ + $paymentProcessorID = civicrm_api3('contributionRecur', 'getvalue', [ 'return' => 'payment_processor_id', 'id' => $contribution->contribution_recur_id, ]); try { - if (!$contribution->loadRelatedObjects($input, $ids, TRUE)) { + if (!$contribution->loadRelatedObjects(['payment_processor_id' => $paymentProcessorID], $ids, TRUE)) { throw new API_Exception('failed to load related objects'); }