LLMS_Student::get_progress( int $object_id, string $type = 'course', boolean $use_cache = true )
Get students progress through a course or track
Parameters Parameters
- $object_id
-
(int) (Required) course or track id
- $type
-
(string) (Optional) object type [course|course_track|section]
Default value: 'course'
- $use_cache
-
(boolean) (Optional) if true, will use cached data from the usermeta table (if available) if false, will bypass cached data and recalculate the progress from scratch
Default value: true
Return Return
(float)
Source Source
File: includes/models/model.llms.student.php
public function get_progress( $object_id, $type = 'course', $use_cache = true ) { $ret = 0; $cache_key = sprintf( '%1$s_%2$d_progress', $type, $object_id ); $cached = $use_cache ? $this->get( $cache_key ) : ''; if ( '' === $cached ) { $total = 0; $completed = 0; if ( 'course' === $type ) { $course = new LLMS_Course( $object_id ); $lessons = $course->get_lessons( 'ids' ); $total = count( $lessons ); foreach ( $lessons as $lesson ) { if ( $this->is_complete( $lesson, 'lesson' ) ) { $completed++; } } } elseif ( 'course_track' === $type ) { $track = new LLMS_Track( $object_id ); $courses = $track->get_courses(); $total = count( $courses ); foreach ( $courses as $course ) { if ( $this->is_complete( $course->ID, 'course' ) ) { $completed++; } } } elseif ( 'section' === $type ) { $section = new LLMS_Section( $object_id ); $lessons = $section->get_lessons( 'ids' ); $total = count( $lessons ); foreach ( $lessons as $lesson ) { if ( $this->is_complete( $lesson, 'lesson' ) ) { $completed++; } } } $ret = ( ! $completed || ! $total ) ? 0 : round( 100 / ( $total / $completed ), 2 ); $this->set( $cache_key, $ret ); } else { $ret = $cached; }// End if(). /** * @filter llms_student_get_progress * Filters the return of get_progress method * @param float $ret student's progress * @param int $object_id WP_Post ID of the object * @param string $type object post type [course|course_track|section] * @param int $user_id WP_User ID of the student * @since unknown * @version 3.24.0 */ return apply_filters( 'llms_student_get_progress', $ret, $object_id, $type, $this->get_id() ); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |