|
Server IP : 72.167.149.90 / Your IP : 216.73.216.228 Web Server : Apache System : Linux server.zoomride.app 4.18.0-553.158.1.el8_10.x86_64 #1 SMP Wed Aug 26 03:18:33 EDT 2026 x86_64 User : zoomride2022 ( 1001) PHP Version : 8.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0700) : /home/zoomride2022/.trash/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
PK D�xZ���j j admin-ui.php<?php
add_action('admin_menu', 'mst_lms_register_scorm_progress_menu');
function mst_lms_register_scorm_progress_menu() {
add_menu_page(
'SCORM Progress',
'SCORM Progress',
'manage_options',
'scorm-progress',
'mst_lms_render_scorm_progress_page',
'dashicons-welcome-learn-more',
30
);
}
function mst_lms_render_scorm_progress_page() {
global $wpdb;
$scorm_table = $wpdb->prefix . 'stm_lms_user_course_scorm';
$user_courses_table = $wpdb->prefix . 'stm_lms_user_courses';
$users_table = $wpdb->prefix . 'users';
$posts_table = $wpdb->prefix . 'posts';
$results = $wpdb->get_results("
SELECT
uc.user_course_id,
uc.user_id,
uc.course_id,
uc.progress_percent,
u.display_name,
u.user_email,
p.post_title,
MAX(CASE WHEN sc.parameter = 'cmi.completion_status' THEN sc.value END) AS completion_status,
MAX(CASE WHEN sc.parameter = 'cmi.success_status' THEN sc.value END) AS success_status
FROM {$user_courses_table} uc
LEFT JOIN {$users_table} u ON uc.user_id = u.ID
LEFT JOIN {$posts_table} p ON uc.course_id = p.ID
LEFT JOIN {$scorm_table} sc ON uc.user_course_id = sc.user_course_id
GROUP BY uc.user_course_id
HAVING completion_status IS NOT NULL OR success_status IS NOT NULL
");
echo '<div class="wrap"><h1>SCORM Course Progress</h1><table class="widefat fixed">';
echo '<thead><tr><th>Student</th><th>Email</th><th>Course</th><th>Status</th><th>Progress %</th><th>Certificate</th></tr></thead><tbody>';
if ($results) {
foreach ($results as $row) {
$status = ucfirst($row->completion_status ?: 'incomplete');
$percent = intval($row->progress_percent);
$cert_link = ($row->success_status === 'passed')
? "<a href='" . esc_url(admin_url('admin-ajax.php?action=mst_lms_view_certificate&user_id=' . $row->user_id . '&course_id=' . $row->course_id)) . "' target='_blank'>View Certificate</a>"
: '-';
echo "<tr>
<td>{$row->display_name}</td>
<td>{$row->user_email}</td>
<td>{$row->post_title}</td>
<td>{$status}</td>
<td>{$percent}%</td>
<td>{$cert_link}</td>
</tr>";
}
} else {
echo '<tr><td colspan="6">No SCORM progress data found.</td></tr>';
}
echo '</tbody></table></div>';
}
add_action('admin_init', 'mst_lms_view_certificate_handler');
function mst_lms_view_certificate_handler() {
if (!is_admin() || !current_user_can('manage_options')) return;
if (isset($_GET['action']) && $_GET['action'] === 'mst_lms_view_certificate') {
$user_id = intval($_GET['user_id']);
$course_id = intval($_GET['course_id']);
if (class_exists('STM_LMS_Certificate')) {
$certificate = new STM_LMS_Certificate($user_id, $course_id);
$certificate->output_pdf();
exit;
}
wp_die('Certificate not available.');
}
}PK D�xZ���j j �� admin-ui.phpPK : �