Beispiel #1
0
 /**
  * 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;
 }