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; }