From bd54c039c834345153505246795e85a9113e72b8 Mon Sep 17 00:00:00 2001 From: Marc Michalsky Date: Mon, 15 May 2023 15:57:06 +0200 Subject: [PATCH] make all fields available for custom mapping This is useful to be able to map fields like `purpose` or `remarks` to custom fields. --- api/v3/TwingleDonation/Submit.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/api/v3/TwingleDonation/Submit.php b/api/v3/TwingleDonation/Submit.php index 6bd5462..2fceaae 100644 --- a/api/v3/TwingleDonation/Submit.php +++ b/api/v3/TwingleDonation/Submit.php @@ -306,11 +306,10 @@ function civicrm_api3_twingle_donation_Submit($params) { if (!empty($params['custom_fields'])) { $custom_field_mapping = $profile->getCustomFieldMapping(); - // Include user_extrafield in custom_field_mapping if it is referenced there. - // See issue #50. - if (!empty($params['user_extrafield']) && isset($custom_field_mapping['user_extrafield'])) { - $params['custom_fields']['user_extrafield'] = $params['user_extrafield']; - } + // Make all params available for custom field mapping + $allowed_params = []; + _civicrm_api3_twingle_donation_Submit_spec($allowed_params); + $params['custom_fields'] += array_intersect_key($params, $custom_field_mapping, $allowed_params); foreach ($params['custom_fields'] as $twingle_field => $value) { if (isset($custom_field_mapping[$twingle_field])) {