diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index 2f8338320603..ef8ceec8467d 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -4260,6 +4260,22 @@ public static function completeOrder($input, $ids, $contribution, $isPostPayment $transaction->commit(); \Civi::log()->info("Contribution {$contributionParams['id']} updated successfully"); + $result = civicrm_api4('ContributionSoft', 'get', [ + 'where' => [ + ['contribution_id', '=', $contributionID], + ], + 'checkPermissions' => FALSE, + ]); + $contributionSoft = $result->first(); + + if ($contributionSoft && $contributionSoft['pcp_id']) { + //Send notification to owner for PCP + $contributionDetails = $contributionResult['values'][$contributionResult['id']]; + $contribution = new CRM_Contribute_BAO_Contribution(); + $contribution->copyValues($contributionDetails); + CRM_Contribute_Form_Contribution_Confirm::pcpNotifyOwner($contribution, $contributionSoft); + } + // @todo - check if Contribution::create does this, test, remove. CRM_Contribute_BAO_ContributionRecur::updateRecurLinkedPledge($contributionID, $recurringContributionID, $contributionParams['contribution_status_id'], $input['amount']); diff --git a/CRM/Contribute/BAO/ContributionSoft.php b/CRM/Contribute/BAO/ContributionSoft.php index 030b9e8dfce0..bc5f9c00934c 100644 --- a/CRM/Contribute/BAO/ContributionSoft.php +++ b/CRM/Contribute/BAO/ContributionSoft.php @@ -607,8 +607,9 @@ protected static function processPCP($pcp, $contribution) { $softParams['pcp_personal_note'] = $pcp['pcp_personal_note'] ?? NULL; $softParams['soft_credit_type_id'] = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_ContributionSoft', 'soft_credit_type_id', 'pcp'); $contributionSoft = self::add($softParams); - //Send notification to owner for PCP - if ($contributionSoft->pcp_id && empty($pcpId)) { + // Send notification to owner for PCP. + $completedStatusID = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed'); + if ($contributionSoft->pcp_id && empty($pcpId) && empty($contribution->contribution_page_id) && $contribution->contribution_status_id == $completedStatusID) { CRM_Contribute_Form_Contribution_Confirm::pcpNotifyOwner($contribution, (array) $contributionSoft); } } diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index e69795941453..9d52813784b0 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -1225,7 +1225,7 @@ public static function processOnBehalfOrganization(&$behalfOrganization, &$conta * * @param object $contribution * @param array $contributionSoft - * Contribution object. + * Contribution array. * * @throws \API_Exception * @throws \CRM_Core_Exception