Как использовать хуки и фильтры в LearnPress для расширения функционала

Что такое хуки и фильтры в LearnPress и зачем они нужны

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

Если вы хотите добавить собственную логику, изменить вывод или интегрировать LearnPress с другими системами, изучение хуков — обязательный шаг. Хуки бывают двух типов: actions — для запуска своего кода в определённый момент, и filters — для изменения данных перед их выводом или сохранением.

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

Основные хуки LearnPress для расширения функционала курсов

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

  • learn_press_before_course_content — выполняется перед выводом содержимого курса;
  • learn_press_after_course_content — после содержимого курса;
  • learn_press_user_enrolled_course — при регистрации пользователя на курс;
  • learn_press_checkout_process — во время обработки оформления заказа;
  • learn_press_course_grid_item_title — позволяет изменить заголовок курса в сетке.

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

Пример: добавить приветственное сообщение после описания курса

Допустим, вы хотите после описания курса добавить персональное сообщение для пользователей. Для этого подойдёт хук learn_press_after_course_content. Вот пример кода, который нужно добавить в файл functions.php вашей темы или в собственный плагин:

add_action('learn_press_after_course_content', 'learnpress_add_welcome_message');
function learnpress_add_welcome_message() {
    if ( is_user_logged_in() ) {
        echo '<p>Спасибо, что выбрали наш курс! Успехов в обучении.</p>';
    } else {
        echo '<p>Войдите, чтобы получить доступ к дополнительным материалам.</p>';
    }
}

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

Использование фильтров LearnPress для изменения данных

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

Рассмотрим несколько полезных фильтров LearnPress:

  • learn_press_get_course_price — фильтр цены курса;
  • learn_press_checkout_fields — позволяет изменить поля на странице оформления заказа;
  • learn_press_user_profile_update_data — фильтр для изменения данных пользователя перед сохранением;
  • learn_press_course_excerpt — изменяет краткое описание курса.

Пример: увеличить цену курса на 10% с помощью фильтра

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

add_filter('learn_press_get_course_price', 'learnpress_increase_course_price', 10, 2);
function learnpress_increase_course_price($price, $course_id) {
    $new_price = $price * 1.1; // Увеличиваем цену на 10%
    return round($new_price, 2);
}

Этот код автоматически увеличит цену всех курсов на 10%, не меняя базовые настройки в админке.

Как найти нужные хуки в LearnPress и проверить их работу

Чтобы эффективно работать с хуками LearnPress, необходимо понимать, где их искать и как тестировать.

1. Изучение исходников. LearnPress — open source, поэтому можно открыть папки плагина и найти вызовы do_action и apply_filters — именно так регистрируются хуки.

2. Документация и форумы. Официальная документация LearnPress и тематические форумы содержат списки популярных хуков с примерами.

3. Отладка. Для проверки, срабатывает ли хук, можно временно добавить в обработчик вывод в лог или на экран:

add_action('learn_press_before_course_content', function() {
    error_log('Хук learn_press_before_course_content сработал');
});

4. Использование плагинов для отладки. Плагины типа Query Monitor или Debug Bar помогут отслеживать хуки и фильтры в реальном времени.

Практические примеры расширения LearnPress с помощью хуков

Добавление нового поля в форму оформления заказа

Частая задача — добавить своё поле, например, "Номер телефона", при покупке курса. Для этого воспользуемся фильтром learn_press_checkout_fields.

add_filter('learn_press_checkout_fields', 'learnpress_add_phone_field');
function learnpress_add_phone_field($fields) {
    $fields['billing']['billing_phone'] = array(
        'label'       => 'Номер телефона',
        'type'        => 'text',
        'required'    => true,
        'placeholder' => 'Введите ваш номер телефона',
        'priority'    => 25,
    );
    return $fields;
}

Этот код добавит поле "Номер телефона" в блок оплаты. Чтобы сохранить и использовать данные, нужно обработать их при оформлении заказа, используя action learn_press_checkout_process.

Сохранение дополнительного поля в мета-данных заказа

add_action('learn_press_checkout_process', 'learnpress_save_phone_field');
function learnpress_save_phone_field() {
    if ( isset($_POST['billing_phone']) ) {
        $order = LP()->checkout()->get_order();
        if ( $order ) {
            $order->update_meta('_billing_phone', sanitize_text_field($_POST['billing_phone']));
        }
    }
}

Теперь номер телефона будет сохранён в заказе и доступен для просмотра в админке.

Советы по использованию хуков для разработчиков LearnPress

1. Всегда проверяйте, что хуки существуют в вашей версии LearnPress: API может меняться.

2. Для сложных изменений предпочтительнее создавать собственные плагины, а не править functions.php, чтобы не потерять изменения при обновлении темы.

3. Используйте префиксы в названиях функций (например, learnpress_), чтобы избежать конфликтов с другими плагинами.

4. Тестируйте изменения на локальной копии сайта, чтобы избежать сбоев в работе учебного процесса.

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

Заключение

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

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

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

⭐⭐⭐⭐⭐
Как отправлять письма из WordPress через SMTP: решение проблемы с доставкой почты
10.12.2025
Как добавить очередь ожидания при регистрации в LearnPress на WordPress
27.02.2026
Как запустить и настроить локализацию LearnPress на WordPress
21.03.2026
Как добавить предварительный просмотр урока в LearnPress: практическое руководство с примерами кода
13.02.2026
Как создать собственный тип вопроса для Quizle в LearnPress
15.03.2026
×
Quizle
Привлекайте, конвертируйте, зарабатывайте!
-15%

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

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