В этой статье разберём, как создать функциональный опрос в WordPress, который позволит пользователям не только голосовать, но и оставлять оценки и комментарии к вопросам или вариантам ответа. Такой подход поможет получить более глубокую обратную связь и улучшить взаимодействие с аудиторией.
Почему важно добавлять оценку и комментарии в опросы WordPress
Стандартные опросы обычно ограничиваются выбором одного или нескольких вариантов ответа. Но что делать, если нужно узнать не только факт выбора, но и мнение или уровень удовлетворённости пользователя? Для этого отлично подходит добавление системы оценок и комментариев.
С помощью оценок можно, например, узнать степень удовлетворённости продуктом, а комментарии помогут собрать подробные отзывы, что особенно важно для маркетинга и улучшения качества услуг.
Встроенные возможности WordPress не предоставляют такой функционал, поэтому мы будем использовать плагины и кастомный код, чтобы расширить стандартный функционал.
Выбор плагинов для опросов с оценками и комментариями
Для реализации задачи рекомендуем обратить внимание на следующие плагины:
- Quizle — мощный плагин для создания опросов и викторин, поддерживает кастомные поля, оценки и комментарии.
- WPRemark — плагин для оценки публикаций и отзывов, можно интегрировать с опросами для расширенного анализа.
- Forminator — универсальный конструктор форм с поддержкой опросов, можно добавить поля рейтинга и комментариев.
Для примера рассмотрим интеграцию с Quizle и добавим кастомный функционал с помощью хука.
Как добавить поле оценки и комментариев к опросу с помощью Quizle
После установки и активации плагина Quizle создаём новый опрос:
- В админке WordPress переходим в Quizle → Добавить опрос.
- Добавляем вопросы с вариантами ответов.
- В настройках вопроса активируем опцию «Оценка» — пользователь сможет выставить рейтинг (например, от 1 до 5).
- Добавляем поле для комментариев. Для этого используем опцию «Пользовательский текст» или создаём отдельный вопрос с открытым ответом.
Для улучшения отображения и сбора данных можно добавить следующий код в functions.php вашей темы или в плагин для кастомных функций:
function wppolls_add_rating_comment_meta($response_id, $data) {
if (!empty($data['rating'])) {
update_post_meta($response_id, 'user_rating', intval($data['rating']));
}
if (!empty($data['comment'])) {
update_post_meta($response_id, 'user_comment', sanitize_text_field($data['comment']));
}
}
add_action('quizle_response_submitted', 'wppolls_add_rating_comment_meta', 10, 2);Этот хук сохранит пользовательскую оценку и комментарий в метаполя ответа. Позже их можно вывести на фронтенде или использовать для аналитики.
Вывод оценок и комментариев на сайте
Чтобы отображать оценки и комментарии к каждому вопросу или опросу, добавим шаблонный код. Например, в файле шаблона опроса:
function wppolls_display_ratings_comments($response_id) {
$rating = get_post_meta($response_id, 'user_rating', true);
$comment = get_post_meta($response_id, 'user_comment', true);
if ($rating) {
echo '<div class="wppolls-rating">Оценка: ' . intval($rating) . '/5</div>';
}
if ($comment) {
echo '<div class="wppolls-comment">Комментарий: <br>' . esc_html($comment) . '</div>';
}
}Вызывайте функцию wppolls_display_ratings_comments($response_id) там, где хотите вывести отзывы пользователей.
Пример фильтрации и сортировки по оценкам
Для более продвинутого анализа можно получить все ответы с оценкой выше 3 и вывести их в списке:
$args = array(
'post_type' => 'quizle_response',
'meta_query' => array(
array(
'key' => 'user_rating',
'value' => 3,
'compare' => '>=',
'type' => 'NUMERIC'
)
)
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
wppolls_display_ratings_comments(get_the_ID());
}
wp_reset_postdata();
} else {
echo 'Нет отзывов с оценкой выше 3';
}Дополнительные советы по улучшению опросов с оценками и комментариями
Для повышения качества данных и удобства пользователей стоит учесть следующие моменты:
- Валидация данных — проверяйте корректность оценки и длину комментариев.
- Защита от спама — используйте капчу или интеграцию с Akismet для комментариев.
- Анонимность — дайте возможность оставлять отзывы без регистрации, если это уместно.
- Аналитика — интегрируйте сбор данных с WPRemark или другими инструментами для построения отчетов.
Интеграция с WPRemark для анализа оценок
WPRemark позволяет собирать и анализировать отзывы пользователей. Интегрируйте оценки из опросов с WPRemark, чтобы строить расширенную аналитику.
Для этого используйте API WPRemark и передавайте данные из опросов, например, так:
function wppolls_send_to_wpremark($response_id) {
$rating = get_post_meta($response_id, 'user_rating', true);
$comment = get_post_meta($response_id, 'user_comment', true);
if ($rating && $comment) {
// пример запроса к API WPRemark - адаптируйте под вашу реализацию
wp_remote_post('https://wpshop.ru/wpremark/api/reviews', array(
'body' => json_encode(array(
'response_id' => $response_id,
'rating' => $rating,
'comment' => $comment
)),
'headers' => array('Content-Type' => 'application/json')
));
}
}
add_action('quizle_response_submitted', 'wppolls_send_to_wpremark');