lifterlms_template_my_courses_loop( LLMS_Student $student = null, bool $preview = false )
Get course tiles for a student’s courses
Parameters Parameters
- $student
-
(LLMS_Student) (Optional) LLMS_Student (current student if none supplied). Default
null
.Default value: null
- $preview
-
(bool) (Optional) If true, outputs a short list of courses (based on dashboard_recent_courses filter). Default
false
.Default value: false
Return Return
(void)
Source Source
File: includes/functions/llms.functions.templates.dashboard.php
*/ function lifterlms_template_my_courses_loop( $student = null, $preview = false ) { $student = llms_get_student( $student ); if ( ! $student ) { return; } $courses = $student->get_courses( /** * Filter the query args to retrieve the courses ids to be used for the "my_courses" loop. * * @since unknown * * @param array $args The query args. */ apply_filters( 'llms_my_courses_loop_courses_query_args', array( 'limit' => 500, ), $student ) ); if ( ! $courses['results'] ) { printf( '<p>%s</p>', /** * Not enrolled text. * * Allows developers to filter the text to be displayed when the student is not enrolled in any courses. * * @since 7.1.3 * * @param string $not_enrolled_text The text to be displayed when the student is not enrolled in any course. */ apply_filters( 'lifterlms_dashboard_courses_not_enrolled_text', esc_html__( 'You are not enrolled in any courses.', 'lifterlms' ) ) ); } else { add_action( 'lifterlms_after_loop_item_title', 'lifterlms_template_loop_enroll_status', 25 ); add_action( 'lifterlms_after_loop_item_title', 'lifterlms_template_loop_enroll_date', 30 ); // get sorting option. $option = get_option( 'lifterlms_myaccount_courses_in_progress_sorting', 'date,DESC' ); // parse to order & orderby. $option = explode( ',', $option ); $orderby = ! empty( $option[0] ) ? $option[0] : 'date'; $order = ! empty( $option[1] ) ? $option[1] : 'DESC'; // Enrollment date will obey the results order. if ( 'date' === $orderby ) { $orderby = 'post__in'; } elseif ( 'order' === $orderby ) { // Add secondary sorting by `post_title` when the primary sort is `menu_order`. $orderby = 'menu_order post_title'; } /** * Filter the number of courses per page to be displayed in the dashboard. * * @since unknown * * @param int $per_page The number or courses per page to be displayed. Defaults to the 'Courses per page' course catalog's setting. */ $per_page = apply_filters( 'llms_dashboard_courses_per_page', get_option( 'lifterlms_shop_courses_per_page', 9 ) ); if ( $preview ) { /** * Filter the number of courses per page to be displayed in the dashboard, when outputting a short list of courses. * * @since unknown * * @param int $per_page The number or courses per page to be displayed. Default is `3`. */ $per_page = apply_filters( 'llms_dashboard_recent_courses_count', llms_get_loop_columns() ); } /** * Filter the wp query args to retrieve the courses for the "my_courses" loop. * * @since unknown * * @param array $args The query args. */ $query_args = apply_filters( 'llms_dashboard_courses_wp_query_args', array( 'paged' => llms_get_paged_query_var(), 'orderby' => $orderby, 'order' => $order, 'post__in' => $courses['results'], 'post_status' => 'publish', 'post_type' => 'course', 'posts_per_page' => $per_page, ) ); $query = new WP_Query( $query_args ); // Prevent pagination on the preview. if ( $preview ) { $query->max_num_pages = 1; }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
6.3.0 | Fix paged query not working when using plain permalinks. |
3.37.15 | Added secondary sorting by post_title when the primary sort is menu_order . |
3.26.3 | Unknown. |
3.14.0 | Introduced. |