lifterlms_template_student_dashboard_my_grades()
Output the “My Grades” template screen on the student dashboard.
Return Return
(void)
Source Source
File: includes/functions/llms.functions.templates.dashboard.php
function lifterlms_template_student_dashboard_my_grades() { $student = llms_get_student(); if ( ! $student ) { return; } global $wp_query, $wp_rewrite; $slug = $wp_query->query['my-grades'] ?? ''; // List courses. if ( empty( $slug ) || false !== strpos( $slug, $wp_rewrite->pagination_base . '/' ) ) { /** * Filter the number of courses per pages to be displayed in my grades * * @since unknown * * @param int $per_page The number of courses per pages to be displayed. Default is `10`. */ $per_page = apply_filters( 'llms_sd_grades_courses_per_page', 10 ); $page = llms_get_paged_query_var(); $sort = llms_filter_input_sanitize_string( INPUT_GET, 'sort' ); if ( ! $sort ) { $sort = 'date_desc'; } $parts = explode( '_', $sort ); $courses = $student->get_courses( array( 'limit' => $per_page, 'skip' => $per_page * ( $page - 1 ), 'orderby' => $parts[0], 'order' => strtoupper( $parts[1] ), ) ); add_filter( 'paginate_links', 'llms_modify_dashboard_pagination_links' ); llms_get_template( 'myaccount/my-grades.php', array( 'courses' => array_map( 'llms_get_post', $courses['results'] ), 'student' => $student, 'sort' => $sort, 'pagination' => array( 'current' => absint( $page ), 'max' => absint( ceil( $courses['found'] / $per_page ) ), ), ) ); remove_filter( 'paginate_links', 'llms_modify_dashboard_pagination_links' ); // Show single. } else { $course = get_posts( array( 'name' => $slug, 'post_type' => 'course', ) ); $course = array_shift( $course ); if ( $course ) { $course = llms_get_post( $course ); } // It's not stupid if it works unless it is stupid. $post_ids = array_merge( array( $course->get( 'id' ) ), $course->get_sections( 'ids' ), $course->get_lessons( 'ids' ), $course->get_quizzes() ); $achievements = $student->get_achievements( array( 'related_posts' => $post_ids, 'per_page' => 1, 'no_found_rows' => true, ) )->get_awards(); $latest_achievement = $achievements ? $achievements[0] : false; $last_activity = $student->get_events( array( 'per_page' => 1, 'post_id' => $course->get( 'id' ), ) ); llms_get_template( 'myaccount/my-grades-single.php', array( 'course' => $course, 'student' => $student, 'latest_achievement' => $latest_achievement, 'last_activity' => $last_activity ? strtotime( $last_activity[0]->get( 'updated_date' ) ) : false, ) ); } }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
6.3.0 | Prevent trying to access to a non existing index when retrieving the slug from the $wp_query . Fixed pagination not working when using plain permalinks. |
6.0.0 | Use updated method signature for LLMS_Student::get_achievements() . |
5.9.0 | Stop using deprecated FILTER_SANITIZE_STRING . |
5.3.2 | Cast achievement_template ID to string when comparing to the list of achievement IDs related the course/membership (list of strings). |
3.26.3 | Unknown. |
3.24.0 | Introduced. |