LearnPress — мощный плагин для создания онлайн-курсов на WordPress, но стандартный функционал отчетности не всегда удовлетворяет потребности администраторов. Часто возникает задача выгрузить данные о студентах, их прогрессах и результатах в Excel для дальнейшего анализа или отчетности. В этой статье разберем, как добавить возможность экспорта отчетов LearnPress в Excel с помощью кода и сторонних плагинов.
Почему важен экспорт отчетов LearnPress в Excel
Excel — универсальный инструмент для обработки данных. Экспорт отчетов в Excel позволяет:
- Легко анализировать статистику по обучающимся и курсам;
- Строить графики и отчеты в удобном формате;
- Делать резервные копии данных вне сайта;
- Автоматизировать обработку с помощью макросов и формул.
Хотя LearnPress предоставляет базовые отчеты в админке, их функционал ограничен. Добавление экспорта в Excel расширяет возможности платформы без необходимости использовать сложные BI-системы.
Обзор плагинов для экспорта отчетов LearnPress
Для реализации задачи можно использовать готовые решения. Вот несколько плагинов, которые помогут экспортировать данные LearnPress:
1. WP All Export
Мощный плагин для экспорта любых данных WordPress, включая пользовательские типы записей, к которым относятся курсы и заказы LearnPress. Позволяет настроить экспорт в CSV или Excel с удобным интерфейсом.
Преимущества:
- Гибкая настройка полей;
- Поддержка cron для автоматического экспорта;
- Совместимость с LearnPress.
2. LearnPress Reports Plus (платный)
Расширение для LearnPress, которое добавляет более детализированные отчеты с возможностью экспорта в Excel и PDF. Позволяет выгружать данные по прогрессу, оплатам, активности пользователей.
3. Custom PHP решение
Если нужны уникальные отчеты с нестандартной логикой, лучше написать собственный скрипт экспорта. Ниже рассмотрим пример такого подхода.
Пример кода для экспорта отчетов LearnPress в Excel
Для простого экспорта данных о пользователях и их прогрессе по курсам можно использовать библиотеку PhpSpreadsheet. Ниже пример функции с префиксом learnpress_, которая выгружает в Excel список учащихся и их статус по курсу.
function learnpress_export_course_progress_to_excel($course_id) {
if (!class_exists('\PhpOffice\PhpSpreadsheet\Spreadsheet')) {
return new WP_Error('missing_dependency', 'PhpSpreadsheet library is required');
}
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Отчет по курсу');
// Заголовки столбцов
$sheet->setCellValue('A1', 'ID пользователя');
$sheet->setCellValue('B1', 'Имя');
$sheet->setCellValue('C1', 'Email');
$sheet->setCellValue('D1', 'Прогресс (%)');
$args = [
'post_id' => $course_id,
'limit' => -1
];
$users = learn_press_get_users_enrolled_courses($args);
$row = 2;
foreach ($users as $user_id) {
$user = get_userdata($user_id);
$progress = LP()->course( $course_id )->get_user_progress( $user_id );
$sheet->setCellValue('A' . $row, $user_id);
$sheet->setCellValue('B' . $row, $user->display_name);
$sheet->setCellValue('C' . $row, $user->user_email);
$sheet->setCellValue('D' . $row, $progress);
$row++;
}
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$filename = 'learnpress_course_' . $course_id . '_report.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="' . $filename . '"');
$writer->save('php://output');
exit();
}Этот код можно вызывать по нажатию кнопки в админке или по REST API. Он выгружает актуальные данные о прогрессе учеников по заданному курсу.
Интеграция с WPShop.ru: расширенные возможности для отчетов
Если вы хотите дополнительно расширить функционал LearnPress, обратите внимание на плагины с WPShop.ru. Например, плагин Expert Review позволяет добавлять экспертные оценки и комментарии к курсам, а ABC Pagination помогает удобно разбивать длинные списки студентов в отчетах.
Также советуем изучить My Popup для создания кастомных уведомлений с ссылками на отчеты Excel, что поможет информировать администраторов или преподавателей в удобной форме.
Советы по безопасности и производительности при экспорте отчетов
При экспорте больших объемов данных важно учитывать нагрузку на сервер и безопасность:
- Ограничьте доступ к функциям экспорта только администраторам или доверенным ролям.
- Если отчет большой, используйте фоновые задачи (wp_cron или WP Background Processing) для генерации файла.
- Кэшируйте данные, если экспорт повторяется часто, чтобы снизить нагрузку.
- Проверяйте входные параметры (например, ID курса), чтобы избежать SQL-инъекций и ошибок.
Пример проверки прав в функции экспорта:
function learnpress_export_course_progress_to_excel($course_id) {
if (!current_user_can('manage_options')) {
wp_die('Доступ запрещен');
}
// остальной код...
}Заключение
Добавление экспорта отчетов LearnPress в Excel — ключевой шаг для серьезного администрирования обучающих платформ. Вы можете выбрать готовые плагины или написать кастомное решение с использованием PhpSpreadsheet. Также не забывайте про безопасность и оптимизацию, чтобы процесс был удобным и надежным.
Используйте возможности WPShop.ru для расширения функционала вашего сайта на LearnPress и делайте управление курсами максимально эффективным.