console.log('Repute log Test after setup'); ";
return $return_script;
}*/
function arm_renew_update_plan_action_func() {
global $ARMember;
$arm_capabilities = '';
$ARMember->arm_check_user_cap($arm_capabilities, '0');
$plan_id = intval($_POST['plan_id']);
$setup_id = intval($_POST['setup_id']);
if(is_user_logged_in()) {
echo do_shortcode('[arm_setup_internal id="' . $setup_id . '" hide_plans="1" subscription_plan="' . $plan_id . '"]');
} else {
global $arm_member_forms, $ARMember;
$default_login_form_id = $arm_member_forms->arm_get_default_form_id('login');
echo do_shortcode("[arm_form id='$default_login_form_id' is_referer='1']");
$ARMember->enqueue_angular_script(true);
}
die;
}
function arm_cancel_bank_transfer_subscription($user_id, $plan_id) {
global $wpdb, $ARMember, $arm_global_settings, $arm_subscription_plans, $arm_transaction, $arm_payment_gateways, $arm_manage_communication;
if (!empty($user_id) && $user_id != 0 && !empty($plan_id) && $plan_id != 0) {
$defaultPlanData = $arm_subscription_plans->arm_default_plan_array();
$userPlanDatameta = get_user_meta($user_id, 'arm_user_plan_' . $plan_id, true);
$userPlanDatameta = !empty($userPlanDatameta) ? $userPlanDatameta : array();
$planData = shortcode_atts($defaultPlanData, $userPlanDatameta);
$user_payment_gateway = $planData['arm_user_gateway'];
$user_detail = get_userdata($user_id);
$payer_email = $user_detail->user_email;
if (in_array(strtolower($user_payment_gateway), array('bank_transfer', 'manual'))) {
$arm_manage_communication->arm_user_plan_status_action_mail(array('plan_id' => $plan_id, 'user_id' => $user_id, 'action' => 'on_cancel_subscription'));
}
}
}
function arm_membership_setup_preview_func() {
global $wpdb, $ARMember;
if (isset($_REQUEST['arm_setup_preview']) && $_REQUEST['arm_setup_preview'] == '1') {
if (file_exists(MEMBERSHIPLITE_VIEWS_DIR . '/arm_membership_setup_preview.php')) {
include(MEMBERSHIPLITE_VIEWS_DIR . '/arm_membership_setup_preview.php');
}
exit;
}
}
function arm_membership_setup_form_ajax_action($setup_id = 0, $post_data = array()) {
global $wp, $wpdb, $current_user, $arm_slugs, $arm_errors, $ARMember, $arm_member_forms, $arm_global_settings, $arm_payment_gateways,$arm_subscription_plans, $payment_done,$arm_manage_communication, $arm_transaction;
$post_data = (!empty($_POST)) ? $_POST : $post_data;
$setup_id = (!empty($post_data['setup_id']) && $post_data['setup_id'] != 0) ? intval($post_data['setup_id']) : $setup_id;
$err_msg = $arm_global_settings->common_message['arm_general_msg'];
$err_msg = (!empty($err_msg)) ? $err_msg : __('Sorry, Something went wrong. Please try again.', 'ARMember');
$response = array('status' => 'error', 'type' => 'message', 'message' => $err_msg);
$validate = true;
$validate_msgs = array();
if (!empty($setup_id) && $setup_id != 0 && !empty($post_data) && $post_data['setup_action'] == 'membership_setup') {
do_action('arm_before_setup_form_action', $setup_id, $post_data);
/* Unset unused variables. */
unset($post_data['ARMSETUPNEXT']);
unset($post_data['ARMSETUPSUBMIT']);
unset($post_data['setup_action']);
$setup_data = $this->arm_get_membership_setup($setup_id);
if (!empty($setup_data) && !empty($setup_data['setup_modules']['modules'])) {
$form_slug = isset($post_data['arm_action']) ? sanitize_text_field($post_data['arm_action']) : '';
$form = new ARM_Form('slug', $form_slug);
$form_id = 0;
$plan_id = isset($post_data['subscription_plan']) ? intval($post_data['subscription_plan']) : 0;
if ($plan_id == 0) {
$plan_id = isset($post_data['_subscription_plan']) ? intval($post_data['_subscription_plan']) : 0;
}
$plan = new ARM_Plan($plan_id);
$plan_type = $plan->type;
$payment_gateway = isset($post_data['payment_gateway']) ? sanitize_text_field($post_data['payment_gateway']) : '';
if ($payment_gateway == '') {
$payment_gateway = isset($post_data['_payment_gateway']) ? sanitize_text_field($post_data['_payment_gateway']) : '';
}
if($plan->is_recurring()){
$payment_mode_ = !empty($post_data['arm_selected_payment_mode']) ? sanitize_text_field($post_data['arm_selected_payment_mode']) : 'manual_subscription';
if(isset($post_data['arm_payment_mode'][$payment_gateway])){
$payment_mode_ = !empty($post_data['arm_payment_mode'][$payment_gateway]) ? sanitize_text_field($post_data['arm_payment_mode'][$payment_gateway]) : 'manual_subscription';
}
else{
$setup_data = $this->arm_get_membership_setup($setup_id);
if (!empty($setup_data) && !empty($setup_data['setup_modules']['modules'])) {
$setup_modules = $setup_data['setup_modules'];
$modules = $setup_modules['modules'];
$payment_mode_ = $modules['payment_mode'][$payment_gateway];
}
}
$payment_mode = 'manual_subscription';
if ($payment_mode_ == 'both') {
$payment_mode = !empty($post_data['arm_selected_payment_mode']) ? sanitize_text_field($post_data['arm_selected_payment_mode']) : 'manual_subscription';
} else {
$payment_mode = $payment_mode_;
}
}
else{
$payment_mode = '';
}
if ($payment_gateway == 'bank_transfer' && $plan->is_recurring()) {
$payment_mode = 'manual_subscription';
}
$post_data['arm_selected_payment_mode'] = $payment_mode;
$payment_cycle = 0;
if ($plan->is_recurring()) {
$payment_cycle = isset($post_data['payment_cycle_' . $plan_id]) ? intval($post_data['payment_cycle_' . $plan_id]) : 0;
}
$post_data['arm_selected_payment_cycle'] = $payment_cycle;
$user_info = wp_get_current_user();
$current_user_plan = array();
$user_id = $user_info->ID;
if (!empty($user_info->ID)) {
$entry_email = $user_info->user_email;
$current_user_plan = get_user_meta($user_id, 'arm_user_plan_ids', true);
$current_user_plan = !empty($current_user_plan) ? $current_user_plan : array();
} else {
$entry_email = sanitize_email($post_data['user_email']);
}
$setup_redirect = ARMLITE_HOME_URL;
$redirection_settings = get_option('arm_redirection_settings');
$redirection_settings = maybe_unserialize($redirection_settings);
$arm_default_setup_url = (isset($redirection_settings['setup']['default']) && !empty($redirection_settings['setup']['default'])) ? $redirection_settings['setup']['default'] : ARMLITE_HOME_URL;
if (is_user_logged_in()) {
// IF same plan already exists in arm_user_plan_ids
if (in_array($plan_id, $current_user_plan)) {
//renew or recurring
$PlanData = get_user_meta($user_id, 'arm_user_plan_' . $plan_id, true);
if (!empty($PlanData)) {
$PlanDetail = isset($PlanData['arm_current_plan_detail']) ? $PlanData['arm_current_plan_detail'] : array();
if (!empty($PlanData)) {
$same_old_plan = new ARM_Plan(0);
$same_old_plan->init((object) $PlanDetail);
} else {
$same_old_plan = new ARM_Plan($plan_id);
}
if ($same_old_plan->is_recurring()) {
$oldPaymentMode = $PlanData['arm_payment_mode'];
if ($oldPaymentMode == 'manual_subscription') {
$oldPaymentCycle = $PlanData['arm_payment_cycle'];
$completed_recurrence = $PlanData['arm_completed_recurring'];
$same_plan_data = $same_old_plan->prepare_recurring_data($oldPaymentCycle);
$oldPlanTotalRecurring = $same_plan_data['rec_time'];
if ($oldPlanTotalRecurring == 'infinite' || ($completed_recurrence !== '' && $completed_recurrence < $oldPlanTotalRecurring)) {
$payment_cycle = $oldPaymentCycle;
$post_data['arm_selected_payment_cycle'] = $oldPaymentCycle;
$payment_mode = $oldPaymentMode;
$post_data['arm_selected_payment_mode'] = $oldPaymentMode;
$plan = $same_old_plan;
}
}
}
}
$arm_redirection_setup_change_type = (isset($redirection_settings['setup_renew']['type']) && !empty($redirection_settings['setup_renew']['type'])) ? $redirection_settings['setup_renew']['type'] : 'page';
if($arm_redirection_setup_change_type == 'page'){
$arm_redirection_setup_signup_page_id = (isset($redirection_settings['setup_renew']['page_id']) && !empty($redirection_settings['setup_renew']['page_id'])) ? $redirection_settings['setup_renew']['page_id'] : 0;
if(!empty($arm_redirection_setup_signup_page_id)){
$setup_redirect = $arm_global_settings->arm_get_permalink('', $arm_redirection_setup_signup_page_id);
}
else{
$setup_redirect = $arm_default_setup_url;
}
}
else if($arm_redirection_setup_change_type == 'url'){
$setup_redirect = (isset($redirection_settings['setup_renew']['url']) && !empty($redirection_settings['setup_renew']['url'])) ? $redirection_settings['setup_renew']['url'] : $arm_default_setup_url;
}
}
else{
//change
$arm_redirection_setup_change_type = (isset($redirection_settings['setup_change']['type']) && !empty($redirection_settings['setup_change']['type'])) ? $redirection_settings['setup_change']['type'] : 'page';
if($arm_redirection_setup_change_type == 'page'){
$arm_redirection_setup_signup_page_id = (isset($redirection_settings['setup_change']['page_id']) && !empty($redirection_settings['setup_change']['page_id'])) ? $redirection_settings['setup_change']['page_id'] : 0;
if(!empty($arm_redirection_setup_signup_page_id)){
$setup_redirect = $arm_global_settings->arm_get_permalink('', $arm_redirection_setup_signup_page_id);
}
else{
$setup_redirect = $arm_default_setup_url;
}
}
else if($arm_redirection_setup_change_type == 'url'){
$setup_redirect = (isset($redirection_settings['setup_change']['url']) && !empty($redirection_settings['setup_change']['url'])) ? $redirection_settings['setup_change']['url'] : $arm_default_setup_url;
}
}
}
else{
$arm_redirection_setup_signup_type = (isset($redirection_settings['setup_signup']['type']) && !empty($redirection_settings['setup_signup']['type'])) ? $redirection_settings['setup_signup']['type'] : 'page';
if($arm_redirection_setup_signup_type == 'page'){
$arm_redirection_setup_signup_page_id = (isset($redirection_settings['setup_signup']['page_id']) && !empty($redirection_settings['setup_signup']['page_id'])) ? $redirection_settings['setup_signup']['page_id'] : 0;
if(!empty($arm_redirection_setup_signup_page_id)){
$setup_redirect = $arm_global_settings->arm_get_permalink('', $arm_redirection_setup_signup_page_id);
}
else{
$setup_redirect = $arm_default_setup_url;
}
}
else if($arm_redirection_setup_signup_type == 'url'){
$setup_redirect = (isset($redirection_settings['setup_signup']['url']) && !empty($redirection_settings['setup_signup']['url'])) ? $redirection_settings['setup_signup']['url'] : $arm_default_setup_url;
}
}
if ($plan->is_recurring()) {
$planData = $plan->prepare_recurring_data($payment_cycle);
$amount = !empty($planData['amount']) ? $planData['amount'] : 0;
} else {
$amount = !empty($plan->amount) ? $plan->amount : 0;
}
$amount = str_replace(',', '', $amount);
$planOptions = $plan->options;
if ($plan_type == 'paid_finite') {
$plan_expiry_type = (isset($planOptions['expiry_type']) && $planOptions['expiry_type'] != '') ? $planOptions['expiry_type'] : 'joined_date_expiry';
$plan_expiry_date = (isset($planOptions['expiry_date']) && $planOptions['expiry_date'] != '') ? $planOptions['expiry_date'] : date('Y-m-d 23:59:59');
}
$now = current_time('timestamp');
$setup_name = $setup_data['setup_name'];
$modules = $setup_data['setup_modules']['modules'];
$module_order = array(
'plans' => 1,
'forms' => 2,
'gateways' => 3,
);
$all_payment_gateways = $arm_payment_gateways->arm_get_active_payment_gateways();
/* ====================/.Begin Module section validation./==================== */
foreach ($module_order as $module => $order) {
if (!empty($modules[$module])) {
if ($module == 'forms' && !empty($form_slug)) {
$form_id = $form->ID;
$arm_form_fields = $form->fields;
$field_options = array();
foreach ($arm_form_fields as $fields) {
if ($fields['arm_form_field_slug'] == 'user_login') {
$field_options = $fields['arm_form_field_option'];
if (isset($field_options['hide_username']) && $field_options['hide_username'] == 1) {
$post_data['user_login'] = sanitize_email($post_data['user_email']);
}
}
}
$all_errors = $arm_member_forms->arm_member_validate_meta_details($form, $post_data);
if ($all_errors !== TRUE) {
$validate = false;
$validate_msgs += $all_errors;
}
}
if ($module == 'plans') {
if ($plan->exists() && $plan->is_active()) {
if ($plan->is_paid() && empty($payment_gateway)) {
if ($plan->is_recurring() && $plan->has_trial_period() && $payment_mode == 'manual_subscription' && $planOptions['trial']['amount'] < 1) {
} else {
$validate = false;
$err_msg = $arm_global_settings->common_message['arm_no_select_payment_geteway'];
$validate_msgs['subscription_plan'] = (!empty($err_msg)) ? $err_msg : __('Your selected plan is paid, please select payment method.', 'ARMember');
}
}
if ($plan_type == 'paid_finite' && $plan_expiry_type == 'fixed_date_expiry') {
if (strtotime($plan_expiry_date) <= $now) {
$validate = false;
$err_msg = $arm_global_settings->common_message['arm_invalid_plan_select'];
$validate_msgs['subscription_plan'] = (!empty($err_msg)) ? $err_msg : __('Selected plan is not valid.', 'ARMember');
}
}
} else {
$validate = false;
$err_msg = $arm_global_settings->common_message['arm_invalid_plan_select'];
$validate_msgs['subscription_plan'] = (!empty($err_msg)) ? $err_msg : __('Selected plan is not valid.', 'ARMember');
}
}
if ($module == 'gateways' && $plan->is_paid() && !empty($payment_gateway)) {
$gateway_options = $all_payment_gateways[$payment_gateway];
$payment_mode_bt = "";
if ($plan->is_recurring()) {
$payment_mode_bt = 'manual_subscription';
} else {
$payment_mode_bt = 'auto_debit_subscription';
}
if ($payment_gateway == 'bank_transfer' && $payment_mode_bt == '') {
$validate = false;
$validate_msgs['bank_transfer'] = __('Selected plan is not valid for bank transfer.', 'ARMember');
} else {
$pgHasCCFields = apply_filters('arm_payment_gateway_has_ccfields', false, $payment_gateway, $gateway_options);
if ($pgHasCCFields) {
$cc_error = array();
if (empty($post_data[$payment_gateway]['card_number'])) {
$err_msg = $arm_global_settings->common_message['arm_blank_credit_card_number'];
}
if (empty($post_data[$payment_gateway]['exp_month'])) {
$err_msg = $arm_global_settings->common_message['arm_blank_expire_month'];
}
if (empty($post_data[$payment_gateway]['exp_year'])) {
$err_msg = $arm_global_settings->common_message['arm_blank_expire_year'];
}
if (empty($post_data[$payment_gateway]['cvc'])) {
$err_msg = $arm_global_settings->common_message['arm_blank_cvc_number'];
}
if (!empty($cc_error)) {
$validate = false;
$validate_msgs['card_number'] = implode('
', $cc_error);
}
}
$pg_errors = apply_filters('arm_validate_payment_gateway_fields', true, $post_data, $payment_gateway, $gateway_options);
if ($pg_errors !== true) {
$validate = false;
$validate_msgs[$payment_gateway] = $pg_errors;
}
}
}
}
}
/* ====================/.End Module section validation./==================== */
if ($validate && empty($validate_msgs)) {
do_action('arm_after_setup_form_validate_action', $setup_id, $post_data);
$entry_id = 0;
$ip_address = $ARMember->arm_get_ip_address();
$description = maybe_serialize(array('browser' => $_SERVER['HTTP_USER_AGENT'], 'http_referrer' => @$_SERVER['HTTP_REFERER']));
$entry_post_data = $post_data;
if (is_user_logged_in()) {
$user_information = wp_get_current_user();
$user_id_info = $user_information->ID;
$username_info = $user_information->user_login;
$setup_redirect = str_replace('{ARMCURRENTUSERNAME}', $username_info, $setup_redirect);
$setup_redirect = str_replace('{ARMCURRENTUSERID}', $user_id_info, $setup_redirect);
}
$entry_post_data['setup_redirect'] = $setup_redirect;
foreach ($all_payment_gateways as $k => $data) {
if (isset($entry_post_data[$k]) && isset($entry_post_data[$k]['card_number'])) {
$cc_no = $entry_post_data[$k]['card_number'];
unset($entry_post_data[$k]);
if (!empty($cc_no)) {
$entry_post_data[$k]['card_number'] = $arm_transaction->arm_mask_credit_card_number($cc_no);
}
}
}
$entry_post_data = apply_filters('arm_add_arm_entries_value', $entry_post_data);
$new_entry = array(
'arm_entry_email' => $entry_email,
'arm_name' => $setup_name,
'arm_description' => $description,
'arm_ip_address' => $ip_address,
'arm_browser_info' => $_SERVER['HTTP_USER_AGENT'],
'arm_entry_value' => maybe_serialize($entry_post_data),
'arm_form_id' => $form_id,
'arm_user_id' => $user_id,
'arm_plan_id' => $plan_id,
'arm_created_date' => date('Y-m-d H:i:s')
);
$new_entry_results = $wpdb->insert($ARMember->tbl_arm_entries, $new_entry);
$entry_id = $wpdb->insert_id;
if (!empty($entry_id) && $entry_id != 0) {
$post_data['arm_entry_id'] = $entry_id;
$payment_gateway_options = isset($all_payment_gateways[$payment_gateway]) ? $all_payment_gateways[$payment_gateway] : array();
if (is_user_logged_in()) {
if (!empty($modules['plans'])) {
$defaultPlanData = $arm_subscription_plans->arm_default_plan_array();
$userPlanDatameta = get_user_meta($user_id, 'arm_user_plan_' . $plan_id, true);
$userPlanDatameta = !empty($userPlanDatameta) ? $userPlanDatameta : array();
$userPlanData = shortcode_atts($defaultPlanData, $userPlanDatameta);
$post_data['old_plan_id'] = (isset($current_user_plan) && !empty($current_user_plan)) ? implode(",", $current_user_plan) : 0;
$old_plan_id = isset($current_user_plan[0]) ? $current_user_plan[0] : 0;
$oldPlanData = get_user_meta($user_id, 'arm_user_plan_' . $old_plan_id, true);
$oldPlanData = !empty($oldPlanData) ? $oldPlanData : array();
$oldPlanData = shortcode_atts($defaultPlanData, $oldPlanData);
$oldPlanDetail = isset($oldPlanData['arm_current_plan_detail']) ? $oldPlanData['arm_current_plan_detail'] : array();
if (!empty($oldPlanDetail)) {
$old_plan = new ARM_Plan(0);
$old_plan->init((object) $oldPlanDetail);
} else {
$old_plan = new ARM_Plan($old_plan_id);
}
$is_update_plan = true;
$now = current_time('mysql');
$arm_last_payment_status = $wpdb->get_var($wpdb->prepare("SELECT `arm_transaction_status` FROM `" . $ARMember->tbl_arm_payment_log . "` WHERE `arm_user_id`=%d AND `arm_plan_id`=%d AND `arm_created_date`<=%s ORDER BY `arm_log_id` DESC LIMIT 0,1", $user_id, $plan_id, $now));
/* If plan is being renewd */
if (in_array($plan_id, $current_user_plan)) {
/* if plan is recurring and old payment mode is auto debit, then if payment is done using 2checkout, old plan need to be canceled and plan renew date will be today date
* In other payment gateway, plan renew date will be old ecpiry date
*/
if ($old_plan->is_recurring()) {
if ($payment_mode == 'auto_debit_subscription') {
$need_to_cancel_payment_gateway_array = $arm_payment_gateways->arm_need_to_cancel_old_subscription_gateways();
$need_to_cancel_payment_gateway_array = !empty($need_to_cancel_payment_gateway_array) ? $need_to_cancel_payment_gateway_array : array();
if (in_array($payment_gateway, $need_to_cancel_payment_gateway_array)) {
do_action('arm_cancel_subscription_gateway_action', $user_id, $plan_id);
}
}
}
} else {
/* if plan is being changed. */
/* check if upgrade downgrade action is applied
* if it is immmediately then, cancel old subscription if plan is recurring immediately */
if ($old_plan->exists()) {
if ($old_plan->is_lifetime() || $old_plan->is_free() || ($old_plan->is_recurring() && $plan->is_recurring())) {
$is_update_plan = true;
} else {
$change_act = 'immediate';
if ($old_plan->enable_upgrade_downgrade_action == 1) {
if (!empty($old_plan->downgrade_plans) && in_array($plan->ID, $old_plan->downgrade_plans)) {
$change_act = $old_plan->downgrade_action;
}
if (!empty($old_plan->upgrade_plans) && in_array($plan->ID, $old_plan->upgrade_plans)) {
$change_act = $old_plan->upgrade_action;
}
}
$subscr_effective = $oldPlanData['arm_expire_plan'];
if ($change_act == 'on_expire' && !empty($subscr_effective)) {
$is_update_plan = false;
$oldPlanData['arm_subscr_effective'] = $subscr_effective;
$oldPlanData['arm_change_plan_to'] = $plan_id;
update_user_meta($user_id, 'arm_user_plan_' . $old_plan_id, $oldPlanData);
}
}
if ($is_update_plan && $old_plan->is_recurring()) {
do_action('arm_cancel_subscription_gateway_action', $user_id, $old_plan_id);
}
}
}
if (!$plan->is_free()) {
if (!empty($payment_gateway_options)) {
if ($payment_gateway == 'bank_transfer') {
$payment_mode_bt = '';
if ($plan->is_recurring()) {
$payment_mode_bt = "manual_subscription";
}
$arm_user_old_plan_details = (isset($userPlanData['arm_current_plan_detail']) && !empty($userPlanData['arm_current_plan_detail'])) ? $userPlanData['arm_current_plan_detail'] : array();
$arm_user_old_plan_details['arm_user_old_payment_mode'] = $userPlanData['arm_payment_mode'];
$userPlanData['arm_current_plan_detail'] = $arm_user_old_plan_details;
update_user_meta($user_id, 'arm_user_plan_' . $plan_id, $userPlanData);
update_user_meta($user_id, 'arm_entry_id', $entry_id);
if (!$plan->is_recurring() || $payment_mode_bt == 'manual_subscription') {
$arm_payment_gateways->arm_bank_transfer_payment_gateway_action($payment_gateway, $payment_gateway_options, $post_data, $entry_id);
global $payment_done;
$response['status'] = 'success';
$response['type'] = 'redirect';
$response['message'] = '';
} else {
$validate_msgs['payment_failed'] = __('Selected plan is not valid for bank transfer.', 'ARMember');
}
} else {
$post_data = apply_filters('arm_change_posted_data_before_payment_outside', $post_data, $payment_gateway, $payment_gateway_options, $entry_id);
do_action('arm_payment_gateway_validation_from_setup', $payment_gateway, $payment_gateway_options, $post_data, $entry_id);
global $payment_done;
if (isset($payment_done['status']) && $payment_done['status'] === FALSE) {
$validate_msgs['payment_failed'] = $payment_done['error'];
} else {
$pgs_arrays = apply_filters('arm_update_new_subscr_gateway_outside', array());
$log_id = $payment_done['log_id'];
$log_detail = $wpdb->get_row("SELECT `arm_log_id`, `arm_user_id`, `arm_token`, `arm_transaction_id`, `arm_extra_vars` FROM `" . $ARMember->tbl_arm_payment_log . "` WHERE `arm_log_id`='$log_id'");
update_user_meta($user_id, 'arm_entry_id', $entry_id);
$userPlanData['arm_user_gateway'] = $payment_gateway;
$arm_user_old_plan_details = (isset($userPlanData['arm_current_plan_detail']) && !empty($userPlanData['arm_current_plan_detail'])) ? $userPlanData['arm_current_plan_detail'] : array();
$arm_user_old_plan_details['arm_user_old_payment_mode'] = $userPlanData['arm_payment_mode'];
$userPlanData['arm_current_plan_detail'] = $arm_user_old_plan_details;
if ($plan->is_recurring()) {
$userPlanData['arm_payment_mode'] = $payment_mode;
$userPlanData['arm_payment_cycle'] = $payment_cycle;
} else {
$userPlanData['arm_payment_mode'] = '';
$userPlanData['arm_payment_cycle'] = '';
}
update_user_meta($user_id, 'arm_user_plan_' . $plan_id, $userPlanData);
do_action('arm_update_user_meta_after_renew_outside', $user_id, $log_detail, $plan_id, $payment_gateway);
if ($is_update_plan) {
$arm_subscription_plans->arm_update_user_subscription($user_id, $plan_id, '', true, $arm_last_payment_status);
} else {
$arm_subscription_plans->arm_add_membership_history($user_id, $plan_id, 'change_subscription');
}
$response['status'] = 'success';
$response['type'] = 'redirect';
$response['message'] = '';
}
}
} else {
$err_msg = $arm_global_settings->common_message['arm_inactive_payment_gateway'];
$validate_msgs['payment_gateway'] = (!empty($err_msg)) ? $err_msg : __('Payment gateway is not active, please contact site administrator.', 'ARMember');
$payment_done = array('status' => FALSE);
}
} else {
if ($is_update_plan) {
$arm_subscription_plans->arm_update_user_subscription($user_id, $plan_id);
} else {
$arm_subscription_plans->arm_add_membership_history($user_id, $plan_id, 'change_subscription');
}
$response['status'] = 'success';
$response['type'] = 'redirect';
$response['message'] = '';
}
}
} else {
if (!empty($modules['plans']) && $plan->is_paid()) {
if (!empty($payment_gateway_options)) {
if ($payment_gateway == 'bank_transfer') {
$payment_mode_bt = "manual_subscription";
if ($plan->is_recurring()) {
$payment_mode_bt = "manual_subscription";
}
if (!$plan->is_recurring() || $payment_mode == 'manual_subscription') {
$arm_payment_gateways->arm_bank_transfer_payment_gateway_action($payment_gateway, $payment_gateway_options, $post_data, $entry_id);
global $payment_done;
$payment_log_id = '';
if($payment_done['status']==1)
{
$payment_log_id = $payment_done['log_id'];
}
$response['status'] = 'success';
$response['type'] = 'redirect';
$response['message'] = '';
} else {
$validate_msgs['payment_failed'] = __('Selected plan is not valid for bank transfer.', 'ARMember');
}
} else {
$post_data = apply_filters('arm_change_posted_data_before_payment_outside', $post_data, $payment_gateway, $payment_gateway_options, $entry_id);
do_action('arm_payment_gateway_validation_from_setup', $payment_gateway, $payment_gateway_options, $post_data, $entry_id);
global $payment_done;
if (isset($payment_done['status']) && $payment_done['status'] === FALSE) {
$validate_msgs['payment_failed'] = $payment_done['error'];
}
}
} else {
if ($plan->is_recurring() && $plan->has_trial_period() && $payment_mode == 'manual_subscription' && $planOptions['trial']['amount'] == 0) {
$payment_data = array(
'arm_user_id' => '0',
'arm_plan_id' => (!empty($plan_id) ? $plan_id : 0),
'arm_payment_gateway' => 'paypal',
'arm_payment_type' => $plan->payment_type,
'arm_token' => '-',
'arm_payer_email' => (isset($post_data['user_email'])) ? sanitize_email($post_data['user_email']) : '',
'arm_receiver_email' => '',
'arm_transaction_id' => '-',
'arm_transaction_payment_type' => $plan->payment_type,
'arm_transaction_status' => 'completed',
'arm_payment_mode' => $payment_mode,
'arm_payment_date' => date('Y-m-d H:i:s'),
'arm_amount' => 0,
'arm_currency' => 'USD',
'arm_response_text' => '',
'arm_extra_vars' => '',
'arm_created_date' => current_time('mysql')
);
$payment_log_id = $arm_payment_gateways->arm_save_payment_log($payment_data);
$payment_done = array('status' => TRUE, 'log_id' => $payment_log_id, 'entry_id' => $entry_id);
} else {
$err_msg = $arm_global_settings->common_message['arm_inactive_payment_gateway'];
$validate_msgs['payment_gateway'] = (!empty($err_msg)) ? $err_msg : __('Payment gateway is not active, please contact site administrator.', 'ARMember');
$payment_done = array('status' => FALSE);
}
}
} else {
$payment_done = array('status' => TRUE);
}
if (!empty($modules['forms']) && $payment_done['status'] == TRUE) {
if (in_array($form->type, array('registration'))) {
$post_data['arm_update_user_from_profile'] = 0;
$user_id = $arm_member_forms->arm_register_new_member($post_data, $form);
if (is_numeric($user_id) && !is_array($user_id)) {
if(!empty($payment_log_id))
{
$armLogTable = $ARMember->tbl_arm_bank_transfer_log;
$chk_log_detail = $wpdb->get_row("SELECT `arm_log_id`, `arm_amount` FROM `{$armLogTable}` WHERE `arm_log_id`='{$payment_log_id}'");
if (!empty($chk_log_detail)) {
$user_register_verification = isset($arm_global_settings->global_settings['user_register_verification']) ? $arm_global_settings->global_settings['user_register_verification'] : 'auto';
if($chk_log_detail->arm_amount==0 && $user_register_verification == 'auto')
{
$arm_transaction->arm_change_bank_transfer_status($payment_log_id, '1');
}
}
}
$response['status'] = 'success';
$response['type'] = 'redirect';
$user_info = get_userdata($user_id);
$username = $user_info->user_login;
$setup_redirect = str_replace('{ARMCURRENTUSERNAME}', $username, $setup_redirect);
$setup_redirect = str_replace('{ARMCURRENTUSERID}', $user_id, $setup_redirect);
$response['message'] = '';
} else {
$validate_msgs['register_error'] = $arm_errors->get_error_messages('arm_reg_error');
}
}
}
}
} else {
$err_msg = $arm_global_settings->common_message['arm_general_msg'];
$validate_msgs['entry_message'] = (!empty($err_msg)) ? $err_msg : __('Sorry, Something went wrong. Please contact to site administrator.', 'ARMember');
}
}
if (!empty($validate_msgs)) {
$response['status'] = 'error';
$response['type'] = 'message';
$response['message'] = '