Как добавить пользовательские поля в опросы WordPress

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

Почему стоит добавлять пользовательские поля в опросы WordPress

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

  • Собрать более полные данные о респондентах.
  • Сегментировать аудиторию по дополнительным признакам.
  • Создавать сложные формы с условной логикой.

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

Использование плагинов для добавления пользовательских полей

Самый простой способ расширить опросы — использовать плагины, поддерживающие кастомные поля. Рассмотрим два популярных варианта.

1. Плагин WPForms

WPForms — мощный конструктор форм, который позволяет создавать опросы с любыми типами полей: текст, число, дата, выпадающие списки и др. Для создания опроса с пользовательскими полями нужно:

  1. Установить и активировать WPForms.
  2. Создать новую форму, выбрав шаблон «Опрос».
  3. Добавить в форму нужные поля (например, «Возраст», «Город»).
  4. Включить опросные поля для подсчёта рейтинга и анализа.

WPForms автоматически собирает и сохраняет всю информацию, которую можно просмотреть в админке.

2. Плагин Formidable Forms

Formidable Forms также позволяет создавать продвинутые опросы с пользовательскими полями. Особенность — возможность использовать условную логику для отображения полей в зависимости от ответов.

Для создания опроса:

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

Это отличный вариант для сложных опросов с разветвлённой структурой.

Добавление пользовательских полей в опросы вручную с помощью кода

Если вы хотите более глубокого контроля и не хотите подключать большие плагины, можно добавить пользовательские поля напрямую в код опроса. Рассмотрим пример, как расширить форму опроса на WordPress, добавив поле «Возраст» и сохранив данные в базе.

Шаг 1. Создание формы с пользовательским полем

Допустим, у вас есть шорткод [wppolls_poll], который выводит опрос. Добавим к нему дополнительное поле:

function wppolls_add_custom_field() {
    echo '<p><label for="wppolls_age">Возраст:</label>'
       . '<input type="number" id="wppolls_age" name="wppolls_age" min="1" max="120" required></p>';
}
add_action('wppolls_before_submit_button', 'wppolls_add_custom_field');

Этот код добавляет поле «Возраст» перед кнопкой отправки.

Шаг 2. Обработка и сохранение данных формы

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

function wppolls_save_custom_field($poll_id, $user_id) {
    if ( isset($_POST['wppolls_age']) ) {
        $age = intval($_POST['wppolls_age']);
        if ($age > 0 && $age <= 120) {
            update_post_meta($poll_id, '_wppolls_age_' . $user_id, $age);
        }
    }
}
add_action('wppolls_after_vote', 'wppolls_save_custom_field', 10, 2);

Здесь мы сохраняем возраст в метаданных опроса, прикрепляя его к ID пользователя.

Шаг 3. Вывод собранных пользовательских данных в админке

Чтобы видеть возраст участников, добавим колонку в таблицу результатов:

function wppolls_add_custom_column($columns) {
    $columns['age'] = 'Возраст';
    return $columns;
}
add_filter('manage_wppolls_votes_columns', 'wppolls_add_custom_column');

function wppolls_show_custom_column($column, $vote_id) {
    if ($column == 'age') {
        $user_id = get_post_meta($vote_id, '_wppolls_user_id', true);
        $poll_id = get_post_meta($vote_id, '_wppolls_poll_id', true);
        $age = get_post_meta($poll_id, '_wppolls_age_' . $user_id, true);
        echo esc_html($age ? $age : '—');
    }
}
add_action('manage_wppolls_votes_custom_column', 'wppolls_show_custom_column', 10, 2);

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

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

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

  • Используйте intval() или другие функции для фильтрации входных данных.
  • Проверяйте, что значения соответствуют ожидаемому формату.
  • Используйте nonce-поля для защиты от CSRF-атак.
  • Экранируйте вывод с помощью esc_html() или подобных функций.

Это поможет избежать уязвимостей и ошибок.

Заключение

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

Как сделать опрос с ответами в несколько категорий в WordPress
13.12.2025
Как добавить авторизацию через Google в WordPress для опросов
26.12.2025
Как создать простой опрос в WordPress с помощью плагинов
07.11.2025
Как создать свой shortcode для опросов в WordPress
17.11.2025
Как создать прогноз по результатам опросов в WordPress
01.01.2026