Кастомизация страницы курса в 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 и помогут сделать платформу мощнее.

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

⭐⭐⭐⭐⭐
Как решить проблему конфликта AJAX в LearnPress на WordPress
06.12.2025
Как добавить виджет новостей в LearnPress: пошаговое руководство с примерами кода
13.12.2025
Как добавить авторизацию через социальные сети в LearnPress на WordPress
08.05.2026
Как синхронизировать LearnPress с внешними системами: примеры и решения
09.01.2026
Как использовать Webhooks в LearnPress для автоматизации процессов
24.02.2026
×
Quizle
Привлекайте, конвертируйте, зарабатывайте!
-15%

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

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