LLMS_Student::get_overall_grade( boolean $use_cache = true )
Retrieve the student’s overall grade
Description Description
Grade = sum of grades for all courses divided by number of enrolled courses if a course has no quizzes in it, it cannot be graded and is therefore excluded from the calculation.
Cached data is automatically cleared when a student completes a quiz.
Parameters Parameters
- $use_cache
-
(boolean) (Optional) If
false
, calculates the grade, otherwise utilizes cached data (if available)Default value: true
Return Return
(float|string) Grade as float or "N/A"
Source Source
File: includes/models/model.llms.student.php
public function get_overall_grade( $use_cache = true ) { $grade = null; // Attempt to pull from the cache first. if ( $use_cache ) { $grade = $this->get( $this->meta_prefix . 'overall_grade' ); if ( is_numeric( $grade ) ) { $grade = floatval( $grade ); } } // Cache disabled or no cached data available. if ( ! $use_cache || null === $grade || '' === $grade ) { $grades = array(); // Get courses. $courses = $this->get_courses( array( 'limit' => 9999, ) ); // Loop through courses. foreach ( $courses['results'] as $course_id ) { // Get course grade. $g = $this->get_grade( $course_id ); // If an actual grade (not N/A) is returned. if ( is_numeric( $g ) ) { array_push( $grades, $g ); } } // If we have at least one grade. $count = count( $grades ); if ( $count ) { $grade = round( array_sum( $grades ) / $count, 2 ); } else { $grade = _x( 'N/A', 'overall grade when no quizzes', 'lifterlms' ); } // Cache the grade. $this->set( 'overall_grade', $grade ); } return apply_filters( 'llms_student_get_overall_grade', $grade, $this ); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.2.0 | Introduced. |