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
$orders = array();
if ( $q->have_posts() ) {
foreach ( $q->posts as $post ) {
$orders[ $post->ID ] = new LLMS_Order( $post );
}
}
return array(
'count' => count( $q->posts ),
'page' => $page,
'pages' => $q->max_num_pages,
'orders' => $orders,
);
}
/**
* Get students progress through a course or track
*
* @param int $object_id course or track id
* @param string $type object type [course|course_track|section]
* @param boolean $use_cache if true, will use cached data from the usermeta table (if available)
* if false, will bypass cached data and recalculate the progress from scratch
* @return float
* @since 3.0.0
* @version 3.24.0
*/
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 ) {
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |