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. |