Плагін для створення опитувань у WordPress
Плагін для опитувань та голосувань дозволяє власникам сайтів легко створювати інтерактивні опитування, які залучають відвідувачів та збирають цінний зворотний зв’язок. За допомогою цього плагіну можна відображати налаштовані опитування на сторінках або в постах, дозволяючи відвідувачам брати участь та надавати свої відповіді безпосередньо на вашому сайті.
Основні можливості:
- Створення опитувань із варіантами відповідей
- Відображення результатів у реальному часі
- Можливість встановити дату закінчення опитування
- Налаштування стилю опитування відповідно до дизайну сайту
- Опція дозволяти один або кілька голосів на користувача
- Перегляд та експорт результатів опитування
У цій статті ми покажемо, як створити простий плагін для опитувань для WordPress, включаючи приклади коду та покрокову інструкцію щодо його налаштування.
Покрокова інструкція зі створення плагіна
Крок 1: Створення файлів плагіна
Спочатку створіть нову папку в директорії wp-content/plugins/
і назвіть її wp-poll-plugin
. Всередині цієї папки створіть головний файл плагіна під назвою wp-poll-plugin.php
.
<?php
/**
* Назва плагіна: WP Poll Plugin
* Опис: Плагін для створення та відображення інтерактивних опитувань і голосувань на вашому WordPress сайті.
* Версія: 1.0
* Автор: Ваше Ім'я
*/
// Припинити роботу, якщо доступ напряму
if (!defined('ABSPATH')) {
exit;
}
Крок 2: Створення меню адміністратора для опитувань
Створимо меню адміністратора, де адміністратор сайту зможе додавати, редагувати та видаляти опитування.
// Додати меню для управління опитуваннями
function wp_poll_add_admin_menu() {
add_menu_page(
'Управління опитуваннями',
'Опитування',
'manage_options',
'wp-poll-management',
'wp_poll_admin_page',
'dashicons-chart-bar'
);
}
add_action('admin_menu', 'wp_poll_add_admin_menu');
// Функція для сторінки адміністратора
function wp_poll_admin_page() {
?>
<div class="wrap">
<h1>Створити нове опитування</h1>
<form method="post" action="options.php">
<?php
settings_fields('poll_options_group');
do_settings_sections('wp-poll-management');
submit_button();
?>
</form>
</div>
<?php
}
Крок 3: Додавання налаштувань опитування
Ми будемо використовувати WordPress Settings API для створення та збереження питань опитування і варіантів відповідей. Це дозволить користувачам вводити свої запитання та варіанти відповідей для кожного опитування.
// Реєстрація налаштувань для опитувань
function wp_poll_register_settings() {
register_setting('poll_options_group', 'wp_poll_data', 'wp_poll_sanitize_data');
add_settings_section('poll_section', 'Опитування', 'wp_poll_section_callback', 'wp-poll-management');
add_settings_field('poll_question', 'Питання опитування', 'wp_poll_question_callback', 'wp-poll-management', 'poll_section');
add_settings_field('poll_choices', 'Варіанти відповідей', 'wp_poll_choices_callback', 'wp-poll-management', 'poll_section');
}
add_action('admin_init', 'wp_poll_register_settings');
// Очистка даних опитування
function wp_poll_sanitize_data($input) {
$output = [];
foreach ($input as $key => $value) {
$output[$key] = sanitize_text_field($value);
}
return $output;
}
// Callback функції
function wp_poll_section_callback() {
echo 'Створіть нове опитування, заповнивши наступні поля.';
}
function wp_poll_question_callback() {
$poll_data = get_option('wp_poll_data');
?>
<input type="text" name="wp_poll_data[question]" value="<?php echo esc_attr($poll_data['question'] ?? ''); ?>" class="regular-text">
<?php
}
function wp_poll_choices_callback() {
$poll_data = get_option('wp_poll_data');
?>
<textarea name="wp_poll_data[choices]" rows="5" cols="50" class="large-text"><?php echo esc_textarea($poll_data['choices'] ?? ''); ?></textarea>
<p>Введіть варіанти відповідей, кожен з нового рядка.</p>
<?php
}
Крок 4: Відображення опитування на фронтенді
Створимо функцію для відображення опитування на фронтенді та обробки голосів користувачів. Також додамо шорткод для простого вбудовування опитувань на сторінках або в постах.
// Відображення опитування на фронтенді
function wp_poll_display_poll() {
$poll_data = get_option('wp_poll_data');
if ($poll_data) {
echo '<form method="post" action="">';
echo '<p>' . esc_html($poll_data['question']) . '</p>';
$choices = explode("\n", $poll_data['choices']);
foreach ($choices as $choice) {
echo '<label><input type="radio" name="wp_poll_choice" value="' . esc_attr(trim($choice)) . '"> ' . esc_html(trim($choice)) . '</label><br>';
}
echo '<input type="submit" name="wp_poll_vote" value="Голосувати">';
echo '</form>';
}
}
add_shortcode('poll', 'wp_poll_display_poll');
// Обробка голосів
function wp_poll_handle_votes() {
if (isset($_POST['wp_poll_vote']) && !empty($_POST['wp_poll_choice'])) {
$selected_choice = sanitize_text_field($_POST['wp_poll_choice']);
$votes = get_option('wp_poll_votes', []);
if (isset($votes[$selected_choice])) {
$votes[$selected_choice]++;
} else {
$votes[$selected_choice] = 1;
}
update_option('wp_poll_votes', $votes);
}
}
add_action('init', 'wp_poll_handle_votes');
Крок 5: Відображення результатів опитування
Після того як користувачі проголосують, вони можуть бачити результати в реальному часі. Ми створимо функцію для відображення результатів опитування після голосування.
// Відображення результатів опитування
function wp_poll_display_results() {
$votes = get_option('wp_poll_votes', []);
if ($votes) {
$total_votes = array_sum($votes);
echo '<h3>Результати опитування</h3>';
foreach ($votes as $choice => $count) {
$percentage = ($count / $total_votes) * 100;
echo '<p>' . esc_html($choice) . ': ' . round($percentage, 2) . '% (' . $count . ' голосів)</p>';
}
}
}
add_shortcode('poll_results', 'wp_poll_display_results');
Тепер користувачі можуть голосувати в опитуванні та одразу бачити результати. Ви можете використовувати шорткод [poll]
для відображення опитування і [poll_results]
для показу результатів на будь-якій сторінці або пості.
Крок 6: Стилізація опитування
Щоб покращити зовнішній вигляд опитування, можна додати власні стилі. Ви можете підключити CSS-файл або додати стилі безпосередньо до файлу style.css
вашої теми.
.poll-form {
margin: 20px 0;
padding: 10px;
border: 1px solid #ddd;
background-color: #f9f9f9;
}
.poll-form p {
font-size: 18px;
font-weight: bold;
}
.poll-form label {
display: block;
margin: 5px 0;
}
Крок 7: Активуйте і використовуйте плагін
Активуйте плагін з панелі керування WordPress. Після активації створіть опитування, перейшовши до меню Опитування, і використовуйте шорткоди [poll]
та [poll_results]
, щоб відобразити опитування та його результати на будь-якій сторінці або пості.
Висновок
Цей плагін для опитувань та голосувань є чудовим інструментом для залучення вашої аудиторії та збору корисного зворотного зв’язку. Можливість налаштовувати питання, збирати голоси та відображати результати в реальному часі робить цей плагін потужним інструментом для взаємодії з користувачами. Ви можете додатково розширити функціонал, додавши такі функції, як багатовибіркові запитання або інтеграція з іншими аналітичними плагінами.