/** * get_archive_query_args function. * * @access public * @param string $type (default: '') * @param int $amount (default: 0) * @param array $includes (default: array()) * @return array */ public function get_archive_query_args($type = '', $amount = 0, $includes = array(), $excludes = array()) { global $wp_query; if (0 == $amount && (isset(Sensei()->settings->settings['course_archive_amount']) && 'usercourses' != $type && 0 < absint(Sensei()->settings->settings['course_archive_amount']))) { $amount = absint(Sensei()->settings->settings['course_archive_amount']); } else { if (0 == $amount) { $amount = $wp_query->get('posts_per_page'); } // End If Statement } // End If Statement $stored_order = get_option('sensei_course_order', ''); $order = 'ASC'; $orderby = 'menu_order'; if (empty($stored_order)) { $order = 'DESC'; $orderby = 'date'; } switch ($type) { case 'usercourses': $post_args = array('post_type' => 'course', 'orderby' => $orderby, 'order' => $order, 'post_status' => 'publish', 'include' => $includes, 'exclude' => $excludes, 'suppress_filters' => 0); break; case 'freecourses': $post_args = array('post_type' => 'course', 'orderby' => $orderby, 'order' => $order, 'post_status' => 'publish', 'exclude' => $excludes, 'suppress_filters' => 0); // Sub Query to get all WooCommerce Products that have Zero price $post_args['meta_query'] = Sensei_WC::get_free_courses_meta_query_args(); break; case 'paidcourses': $post_args = array('post_type' => 'course', 'orderby' => $orderby, 'order' => $order, 'post_status' => 'publish', 'exclude' => $excludes, 'suppress_filters' => 0); // Sub Query to get all WooCommerce Products that have price greater than zero $post_args['meta_query'] = Sensei_WC::get_paid_courses_meta_query_args(); break; case 'featuredcourses': $post_args = array('post_type' => 'course', 'orderby' => $orderby, 'order' => $order, 'post_status' => 'publish', 'meta_value' => 'featured', 'meta_key' => '_course_featured', 'meta_compare' => '=', 'exclude' => $excludes, 'suppress_filters' => 0); break; default: $post_args = array('post_type' => 'course', 'orderby' => $orderby, 'order' => $order, 'post_status' => 'publish', 'exclude' => $excludes, 'suppress_filters' => 0); break; } $post_args['posts_per_page'] = $amount; $paged = $wp_query->get('paged'); $post_args['paged'] = empty($paged) ? 1 : $paged; if ('newcourses' == $type) { $post_args['orderby'] = 'date'; $post_args['order'] = 'DESC'; } return $post_args; }