From 040728f567c425dfe5b0dad97e685c8b346852f9 Mon Sep 17 00:00:00 2001 From: Alice Frumin Date: Thu, 25 Jan 2018 16:50:50 -0500 Subject: [PATCH] CRM-21711 Membership: moving updating custom fields into the foreach --- CRM/Contribute/Form/Contribution/Confirm.php | 26 ++++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/CRM/Contribute/Form/Contribution/Confirm.php b/CRM/Contribute/Form/Contribution/Confirm.php index f91d894784..40e6367ece 100644 --- a/CRM/Contribute/Form/Contribution/Confirm.php +++ b/CRM/Contribute/Form/Contribution/Confirm.php @@ -1530,6 +1530,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr } $i = 1; + $form->_params['createdMembershipIDs'] = array(); foreach ($membershipTypeIDs as $memType) { $membershipLineItems = array(); if ($i < count($membershipTypeIDs)) { @@ -1590,6 +1591,15 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr // Next line is probably redundant. Checksprevent it happening twice. CRM_Member_BAO_Membership::linkMembershipPayment($membership, $membershipContribution); } + if ($membership) { + CRM_Core_BAO_CustomValueTable::postProcess($form->_params, 'civicrm_membership', $membership->id, 'Membership'); + $form->_params['createdMembershipIDs'][] = $membership->id; + $form->_params['membershipID'] = $membership->id; + + //CRM-15232: Check if membership is created and on the basis of it use + //membership receipt template to send payment receipt + $form->_values['isMembership'] = TRUE; + } } if ($form->_priceSetId && !empty($form->_useForMember) && !empty($form->_lineItem)) { foreach ($form->_lineItem[$form->_priceSetId] as & $priceFieldOp) { @@ -1611,23 +1621,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr $message = $this->compileErrorMessage($errors); throw new CRM_Core_Exception($message); } - $form->_params['createdMembershipIDs'] = array(); - - // CRM-7851 - Moved after processing Payment Errors - //@todo - the reasoning for this being here seems a little outdated - CRM_Core_BAO_CustomValueTable::postProcess($form->_params, 'civicrm_membership', $membership->id, 'Membership'); - $form->_params['createdMembershipIDs'][] = $membership->id; - if ($membership) { - //presumably this is only relevant for exactly 1 membership - $form->_params['membershipID'] = $membership->id; - } - - //CRM-15232: Check if membership is created and on the basis of it use - //membership receipt template to send payment receipt - if ($membership) { - $form->_values['isMembership'] = TRUE; - } if (isset($membershipContributionID)) { $form->_values['contribution_id'] = $membershipContributionID; } -- 2.25.1