diff --git a/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php b/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php index 2d9a609819..8d563e0ecb 100644 --- a/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php +++ b/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php @@ -208,6 +208,8 @@ if ($verified) { $result['errorMessage'] = 'User can not be subscribed'; } $result['pass'] = false; + $url = $plugin->getTermsUrl($data, ADVANCED_SUBSCRIPTION_TERMS_MODE_FINAL); + Header::location($url); } } diff --git a/plugin/advanced_subscription/config.php b/plugin/advanced_subscription/config.php index 6bd8b7eef1..45f4fd632a 100644 --- a/plugin/advanced_subscription/config.php +++ b/plugin/advanced_subscription/config.php @@ -29,6 +29,7 @@ define('ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED', 10); define('ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP', 0); define('ADVANCED_SUBSCRIPTION_TERMS_MODE_REJECT', 1); +define('ADVANCED_SUBSCRIPTION_TERMS_MODE_FINAL', 2); diff --git a/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php b/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php index af8049e51a..bd112b7d56 100644 --- a/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php +++ b/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php @@ -1195,17 +1195,32 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface */ public function getTermsUrl($params, $mode = ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP) { - $url = api_get_path(WEB_PLUGIN_PATH) . 'advanced_subscription/src/terms_and_conditions.php?' . - 'a=' . Security::remove_XSS($params['action']) . '&' . - 's=' . intval($params['sessionId']) . '&' . - 'current_user_id=' . intval($params['currentUserId']) . '&' . - 'e=' . intval($params['newStatus']) . '&' . - 'u=' . intval($params['studentUserId']) . '&' . - 'q=' . intval($params['queueId']) . '&' . - 'is_connected=' . 1 . '&' . - 'profile_completed=' . intval($params['profile_completed']) . '&' . - 'r=' . intval($mode) . '&' . - 'v=' . $this->generateHash($params); + $urlParams = array( + 'a' => Security::remove_XSS($params['action']), + 's' => intval($params['sessionId']), + 'current_user_id' => intval($params['currentUserId']), + 'e' => intval($params['newStatus']), + 'u' => intval($params['studentUserId']), + 'q' => intval($params['queueId']), + 'is_connected' => 1, + 'profile_completed' => intval($params['profile_completed']), + 'v' => $this->generateHash($params) + ); + + switch ($mode) { + case ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP: + // no break + case ADVANCED_SUBSCRIPTION_TERMS_MODE_FINAL: + $urlParams['r'] = 0; + break; + case ADVANCED_SUBSCRIPTION_TERMS_MODE_REJECT: + $urlParams['r'] = 1; + break; + } + + $url = api_get_path(WEB_PLUGIN_PATH) . "advanced_subscription/src/terms_and_conditions.php?"; + $url .= http_build_query($urlParams); + // Launch popup if ($mode == ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP) { $url = 'javascript:void(window.open(\'' . $url .'\',\'AdvancedSubscriptionTerms\', \'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=700px,height=600px\', \'100\' ))';