Кастомизация страницы курса в LearnPress с помощью хуков и фильтров

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

Что такое хуки и фильтры в LearnPress

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

  • Действия (actions) — позволяют выполнить код в нужный момент, например, добавить HTML, изменить поведение.
  • Фильтры (filters) — принимают значения, изменяют их и возвращают обратно.

LearnPress добавляет свои хуки на страницы курса, урока, на регистрацию и т. д., чтобы разработчики могли гибко настраивать вывод.

Основные хуки для кастомизации страницы курса

Рассмотрим наиболее полезные хуки для изменения страницы отдельного курса:

  • learn_press_before_single_course — до вывода содержимого курса.
  • learn_press_after_single_course — после содержимого курса.
  • learn_press_single_course_summary — в основной области с информацией о курсе.
  • learn_press_single_course_tabs — для управления вкладками под описанием курса.
  • learn_press_course_price — фильтр для изменения цены курса.

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

Пример: добавление блока с дополнительной информацией о курсе

Допустим, надо вывести блок с информацией о сертификации после описания курса. Для этого используем action learn_press_after_single_course:

function learnpressru_add_certification_info() {
    echo '<div class="learnpress-cert-info"><h3>Сертификация</h3><p>По окончании курса вы получите официальный сертификат.</p></div>';
}
add_action('learn_press_after_single_course', 'learnpressru_add_certification_info');

Этот код добавляется в файл functions.php вашей темы или в собственный плагин.

Изменение цены курса через фильтр

Для динамического изменения цены курса можно использовать фильтр learn_press_course_price. Например, сделаем скидку 20% для текущего пользователя:

function learnpressru_dynamic_course_price( $price, $course_id ) {
    if ( is_user_logged_in() ) {
        $price = $price * 0.8; // скидка 20%
    }
    return $price;
}
add_filter( 'learn_press_course_price', 'learnpressru_dynamic_course_price', 10, 2 );

Так цена будет автоматически уменьшаться после входа пользователя.

Кастомизация вкладок курса

Вкладки с информацией, уроками, отзывами можно управлять через фильтр learn_press_single_course_tabs. Рассмотрим пример, где мы убираем вкладку «Отзывы» и добавляем новую «FAQ».

function learnpressru_customize_course_tabs( $tabs ) {
    // Удаляем вкладку отзывов
    if ( isset( $tabs['reviews'] ) ) {
        unset( $tabs['reviews'] );
    }
    // Добавляем вкладку FAQ
    $tabs['faq'] = array(
        'title'    => 'FAQ',
        'priority' => 50,
        'callback' => 'learnpressru_course_faq_tab_content'
    );
    return $tabs;
}
add_filter( 'learn_press_single_course_tabs', 'learnpressru_customize_course_tabs' );

function learnpressru_course_faq_tab_content() {
    echo '<h3>Часто задаваемые вопросы</h3><p>Здесь вы можете добавить ответы на популярные вопросы по курсу.</p>';
}

Так вы контролируете вкладки и их содержимое.

Использование хуков для добавления кастомных полей на страницу курса

Если вам нужно добавить на страницу курса произвольные метаданные (например, «Требования к курсу»), это можно сделать так:

  • Добавляем поле в админке курса (через ACF или вручную).
  • Выводим значение на странице курса с хуком.

Пример вывода поля:

function learnpressru_show_course_requirements() {
    global $post;
    $requirements = get_post_meta( $post->ID, '_course_requirements', true );
    if ( ! empty( $requirements ) ) {
        echo '<div class="course-requirements"><h4>Требования к курсу</h4><p>' . esc_html( $requirements ) . '</p></div>';
    }
}
add_action( 'learn_press_single_course_summary', 'learnpressru_show_course_requirements', 25 );

Этот код выводит данные после основного описания.

Советы по отладке и безопасности

При работе с хуками обращайте внимание на приоритет, чтобы код срабатывал в нужный момент. Для вывода HTML используйте функции экранирования (например, esc_html или wp_kses_post), чтобы избежать XSS-уязвимостей.

Для крупных изменений лучше создавать отдельный плагин, чтобы изменения не терялись при смене темы.

Инструменты для расширения LearnPress

Для удобства кастомизации можно использовать плагины из WPShop.ru, например, Expert Review для расширенного управления отзывами, или Quizle для продвинутых викторин. Они поддерживают хуки LearnPress и помогут сделать платформу мощнее.

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

⭐⭐⭐⭐⭐
Как сделать автоматический перезапуск курса в LearnPress по расписанию
11.03.2026
Решение проблемы необновления статуса заказа WooCommerce в LearnPress
21.04.2026
Решение проблемы конфликта стандартных платежных шаблонов WooCommerce с LearnPress
31.05.2026
Как автоматизировать создание курсов в LearnPress через импорт CSV
08.04.2026
Как добавить персонализированные уведомления в LearnPress на WordPress
17.01.2026
×
WPRemark
Внимание Внимание Внимание Внимание
-15%

на WPRemark плагин WordPress

Прокачай свой сайт! ⋙