/** * Check permission to view page * * @param file $template * * @return file */ function learn_press_page_controller($template) { if (get_post_type() == LP()->quiz_post_type && is_single()) { global $quiz; $user = LP()->user; $quiz = LP_Quiz::get_quiz(get_the_ID()); $quiz_status = LP()->user->get_quiz_status(get_the_ID()); $redirect = false; if (!$user->can('view-quiz', $quiz->id)) { if ($course = $quiz->get_course()) { $redirect = $course->permalink; } } elseif ($quiz_status == 'started' && (empty($_REQUEST['question']) && ($current_question = $user->get_current_quiz_question($quiz->id)))) { $redirect = $quiz->get_question_link($current_question); } elseif ($quiz_status == 'complete' && !empty($_REQUEST['question'])) { $redirect = get_the_permalink($quiz->id); } $redirect = apply_filters('learn_press_quiz_redirect_permalink', $redirect, $quiz_status, $quiz->id, $user); // prevent loop redirect if ($redirect && $redirect != learn_press_get_current_url()) { wp_redirect($redirect); exit; } } return $template; }
function learn_press_is_current_url($url) { return strcmp(learn_press_get_current_url(), learn_press_sanitize_url($url)) == 0; }