function mgm_autoresponder_subscribe($args) { // fix for #865, acknowledge_ar is not populated $acknowledge_user = isset($args['acknowledge_ar']) ? $args['acknowledge_ar'] : true; // acknowledge_user: to send only once after registration if (isset($args['user_id']) && $acknowledge_user) { // pass mgm_member object if already passed $member = isset($args['mgm_member']) ? $args['mgm_member'] : null; // subscribe return mgm_autoresponder_send_subscribe($args['user_id'], $member); } }
function _member_update_subscription(&$member, $user_id, $system_obj, $previous_membership) { // return $return = array(); // getpack $subs_pack = mgm_decode_package(mgm_post_var('upd_subscription_pack')); $pack_obj = mgm_get_class('subscription_packs'); $packdetails = $pack_obj->get_pack($subs_pack['pack_id']); // if trial on if (isset($subs_pack['trial_on'])) { $member->trial_on = $subs_pack['trial_on']; $member->trial_cost = $subs_pack['trial_cost']; $member->trial_duration = $subs_pack['trial_duration']; $member->trial_duration_type = $subs_pack['trial_duration_type']; $member->trial_num_cycles = $subs_pack['trial_num_cycles']; } // duration $member->duration = $subs_pack['duration']; $member->duration_type = strtolower($subs_pack['duration_type']); $member->active_num_cycles = $packdetails['num_cycles']; $member->amount = $subs_pack['cost']; $member->currency = $system_obj->setting['currency']; $member->membership_type = $subs_pack['membership_type']; $member->pack_id = $subs_pack['pack_id']; // old status $return['old_status'] = $member->status; // set new status $member->status = $return['new_status'] = MGM_STATUS_ACTIVE; // set status str $member->status_str = __('Subscription update successful', 'mgm'); // old type match and join date update // $old_membership_type = mgm_get_user_membership_type($user_id, 'code'); // update if new subscription OR guest user /* $is_new_pack = ( strtolower($previous_membership->membership_type) == 'guest' || (mgm_post_var('insert_new_level') == 'new') || (isset($previous_membership->pack_id) && $previous_membership->pack_id != strtolower($member->pack_id)) || empty($member->join_date) ); */ $is_new_pack = empty($member->join_date) || 'new' == mgm_post_var('insert_new_level'); // if new subscription pack is assigned // update join date if ($is_new_pack) { $member->join_date = time(); // type join date as different var } // old content hide //$member->hide_old_content = $subs_pack['hide_old_content']; //issue #1100 $member->hide_old_content = $packdetails['hide_old_content']; // time $time = time(); // last pay date if (!isset($member->last_pay_date)) { $member->last_pay_date = date('Y-m-d', $time); } // expiration date if (!bool_from_yn(mgm_post_var('no_expiration_date_update', 'N'))) { // expire if ($member->expire_date && $member->last_pay_date != date('Y-m-d', $time)) { // expiry $expiry = strtotime($member->expire_date); // greater if ($expiry > 0) { // time check if ($expiry > $time) { // update $time = $expiry; } } } // duration types expanded $duration_exprs = $pack_obj->get_duration_exprs(); // time if (in_array($member->duration_type, array_keys($duration_exprs))) { // take only date exprs // time $time = strtotime("+{$member->duration} {$duration_exprs[$member->duration_type]}", $time); // formatted $time_str = date('Y-m-d', $time); // date extended if (!$member->expire_date || strtotime($time_str) > strtotime($member->expire_date) || mgm_post_var('insert_new_level') == 'new') { // This is to make sure that expire date is not copied from the selected members if any $member->expire_date = $time_str; } } //date range - issue #1190 if ($member->duration_type == 'dr') { // el = /date range if (time() < strtotime($packdetails['duration_range_start_dt']) || time() > strtotime($packdetails['duration_range_end_dt'])) { $member->status = MGM_STATUS_EXPIRED; } $member->expire_date = $packdetails['duration_range_end_dt']; } } // if lifetime: if ($subs_pack['duration_type'] == 'l' && $member->status == MGM_STATUS_ACTIVE) { $member->expire_date = ''; if (isset($member->status_reset_on)) { unset($member->status_reset_on); } if (isset($member->status_reset_as)) { unset($member->status_reset_as); } } // autoresponder - issue #1266 if (!bool_from_yn(mgm_post_var('subscribe_to_autoresponder', 'N')) && isset($_POST['subscribe_to_autoresponder'])) { // set $member->subscribed = 'Y'; $member->autoresponder = $system_obj->active_modules['autoresponder']; // call mgm_autoresponder_send_subscribe($user_id, $member); } // return return $return; }