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

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

Почему стоит добавить дополнительные поля в форму регистрации LearnPress

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

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

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

Как добавить новые поля в форму регистрации LearnPress: технический подход

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

  • Вывести новое поле в форме регистрации с помощью фильтра.
  • Обработать данные, введенные пользователем, при отправке формы.
  • Сохранить данные в мета-поле пользователя.
  • При необходимости отобразить данные в профиле пользователя.

Рассмотрим пример добавления поля «Телефон».

Добавление поля «Телефон» в форму регистрации

Сначала выводим поле в форме регистрации с помощью фильтра learn_press_user_register_fields:

add_filter('learn_press_user_register_fields', 'learnpress_add_phone_field_to_registration');
function learnpress_add_phone_field_to_registration($fields) {
    $fields['phone'] = array(
        'type'        => 'text',
        'label'       => __('Телефон', 'learnpress'),
        'placeholder' => __('Введите ваш номер телефона', 'learnpress'),
        'required'    => true,
    );
    return $fields;
}

Этот код добавит новое текстовое поле с обязательным заполнением.

Валидация и обработка новых данных

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

add_action('learn_press_user_register', 'learnpress_save_phone_field', 10, 2);
function learnpress_save_phone_field($user_id, $data) {
    if (!empty($data['phone'])) {
        // Простая валидация: только цифры, пробелы, + и -
        $phone = sanitize_text_field($data['phone']);
        if (preg_match('/^[\d\s\+\-\(\)]+$/', $phone)) {
            update_user_meta($user_id, 'learnpress_phone', $phone);
        }
    }
}

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

Отображение дополнительного поля в профиле пользователя

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

add_action('show_user_profile', 'learnpress_show_phone_field');
add_action('edit_user_profile', 'learnpress_show_phone_field');

function learnpress_show_phone_field($user) {
    $phone = get_user_meta($user->ID, 'learnpress_phone', true);
    ?>
    <h3><?php _e('Дополнительные данные LearnPress', 'learnpress'); ?></h3>
    <table class="form-table">
        <tr>
            <th><label for="learnpress_phone"><?php _e('Телефон'); ?></label></th>
            <td>
                <input type="text" name="learnpress_phone" id="learnpress_phone" value="<?php echo esc_attr($phone); ?>" class="regular-text" /><br />
                <span class="description"><?php _e('Введите номер телефона пользователя.'); ?></span>
            </td>
        </tr>
    </table>
    <?php
}

add_action('personal_options_update', 'learnpress_save_phone_field_profile');
add_action('edit_user_profile_update', 'learnpress_save_phone_field_profile');

function learnpress_save_phone_field_profile($user_id) {
    if (!current_user_can('edit_user', $user_id)) {
        return false;
    }
    if (!empty($_POST['learnpress_phone'])) {
        update_user_meta($user_id, 'learnpress_phone', sanitize_text_field($_POST['learnpress_phone']));
    }
}

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

Полезные советы и лучшие практики

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

  • Валидация данных. Проверяйте корректность введенных данных, чтобы избежать ошибок и спама.
  • Обязательные и необязательные поля. Четко определяйте, какие поля обязательны, а какие – для дополнительной информации.
  • Локализация. Используйте функции перевода __() и _e() для поддержки разных языков.
  • Безопасность. Используйте функции очистки данных, такие как sanitize_text_field() и проверяйте права пользователя при сохранении данных.
  • Совместимость. Тестируйте изменения с другими плагинами и темами, особенно с теми, что влияют на регистрацию и профиль.

Альтернативные плагины для расширения формы регистрации в LearnPress

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

  • WP User Frontend – позволяет создавать кастомные формы регистрации с любой структурой.
  • Profile Builder – мощный плагин для управления регистрацией и профилями пользователей.
  • Gravity Forms + Gravity Forms User Registration Add-On – для продвинутых форм с гибкой логикой и интеграцией.

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

Подведение итогов и возможности для развития

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

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

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

⭐⭐⭐⭐⭐
Как создать автоматические экспорты отчетов в LearnPress на WordPress
25.03.2026
Решение проблемы неотображения корзины WooCommerce при интеграции с LearnPress
15.05.2026
Как добавить независимые виды учебных материалов в LearnPress
15.04.2026
Как синхронизировать LearnPress с внешними системами: примеры и решения
09.01.2026
Как добавить виджет новостей в LearnPress: пошаговое руководство с примерами кода
13.12.2025
×
-15%
на премиум плагин
Clearfy

Защитите сайт!

Включить Clearfy »