LLMS_Table_Students::get_data( string $key, LLMS_Student $student )
Retrieve data for the columns
Parameters Parameters
- $key
-
(string) (Required) The column id / key.
- $student
-
(LLMS_Student) (Required) Instance of the LLMS_Student.
Return Return
(mixed)
Source Source
File: includes/admin/reporting/tables/llms.table.students.php
public function get_data( $key, $student ) {
switch ( $key ) {
case 'achievements':
$url = LLMS_Admin_Reporting::get_current_tab_url(
array(
'stab' => 'achievements',
'student_id' => $student->get_id(),
)
);
$value = '<a href="' . esc_url( $url ) . '">' . $student->get_awards_count( 'achievement' ) . '</a>';
break;
case 'certificates':
$url = LLMS_Admin_Reporting::get_current_tab_url(
array(
'stab' => 'certificates',
'student_id' => $student->get_id(),
)
);
$value = '<a href="' . esc_url( $url ) . '">' . $student->get_awards_count( 'certificate' ) . '</a>';
break;
case 'completions':
$courses = $student->get_completed_courses();
$value = count( $courses['results'] );
break;
case 'enrollments':
$url = LLMS_Admin_Reporting::get_current_tab_url(
array(
'stab' => 'courses',
'student_id' => $student->get_id(),
)
);
$enrollments = $student->get_courses(
array(
'limit' => 1,
)
);
$value = '<a href="' . esc_url( $url ) . '">' . $enrollments['found'] . '</a>';
break;
case 'id':
$id = $student->get_id();
if ( current_user_can( 'list_users' ) ) {
$value = '<a href="' . esc_url( get_edit_user_link( $id ) ) . '">' . $id . '</a>';
} else {
$value = $id;
}
break;
case 'last_seen':
$query = new LLMS_Events_Query(
array(
'actor' => $student->get_id(),
'per_page' => 1,
'sort' => array(
'date' => 'DESC',
),
'no_found_rows' => true,
)
);
if ( $query->has_results() ) {
$events = $query->get_events();
$last = array_shift( $events );
$value = $last->get( 'date' );
} else {
$value = $student->get( 'last_login' );
}
$value = $value ? date_i18n( get_option( 'date_format' ), is_numeric( $value ) ? $value : strtotime( $value ) ) : '–';
break;
case 'memberships':
$url = LLMS_Admin_Reporting::get_current_tab_url(
array(
'stab' => 'memberships',
'student_id' => $student->get_id(),
)
);
$value = '<a href="' . esc_url( $url ) . '">' . count( $student->get_membership_levels() ) . '</a>';
break;
case 'name':
$first = $student->get( 'first_name' );
$last = $student->get( 'last_name' );
if ( ! $first || ! $last ) {
$value = $student->get( 'display_name' );
} else {
$value = $last . ', ' . $first;
}
$url = LLMS_Admin_Reporting::get_current_tab_url(
array(
'student_id' => $student->get_id(),
)
);
$value = '<a href="' . esc_url( $url ) . '">' . $value . '</a>';
break;
case 'overall_grade':
$value = $student->get_overall_grade( true );
if ( is_numeric( $value ) ) {
$value .= '%';
}
break;
case 'overall_progress':
$value = $this->get_progress_bar_html( $student->get_overall_progress( true ) );
break;
case 'registered':
$value = $student->get_registration_date();
break;
default:
$value = $key;
}
return $this->filter_get_data( $value, $key, $student );
}
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 6.0.0 | Don't access LLMS_Events_Query properties directly Use LLMS_Student::get_awards_count() for retrieving the number of earned achievements and certificates. |
| 4.7.0 | Speed up the query used to retrieve the last seen column by avoiding the found rows calculation. |
| 3.36.1 | Fixed "Last Seen" column displaying wrong date when the student last login date was saved as timestamp. |
| 3.36.0 | Added "Last Seen" column. |
| 3.2.0 | |
| 3.15.0 | Introduced. |