function __construct($search_term = '', $page_num = '', $courses_per_page = 10, $category = 0)
 {
     $this->is_light = CoursePress_Capabilities::is_pro() ? false : true;
     if ($this->is_light) {
         $page_num = 1;
         $this->courses_per_page = 2;
     } else {
         if ($this->courses_per_page !== $courses_per_page) {
             $this->courses_per_page = $courses_per_page;
         }
     }
     $this->search_term = $search_term;
     $this->raw_page = '' == $page_num ? false : (int) $page_num;
     $this->page_num = (int) ('' == $page_num) ? 1 : $page_num;
     $selected_course_order_by_type = get_option('course_order_by_type', 'DESC');
     $selected_course_order_by = get_option('course_order_by', 'post_date');
     $args = array('posts_per_page' => $this->courses_per_page, 'offset' => ($this->page_num - 1) * $this->courses_per_page, 'post_type' => $this->post_type, 'post_status' => 'any');
     if (!current_user_can('manage_options')) {
         $instructor = new Instructor(get_current_user_id());
         $instructor_courses = $instructor->get_accessable_courses();
         $args['post__in'] = $instructor_courses;
     }
     if ($category !== 0) {
         $args['tax_query'] = array(array('taxonomy' => 'course_category', 'field' => 'term_id', 'terms' => array($category)));
     }
     if ($selected_course_order_by == 'course_order') {
         /* FIX FOR 4.1 */
         $args['meta_query'] = array('relation' => 'OR', array('key' => 'course_order', 'compare' => 'NOT EXISTS'), array('key' => 'course_order', 'compare' => 'EXISTS'));
         $args['orderby'] = 'meta_value';
         $args['order'] = $selected_course_order_by_type;
     } else {
         $args['orderby'] = $selected_course_order_by;
         $args['order'] = $selected_course_order_by_type;
     }
     $this->args = $args;
 }