Как удалить неиспользуемые курсы в LearnPress без потери данных

Когда вы управляете обучающей платформой на базе LearnPress, со временем количество курсов растёт, и среди них появляются неактивные или устаревшие курсы, которые уже не нужны студентам. Однако простое удаление курса через админку WordPress может привести к потере важных данных, таких как отчёты об успеваемости или отзывы. В этой статье мы подробно разберём, как безопасно удалить неиспользуемые курсы в LearnPress, сохранив ключевые данные и не нарушив работу сайта.

Почему важно правильно удалять курсы в LearnPress

LearnPress хранит данные о курсах и пользователях в нескольких таблицах базы данных, а также использует метаданные и связи с другими сущностями — уроками, квизами, заказами и оценками. Простое удаление курса через административную панель WordPress удалит, как правило, только запись поста, но не всегда корректно очистит связанные данные или уведомит связанные плагины и функционал.

Если удалять курсы без должной подготовки, можно столкнуться с:

  • «битым» функционалом на страницах курсов и уроков;
  • утратой статистики и отзывов, которые могут быть полезны для анализа;
  • ошибками в отчётах пользователей и заказах;
  • проблемами с производительностью из-за накопления мусорных данных.

Поэтому для удаления курсов нужно использовать комплексный подход, который включает проверку связей и корректное удаление данных.

Как определить неиспользуемые курсы в LearnPress

Прежде чем удалять курсы, нужно точно выяснить, какие из них неактивны и не имеют учеников. Для этого используйте следующие методы:

  • Фильтрация курсов в админке LearnPress по количеству зарегистрированных студентов — если их нет, курс можно рассматривать как кандидат на удаление.
  • Проверка активности курса — дата последнего обновления, последние действия пользователей.
  • Использование SQL-запроса для поиска курсов без связанных уроков или заказов.

Пример SQL-запроса, который поможет найти курсы без студентов:

SELECT p.ID, p.post_title FROM wp_posts p
LEFT JOIN wp_learnpress_user_items ui ON p.ID = ui.item_id
WHERE p.post_type = 'lp_course' AND ui.user_id IS NULL;

Этот запрос вернёт список курсов без зарегистрированных пользователей.

Безопасное удаление курса с помощью кода

Для удаления курса можно написать кастомную функцию, которая сначала проверит наличие связанных данных, удалит уроки и квизы курса, затем сам курс, и в конце очистит метаданные. Ниже пример функции с префиксом learnpressru_:

function learnpressru_delete_course_safely( $course_id ) {
    if ( ! $course_id ) {
        return false;
    }
    // Проверяем количество студентов
    $students = get_posts(array(
        'post_type' => 'lp_user_item',
        'meta_query' => array(
            array('key' => '_lp_course_id', 'value' => $course_id)
        ),
        'posts_per_page' => 1
    ));
    if ( ! empty( $students ) ) {
        return new WP_Error('course_has_students', 'Невозможно удалить курс с активными студентами');
    }
    // Удаляем уроки
    $lessons = get_posts(array(
        'post_type' => 'lp_lesson',
        'meta_key' => '_lp_course',
        'meta_value' => $course_id,
        'posts_per_page' => -1
    ));
    foreach ($lessons as $lesson) {
        wp_delete_post($lesson->ID, true);
    }
    // Удаляем квизы
    $quizzes = get_posts(array(
        'post_type' => 'lp_quiz',
        'meta_key' => '_lp_course',
        'meta_value' => $course_id,
        'posts_per_page' => -1
    ));
    foreach ($quizzes as $quiz) {
        wp_delete_post($quiz->ID, true);
    }
    // Удаляем сам курс
    wp_delete_post($course_id, true);
    return true;
}

Эту функцию можно вызвать, передав ID курса. Она сначала проверит наличие студентов, и если их нет, удалит все связанные уроки и квизы, а потом и курс. Если студенты есть — удаление не произойдёт, чтобы не потерять данные.

Использование плагинов для управления курсами и очистки

Если вы не хотите писать код, можно использовать специализированные плагины для оптимизации LearnPress. Например:

  • Clearfy Pro — помогает оптимизировать и очистить базу данных от мусорных записей, включая старые курсы.
  • WPCommunity — расширяет возможности управления пользователями и курсами, облегчая поиск неактивных пользователей и курсов.

Эти плагины позволяют выполнять массовую очистку с минимальными рисками.

Резервное копирование перед удалением

Перед удалением курсов обязательно сделайте резервную копию базы данных и файлов сайта. Для этого можно использовать популярные плагины, например BackupWordPress или воспользоваться функциями хостинга. Это позволит восстановить данные, если что-то пойдёт не так.

Выводы и рекомендации

Удаление неиспользуемых курсов в LearnPress — важная задача для поддержания порядка и производительности платформы. Главное — подходить к этому процессу ответственно, не удаляя данные студентов и связанные материалы. Используйте проверки перед удалением, пишите кастомные функции или применяйте надёжные плагины для очистки, и всегда делайте резервные копии.

Такой подход позволит сохранить целостность данных и улучшить работу вашего сайта на LearnPress.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Решение проблемы необновления статусов возврата платежа WooCommerce в LearnPress
04.05.2026
Как сделать отсрочку просмотра уроков в LearnPress: практическое решение
18.03.2026
Как добавить уникальный фильтр по статусу заявки в LearnPress
12.04.2026
Решение проблемы необновления статусов возврата платежа WooCommerce в LearnPress
12.05.2026
Как сделать автоматический перезапуск курса в LearnPress по расписанию
11.03.2026
×
Quizle
Привлекайте, конвертируйте, зарабатывайте!
-15%

на премиум плагин WordPress

Получить скидку ⋙