course_post_type || ! empty($course_category) ) && $wp_query->is_archive){ $template = tutor_get_template('archive-course'); return $template; } return $template; } /** * @param $query * * limit for course archive listing * * Make a page to archive listing for courses */ public function limit_course_query_archive($query){ if ($query->is_main_query() && ! $query->is_feed() && ! is_admin() && is_page() ){ $queried_object = get_queried_object(); if ($queried_object instanceof \WP_Post){ $page_id = $queried_object->ID; $selected_archive_page = (int) tutor_utils()->get_option('course_archive_page'); if ($page_id === $selected_archive_page){ $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; query_posts(array('post_type' => $this->course_post_type, 'paged' => $paged )); } } } if ( $query->is_archive && $query->is_main_query() && ! $query->is_feed() && ! is_admin() ){ $post_type = get_query_var('post_type'); $course_category = get_query_var('course-category'); if ( ($post_type === $this->course_post_type || ! empty($course_category) )){ $courses_per_page = (int) tutor_utils()->get_option('courses_per_page', 10); $query->set('posts_per_page', $courses_per_page); $course_filter = 'newest_first'; if ( ! empty($_GET['tutor_course_filter'])){ $course_filter = sanitize_text_field($_GET['tutor_course_filter']); } switch ($course_filter){ case 'newest_first': $query->set('orderby', 'ID'); $query->set('order', 'desc'); break; case 'oldest_first': $query->set('orderby', 'ID'); $query->set('order', 'asc'); break; case 'course_title_az': $query->set('orderby', 'post_title'); $query->set('order', 'asc'); break; case 'course_title_za': $query->set('orderby', 'post_title'); $query->set('order', 'desc'); break; } } } } /** * @param $template * * @return bool|string * * Load Single Course Template * * @since v.1.0.0 */ public function load_single_course_template($template){ global $wp_query; if ($wp_query->is_single && ! empty($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] === $this->course_post_type){ $student_must_login_to_view_course = tutor_utils()->get_option('student_must_login_to_view_course'); if ($student_must_login_to_view_course){ return tutor_get_template('login'); } if (empty( $wp_query->query_vars['course_subpage'])) { $template = tutor_get_template( 'single-course' ); if ( is_user_logged_in() ) { if ( tutor_utils()->is_enrolled() ) { $template = tutor_get_template( 'single-course-enrolled' ); } } }else{ //If Course Subpage Exists if ( is_user_logged_in() ) { $course_subpage = $wp_query->query_vars['course_subpage']; $template = tutor_get_template( 'single-course-enrolled-'.$course_subpage); }else{ $template = tutor_get_template('login'); } } return $template; } return $template; } /** * @param $template * * @return bool|string * * Load lesson template * * @since v.1.0.0 */ public function load_single_lesson_template($template){ global $wp_query; if ($wp_query->is_single && ! empty($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] === $this->lesson_post_type){ $page_id = get_the_ID(); do_action('tutor_lesson_load_before', $template); setup_postdata($page_id); if (is_user_logged_in()){ $is_course_enrolled = tutor_utils()->is_course_enrolled_by_lesson(); if ($is_course_enrolled) { $template = tutor_get_template( 'single-lesson' ); }else{ //You need to enroll first $template = tutor_get_template( 'single.lesson.required-enroll' ); } }else{ $template = tutor_get_template('login'); } wp_reset_postdata(); return apply_filters('tutor_lesson_template', $template); } return $template; } /** * @param $template * * @return mixed * * Play the video in this url. */ public function play_private_video($template){ global $wp_query; if ($wp_query->is_single && ! empty($wp_query->query_vars['lesson_video']) && $wp_query->query_vars['lesson_video'] === 'true') { $isPublicVideo = apply_filters('tutor_video_stream_is_public', false, get_the_ID()); if ($isPublicVideo){ $video_info = tutor_utils()->get_video_info(); if ( $video_info ) { $stream = new Video_Stream( $video_info->path ); $stream->start(); } exit(); } if (tutor_utils()->is_course_enrolled_by_lesson()) { $video_info = tutor_utils()->get_video_info(); if ( $video_info ) { $stream = new Video_Stream( $video_info->path ); $stream->start(); } }else{ _e('Permission denied', 'tutor'); } exit(); } return $template; } /** * @param $content * * @return mixed * * Tutor Dashboard Page, Responsible to show student dashboard * * @since v.1.0.0 */ public function convert_static_page_to_template($content){ //Student Registration Page $student_dashboard_page_id = (int) tutor_utils()->get_option('student_dashboard'); if ($student_dashboard_page_id === get_the_ID()){ $shortcode = new Shortcode(); return $shortcode->tutor_student_dashboard(); } //Instructor Registration Page $instructor_register_page_page_id = (int) tutor_utils()->get_option('instructor_register_page'); if ($instructor_register_page_page_id === get_the_ID()){ $shortcode = new Shortcode(); return $shortcode->instructor_registration_form(); } $student_register_page_id = (int) tutor_utils()->get_option('student_register_page'); if ($student_register_page_id === get_the_ID()){ $shortcode = new Shortcode(); return $shortcode->student_registration_form(); } return $content; } /** * @param $template * * @return bool|string * * @since v.1.0.0 */ public function load_quiz_template($template){ global $wp_query; if ($wp_query->is_single && ! empty($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] === 'tutor_quiz'){ if (is_user_logged_in()){ $template = tutor_get_template( 'single-quiz' ); }else{ $template = tutor_get_template('login'); } return $template; } return $template; } /** * @param $template * * @return bool|string * * @since v.1.0.0 */ public function student_public_profile($template){ global $wp_query; if ( ! empty($wp_query->query['tutor_student_username'])){ $template = tutor_get_template( 'student-public-profile' ); } return $template; } /** * @return string * Show student Profile * * @since v.1.0.0 */ public function student_public_profile_title(){ global $wp_query; if ( ! empty($wp_query->query['tutor_student_username'])){ global $wpdb; $user_name = sanitize_text_field($wp_query->query['tutor_student_username']); $user = $wpdb->get_row("select display_name from {$wpdb->users} WHERE user_login = '{$user_name}' limit 1; "); if ( ! empty($user->display_name)){ return sprintf("%s's Profile page ", $user->display_name ); } } return ''; } }