Remove call to loadRelatedObjects from completetransaction
authorEileen McNaughton <emcnaughton@wikimedia.org>
Fri, 29 Jul 2022 09:31:59 +0000 (10:31 +0100)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 2 Aug 2022 03:55:02 +0000 (15:55 +1200)
api/v3/Contribution.php

index 6154d6343b0762527d86d3b46a53c971fd3f03a8..83f8b910642bd43f35794fad55ee20b06d23e45b 100644 (file)
@@ -495,18 +495,6 @@ function civicrm_api3_contribution_completetransaction($params) {
   ];
   $input = array_intersect_key($params, array_fill_keys($passThroughParams, NULL));
 
-  $ids = [];
-  if (!$contribution->loadRelatedObjects(['payment_processor_id' => $input['payment_processor_id'] ?? NULL], $ids, TRUE)) {
-    throw new API_Exception('failed to load related objects');
-  }
-
-  // @todo Copied from _ipn_process_transaction - needs cleanup/refactor
-  $objects = $contribution->_relatedObjects;
-  $objects['contribution'] = &$contribution;
-  $input['component'] = $contribution->_component;
-  $input['is_test'] = $contribution->is_test;
-  $input['amount'] = empty($input['total_amount']) ? $contribution->total_amount : $input['total_amount'];
-
   if (isset($params['is_email_receipt'])) {
     $input['is_email_receipt'] = $params['is_email_receipt'];
   }
@@ -529,8 +517,8 @@ function civicrm_api3_contribution_completetransaction($params) {
     $input['payment_instrument_id'] = $params['payment_instrument_id'];
   }
   return CRM_Contribute_BAO_Contribution::completeOrder($input,
-    !empty($objects['contributionRecur']) ? $objects['contributionRecur']->id : NULL,
-    $objects['contribution']->id ?? NULL,
+    $contribution->contribution_recur_id,
+    $params['id'],
     $params['is_post_payment_create'] ?? NULL);
 }