Оценка настроения — это полезный инструмент для сбора отзывов пользователей и анализа их эмоциональной реакции на контент или сервис. В этой статье мы подробно разберём, как добавить в WordPress опросы с оценкой настроения, используя как плагины, так и кастомный код. Это поможет повысить вовлечённость и получить более точные данные от посетителей.
Почему важно использовать оценку настроения в опросах WordPress
Опросы с оценкой настроения отличаются от стандартных опросов тем, что позволяют пользователям выразить не просто выбор, а эмоциональное состояние. Это может быть полезно для:
- Оценки качества контента — читатели делятся впечатлениями.
- Сбора отзывов о продуктах или услугах с акцентом на эмоциональную составляющую.
- Анализа пользовательского опыта для улучшения сайта.
Кроме того, визуальное оформление с иконками эмоций делает опрос более привлекательным и удобным для посетителей.
Использование плагина Quizle для создания оценки настроения
Плагин Quizle — один из удобных инструментов для создания интерактивных опросов в WordPress. Он поддерживает разные типы вопросов, включая выбор настроения через эмодзи.
Чтобы создать оценку настроения с Quizle, выполните следующие шаги:
- Установите и активируйте плагин Quizle с официального сайта WPSHOP.RU.
- Создайте новый опрос и добавьте вопрос с типом «Оценка» или «Выбор эмоций».
- Настройте варианты ответов, используя эмодзи или картинки, например: 😀 😐 😞.
- Опубликуйте опрос и вставьте шорткод на нужную страницу.
Quizle автоматически соберёт и покажет результаты в удобном виде. Это отличный вариант без программирования.
Создание оценки настроения в опросе WordPress с помощью кастомного кода
Если нужна более гибкая настройка или интеграция с существующими опросами, можно написать свой код. Рассмотрим пример, как добавить в WordPress опрос с выбором настроения и сохранить результаты в пользовательскую таблицу.
Создание таблицы для хранения оценок
Для начала создадим таблицу в базе данных с помощью функции, подключаемой при активации темы или плагина:
function wppolls_create_mood_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'wppolls_mood';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
user_ip varchar(100) NOT NULL,
mood varchar(20) NOT NULL,
time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
register_activation_hook(__FILE__, 'wppolls_create_mood_table');Это создаст таблицу для хранения IP пользователя, выбранного настроения и времени голосования.
Вывод формы оценки настроения
Создадим шорткод для вывода формы с эмодзи:
function wppolls_mood_form_shortcode() {
$output = '<form method="post">';
$moods = [
'happy' => '😀',
'neutral' => '😐',
'sad' => '😞'
];
foreach ($moods as $key => $emoji) {
$output .= '<label><input type="radio" name="wppolls_mood" value="' . esc_attr($key) . '" required>' . $emoji . '</label> ';
}
$output .= '<button type="submit" name="wppolls_mood_submit">Оценить</button>';
$output .= '</form>';
return $output;
}
add_shortcode('wppolls_mood_form', 'wppolls_mood_form_shortcode');Обработка и сохранение оценки
Добавим обработчик формы, который сохранит голос в базу:
function wppolls_handle_mood_submission() {
if (isset($_POST['wppolls_mood_submit']) && !empty($_POST['wppolls_mood'])) {
global $wpdb;
$table_name = $wpdb->prefix . 'wppolls_mood';
$mood = sanitize_text_field($_POST['wppolls_mood']);
$user_ip = $_SERVER['REMOTE_ADDR'];
// Проверяем, не голосовал ли уже этот IP за последние 24 часа
$time_limit = date('Y-m-d H:i:s', strtotime('-24 hours'));
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM $table_name WHERE user_ip = %s AND time > %s",
$user_ip, $time_limit
));
if (!$exists) {
$wpdb->insert($table_name, [
'user_ip' => $user_ip,
'mood' => $mood,
'time' => current_time('mysql')
]);
echo '<p>Спасибо за вашу оценку!</p>';
} else {
echo '<p>Вы уже голосовали в последние 24 часа.</p>';
}
}
}
add_action('wp', 'wppolls_handle_mood_submission');Вывод статистики по оценкам настроения
Для аналитики удобно показать, сколько голосов за каждое настроение. Сделаем шорткод с подсчётом и выводом:
function wppolls_mood_results_shortcode() {
global $wpdb;
$table_name = $wpdb->prefix . 'wppolls_mood';
$results = $wpdb->get_results("SELECT mood, COUNT(*) as count FROM $table_name GROUP BY mood", OBJECT_K);
$moods = [
'happy' => '😀',
'neutral' => '😐',
'sad' => '😞'
];
$output = '<div class="wppolls-mood-results"><h3>Результаты оценки настроения</h3><ul>';
foreach ($moods as $key => $emoji) {
$count = isset($results[$key]) ? intval($results[$key]->count) : 0;
$output .= '<li>' . $emoji . ' — ' . $count . ' голосов</li>';
}
$output .= '</ul></div>';
return $output;
}
add_shortcode('wppolls_mood_results', 'wppolls_mood_results_shortcode');Советы по улучшению оценки настроения в опросах WordPress
Добавьте AJAX для обновления результатов без перезагрузки
Для комфортного взаимодействия можно реализовать отправку оценки и обновление результатов с помощью AJAX. Это улучшит UX, особенно на мобильных устройствах.
Используйте иконки или SVG для кастомного дизайна
Эмодзи отлично работают, но для брендированного стиля лучше использовать свои SVG-иконки настроений. Это позволит сделать опрос уникальным и гармоничным с дизайном сайта.
Интегрируйте оценку настроения с другими плагинами
Если вы используете плагин WPRemark для анализа комментариев или Expert Review для отзывов, можно расширить функционал, связывая оценки настроения с отзывами, чтобы получить более глубокий анализ.
Например, можно автоматически предлагать оценить настроение после оставления отзыва с помощью WPRemark.
Заключение
Создание оценки настроения в опросах WordPress — эффективный способ получить эмоциональную обратную связь от пользователей. Можно использовать готовые плагины, такие как Quizle, для быстрого старта, или написать кастомный код для полной кастомизации и интеграции с другими функциями сайта. Приведённые примеры помогут разработчикам реализовать эту задачу качественно и удобно.