diff --git a/main/auth/inscription.php b/main/auth/inscription.php index b60d9a1ee9..c5c0d7723f 100755 --- a/main/auth/inscription.php +++ b/main/auth/inscription.php @@ -61,6 +61,10 @@ $user_already_registered_show_terms = false; if (api_get_setting('allow_terms_conditions') == 'true') { $user_already_registered_show_terms = isset($_SESSION['term_and_condition']['user_id']); } + +$sessionPremiumChecker = Session::read('SessionIsPremium'); +$sessionId = Session::read('sessionId'); + // Direct Link Session Subscription feature #12220 $sessionRedirect = isset($_REQUEST['s']) && !empty($_REQUEST['s']) ? $_REQUEST['s'] : null; $onlyOneCourseSessionRedirect = isset($_REQUEST['cr']) && !empty($_REQUEST['cr']) ? $_REQUEST['cr'] : null; @@ -629,7 +633,7 @@ if ($form->validate()) { } // Saving user to Session if it was set - if (!empty($sessionToRedirect)) { + if (!empty($sessionToRedirect) && !$sessionPremiumChecker) { $sessionInfo = api_get_session_info($sessionToRedirect); if (!empty($sessionInfo)) { SessionManager::subscribe_users_to_session( @@ -852,6 +856,13 @@ if ($form->validate()) { } } + if ($sessionPremiumChecker && $sessionId) { + header('Location:' . api_get_path(WEB_PLUGIN_PATH) . 'buycourses/src/process.php?i=' . $sessionId . '&t=2'); + Session::erase('SessionIsPremium'); + Session::erase('sessionId'); + exit; + } + SessionManager::redirectToSession(); $form_data = CourseManager::redirectToCourse($form_data); diff --git a/main/session/about.php b/main/session/about.php index bb9b30b76f..12d71e3b87 100644 --- a/main/session/about.php +++ b/main/session/about.php @@ -6,6 +6,7 @@ use Chamilo\CourseBundle\Entity\CCourseDescription; use Chamilo\CoreBundle\Entity\SequenceResource; use Chamilo\UserBundle\Entity\Repository\UserRepository; use Chamilo\UserBundle\Entity\User; +use ChamiloSession as Session; /** * Session about page @@ -193,12 +194,20 @@ $template->assign( ); +$plugin = BuyCoursesPlugin::create(); +$checker = $plugin->get('paypal_enable') || $plugin->get('transfer_enable') || $plugin->get('culqi_enable'); + +if ($checker) { + Session::write('SessionIsPremium', true); + Session::write('sessionId', $sessionId); +} + $redirectToSession = api_get_configuration_value('allow_redirect_to_session_after_inscription_about'); $redirectToSession = $redirectToSession ? '?s=' . $sessionId : false; $coursesInThisSession = SessionManager::get_course_list_by_session_id($sessionId); $coursesCount = count($coursesInThisSession); -$redirectToSession = $coursesCount == 1 ? $redirectToSession . '&cr=' . array_values($coursesInThisSession)[0]['directory'] : $redirectToSession; +$redirectToSession = $coursesCount == 1 && $redirectToSession ? $redirectToSession . '&cr=' . array_values($coursesInThisSession)[0]['directory'] : $redirectToSession; $template->assign('redirect_to_session', $redirectToSession); $template->assign('courses', $courses);