at path:
ROOT
/
wp-content
/
plugins
/
tutor
/
classes
/
Course_Widget.php
run:
R
W
Run
Addons.php
11.79 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Admin.php
26.61 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Ajax.php
17.03 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Announcements.php
2.79 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Assets.php
24.27 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Backend_Page_Trait.php
4.39 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
BaseController.php
1.47 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Config.php
3.16 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Container.php
4.85 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Course.php
94.45 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Course_Embed.php
2.55 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Course_Filter.php
8.68 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Course_List.php
14.68 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Course_Settings_Tabs.php
1.16 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Course_Widget.php
8.2 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Custom_Validation.php
513 By
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Dashboard.php
1.23 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Earnings.php
10.43 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
FormHandler.php
7.16 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Frontend.php
2.94 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Gutenberg.php
4.62 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Icon.php
11.49 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Input.php
9.08 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Instructor.php
13.2 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Instructors_List.php
13.09 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Lesson.php
19.92 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Options_V2.php
67.77 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Permalink.php
2 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Post_types.php
18.3 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Private_Course_Access.php
2.52 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Q_And_A.php
10.78 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Question_Answers_List.php
2.55 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Quiz.php
35.16 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
QuizBuilder.php
12.53 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Quiz_Attempts_List.php
7.28 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
RestAPI.php
7.97 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Reviews.php
3.72 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Rewrite_Rules.php
5.18 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Shortcode.php
14.18 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Singleton.php
1.08 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Student.php
10.44 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Students_List.php
3.03 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Taxonomies.php
8.2 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Template.php
14.52 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Theme_Compatibility.php
683 By
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Tools.php
3.33 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Tools_V2.php
18.56 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Tutor.php
36.45 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
TutorEDD.php
4.69 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Tutor_Base.php
1.48 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Tutor_Setup.php
33.34 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Upgrader.php
12.49 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
User.php
14.9 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Utils.php
270.91 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Video_Stream.php
3.94 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
WhatsNew.php
4.83 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Withdraw.php
9.49 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
Withdraw_Requests_List.php
6.24 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
WooCommerce.php
24.76 KB
2026-04-14 05:34:26
R
W
Run
Delete
Rename
error_log
up
📄
Course_Widget.php
Save
<?php /** * Course Widget Register * * @package Tutor * @author Themeum <support@themeum.com> * @link https://themeum.com * @since 1.3.1 */ namespace TUTOR; use Tutor\Models\CourseModel; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Course Widget Class * * @since 1.3.1 */ class Course_Widget extends \WP_Widget { /** * Constructor * * @since 1.3.1 * @return void */ public function __construct() { parent::__construct( 'tutor_course_widget', // Base ID. _x( 'Tutor Course', 'widget title', 'tutor' ), array( 'description' => _x( 'Display courses wherever widget support is available.', 'widget description', 'tutor' ), ) ); } /** * Front-end display of widget. * * @since 1.3.1 * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. * * @return void */ public function widget( $args, $instance ) { echo wp_kses( $args['before_widget'], array( 'section' => array( 'id' => true, 'class' => true, ), 'div' => array( 'id' => true, 'class' => true, ), ) ); if ( ! empty( $instance['title'] ) ) { echo wp_kses( $args['before_title'], array( 'h2' => array( 'class' => true ) ) ); echo esc_html( apply_filters( 'widget_title', $instance['title'] ) ); echo wp_kses( $args['after_title'], array( 'h2' => array() ) ); } $course_post_type = tutor()->course_post_type; $form_args = $instance; unset( $form_args['title'] ); $default_args = array( 'post_type' => $course_post_type, 'post_status' => 'publish', 'id' => '', 'exclude_ids' => '', 'category' => '', 'orderby' => 'ID', 'order' => 'DESC', 'count' => '6', ); $a = array_merge( $default_args, $form_args ); if ( ! empty( $a['id'] ) ) { $ids = (array) explode( ',', $a['id'] ); $a['post__in'] = $ids; } if ( ! empty( $a['exclude_ids'] ) ) { $exclude_ids = (array) explode( ',', $a['exclude_ids'] ); $a['post__not_in'] = $exclude_ids; } if ( ! empty( $a['category'] ) ) { $category = (array) explode( ',', $a['category'] ); $a['tax_query'] = array( array( 'taxonomy' => CourseModel::COURSE_CATEGORY, 'field' => 'term_id', 'terms' => $category, 'operator' => 'IN', ), ); } $a['posts_per_page'] = (int) $a['count']; wp_reset_query(); query_posts( $a ); ob_start(); tutor_load_template( 'widget.courses' ); $output = ob_get_clean(); wp_reset_query(); echo wp_kses_post( $output ); echo wp_kses( $args['after_widget'], array( 'section' => array(), 'div' => array(), ) ); } /** * Back-end widget form. * * @since 1.3.1 * @see WP_Widget::form() * * @param array $instance Previously saved values from database. * @return void */ public function form( $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'New title', 'tutor' ); $id = ! empty( $instance['id'] ) ? $instance['id'] : ''; $exclude_ids = ! empty( $instance['exclude_ids'] ) ? $instance['exclude_ids'] : ''; $category = ! empty( $instance['category'] ) ? $instance['category'] : ''; $orderby = ! empty( $instance['orderby'] ) ? $instance['orderby'] : ''; $order = ! empty( $instance['order'] ) ? $instance['order'] : ''; $count = ! empty( $instance['count'] ) ? $instance['count'] : '6'; ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"> <?php esc_html_e( 'Title', 'tutor' ); ?>: </label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>"> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'id' ) ); ?>"> <?php esc_html_e( 'ID', 'tutor' ); ?>: </label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'id' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'id' ) ); ?>" type="text" value="<?php echo esc_attr( $id ); ?>"> <br /> <span style="color: #AAAAAA"> <?php esc_html_e( 'Place single course id or comma (,) separated course ids', 'tutor' ); ?> </span> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'exclude_ids' ) ); ?>"><?php esc_attr_e( 'Exclude IDS:', 'tutor' ); ?></label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'exclude_ids' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'exclude_ids' ) ); ?>" type="text" value="<?php echo esc_attr( $exclude_ids ); ?>"> <br /> <span style="color: #AAAAAA"> <?php esc_html_e( 'Place comma (,) separated courses ids which you like to exclude from the query', 'tutor' ); ?> </span> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'category' ) ); ?>"> <?php esc_html_e( 'Category', 'tutor' ); ?>: </label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'category' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'category' ) ); ?>" type="text" value="<?php echo esc_attr( $category ); ?>"> <br /> <span style="color: #AAAAAA"> <?php esc_html_e( 'Place comma (,) separated category ids', 'tutor' ); ?> </span> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'orderby' ) ); ?>"> <?php esc_html_e( 'OrderBy', 'tutor' ); ?> </label> <select class="widefat" name="<?php echo esc_attr( $this->get_field_name( 'orderby' ) ); ?>" > <option value="ID" <?php selected( 'ID', $orderby ); ?> >ID</option> <option value="title" <?php selected( 'title', $orderby ); ?> >title</option> <option value="rand" <?php selected( 'rand', $orderby ); ?> >rand</option> <option value="date" <?php selected( 'date', $orderby ); ?> >date</option> <option value="menu_order" <?php selected( 'menu_order', $orderby ); ?> >menu_order</option> <option value="post__in" <?php selected( 'post__in', $orderby ); ?> >post__in</option> </select> <br /> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'order' ) ); ?>"> <?php esc_html_e( 'Order', 'tutor' ); ?> </label> <select class="widefat" name="<?php echo esc_attr( $this->get_field_name( 'order' ) ); ?>" > <option value="DESC" <?php selected( 'DESC', $order ); ?> >DESC</option> <option value="ASC" <?php selected( 'ASC', $order ); ?> >ASC</option> </select> <br /> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>"><?php esc_attr_e( 'Count:', 'tutor' ); ?></label> <input class="widefat tutor-form-number-verify" id="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'count' ) ); ?>" type="number" value="<?php echo esc_attr( $count ); ?>" min="1"> <br /> <span style="color: #AAAAAA"> <?php esc_html_e( 'Total results you like to show', 'tutor' ); ?> </span> </p> <?php } /** * Sanitize widget form values as they are saved. * * @since 1.3.1 * @see WP_Widget::update() * * @param array $new_instance Values just sent to be saved. * @param array $old_instance Previously saved values from database. * * @return array Updated safe values to be saved. */ public function update( $new_instance, $old_instance ) { $instance = array(); $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : ''; $instance['id'] = ( ! empty( $new_instance['id'] ) ) ? sanitize_text_field( $new_instance['id'] ) : ''; $instance['exclude_ids'] = ( ! empty( $new_instance['exclude_ids'] ) ) ? sanitize_text_field( $new_instance['exclude_ids'] ) : ''; $instance['category'] = ( ! empty( $new_instance['category'] ) ) ? sanitize_text_field( $new_instance['category'] ) : ''; $instance['orderby'] = ( ! empty( $new_instance['orderby'] ) ) ? sanitize_text_field( $new_instance['orderby'] ) : ''; $instance['order'] = ( ! empty( $new_instance['order'] ) ) ? sanitize_text_field( $new_instance['order'] ) : ''; $instance['count'] = ( ! empty( $new_instance['count'] ) ) ? sanitize_text_field( $new_instance['count'] ) : ''; return $instance; } }