From 26af0d7659ef885bf1061390dbca60aa360fc0ed Mon Sep 17 00:00:00 2001 From: Marek Isalski Date: Sat, 5 Sep 2020 13:22:23 +0100 Subject: [PATCH] allow creation of pre-archived memberships for double opt-in --- fulcrm_membership.module | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/fulcrm_membership.module b/fulcrm_membership.module index 7bcc526..36aa7b3 100644 --- a/fulcrm_membership.module +++ b/fulcrm_membership.module @@ -211,7 +211,7 @@ function fulcrm_membership_cease_person2membership( $p2m, $now = NULL ) { return false; } -function fulcrm_membership_begin_person2membership( $person_id, $membership_id, $now = NULL ) { +function fulcrm_membership_begin_person2membership( $person_id, $membership_id, $now = NULL, $archived = false ) { if ( is_null( $now ) ) $now = new DateTime(); $tz = new DateTimeZone('UTC'); @@ -220,19 +220,22 @@ function fulcrm_membership_begin_person2membership( $person_id, $membership_id, $timescale_data = fulcrm_apiv2_POST( 'timescale/', $data = array( 'start' => $start ) ); if ( $timescale_data[ 'success' ] ) { - $api_data = fulcrm_apiv2_POST( 'person2membership/', $data = array( 'person' => '/api/v2/person/' . $person_id . '/', - 'membership' => '/api/v2/membership/' . $membership_id . '/', - 'timescale' => $timescale_data[ 'data' ][ 'url' ], - ) ); + $data = array( 'person' => '/api/v2/person/' . $person_id . '/', + 'membership' => '/api/v2/membership/' . $membership_id . '/', + 'timescale' => $timescale_data[ 'data' ][ 'url' ], + ); + if ( $archived ) + $data[ 'archived' ] = $start; + + $api_data = fulcrm_apiv2_POST( 'person2membership/', $data = $data ); if ( $api_data[ 'success' ] ) { - return true; + return $api_data[ 'headers' ][ 'Location' ]; } else { watchdog('fulcrm_membership', 'could not post person2membership to create membership %mid for %pid', array('%mid'=>$membership_id,'%pid'=>$person_id), WATCHDOG_ERROR); } } else { watchdog('fulcrm_membership', 'could not post timescale to create membership %mid for %pid', array('%mid'=>$membership_id,'%pid'=>$person_id), WATCHDOG_ERROR); } - } function fulcrm_membership_self_set_form_submit( $form, &$form_state ) {