Как сделать автоматический отчет по результатам опросов WordPress

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

Почему важна автоматизация отчетов опросов в WordPress

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

Особенно это актуально для сайтов с большим количеством опросов или когда опросы проходят регулярно (например, ежедневные или еженедельные).

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

Выбор плагина для опросов с возможностью получения данных

WP-Polls и WPForms Polls

Для начала нужно выбрать плагин, который позволяет легко получать данные опросов через API или функции. Например, WP-Polls — простой и популярный плагин, но у него нет готового API для получения результатов. В этом случае придется читать данные из базы.

Более удобным вариантом является WPForms с дополнением Polls addon, где все результаты доступны через встроенные методы и можно выгружать их в CSV.

Как получить результаты опросов программно

Рассмотрим пример для WP-Polls, где данные хранятся в базе данных WordPress. Для получения результатов можно использовать следующий код:

function wppollsru_get_poll_results($poll_id) {
    global $wpdb;
    $table_votes = $wpdb->prefix . 'pollsq_votes';
    $table_answers = $wpdb->prefix . 'pollsq_answers';

    // Получаем количество голосов за каждый ответ
    $results = $wpdb->get_results($wpdb->prepare(
        "SELECT answers.answer_text, COUNT(votes.vote_id) AS votes_count 
         FROM $table_answers AS answers
         LEFT JOIN $table_votes AS votes ON answers.aid = votes.aid
         WHERE answers.pollid = %d
         GROUP BY answers.aid",
         $poll_id
    ));

    return $results;
}

Этот код возвращает массив с вариантами ответов и количеством голосов. Теперь можно использовать эти данные для формирования отчета.

Формирование отчета и отправка по email

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

function wppollsru_generate_report_html($poll_id) {
    $results = wppollsru_get_poll_results($poll_id);
    $html = '<h2>Отчет по опросу №' . $poll_id . '</h2>';
    $html .= '<table border="1" cellpadding="5" cellspacing="0">';
    $html .= '<tr><th>Вариант ответа</th><th>Голоса</th></tr>';

    foreach ($results as $row) {
        $html .= '<tr><td>' . esc_html($row->answer_text) . '</td><td>' . intval($row->votes_count) . '</td></tr>';
    }

    $html .= '</table>';
    return $html;
}

Для отправки отчета по почте воспользуемся стандартной функцией wp_mail и добавим крон-задачу, которая будет запускаться по расписанию:

function wppollsru_send_report_email() {
    $poll_id = 1; // ID опроса
    $to = 'admin@example.com';
    $subject = 'Автоматический отчет по опросу';
    $message = wppollsru_generate_report_html($poll_id);
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers);
}

// Регистрируем событие в кроне, если оно не зарегистрировано
if (!wp_next_scheduled('wppollsru_daily_report_event')) {
    wp_schedule_event(time(), 'daily', 'wppollsru_daily_report_event');
}

add_action('wppollsru_daily_report_event', 'wppollsru_send_report_email');

Теперь каждый день будет отправляться письмо с отчетом по выбранному опросу.

Добавление графиков к отчету с помощью Chart.js

Для более наглядного отчета полезно добавить графики. Один из самых простых вариантов — использовать библиотеку Chart.js. Ниже пример, как встроить график в HTML-отчет.

В функции генерации отчета нужно добавить блок с <canvas> и скриптом, который отрисует диаграмму:

function wppollsru_generate_report_with_chart($poll_id) {
    $results = wppollsru_get_poll_results($poll_id);

    $labels = [];
    $votes = [];
    foreach ($results as $row) {
        $labels[] = esc_js($row->answer_text);
        $votes[] = intval($row->votes_count);
    }

    ob_start();
    ?>
    <h2>Отчет по опросу №<?php echo $poll_id; ?></h2>
    <canvas id="wppollsruChart" width="400" height="200"></canvas>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <script>
    const ctx = document.getElementById('wppollsruChart').getContext('2d');
    const chart = new Chart(ctx, {
        type: 'bar',
        data: {
            labels: <?php echo json_encode($labels); ?>,
            datasets: [{
                label: 'Голоса',
                data: <?php echo json_encode($votes); ?>,
                backgroundColor: 'rgba(54, 162, 235, 0.6)',
                borderColor: 'rgba(54, 162, 235, 1)',
                borderWidth: 1
            }]
        },
        options: {
            scales: {
                y: { beginAtZero: true }
            }
        }
    });
    </script>
    <?php
    return ob_get_clean();
}

Такой отчет можно сохранять в HTML-файл и прикреплять к письму, либо выводить на странице в админке.

Использование плагина Expert Review для расширенной аналитики

Если вы хотите не просто собирать голоса, а анализировать ответы более глубоко, советую обратить внимание на плагин Expert Review. Он добавляет возможность детального анализа и построения отчетов с графиками внутри WordPress.

Плагин интегрируется с опросами и позволяет экспортировать данные, а также настраивать автоматические рассылки отчетов.

Выводы и рекомендации

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

Рекомендую тестировать код на тестовом сайте, а для сложных решений рассмотреть использование профессиональных плагинов, таких как Expert Review или WPForms Polls, чтобы сэкономить время и обеспечить надежность.

Как создать расписание публикаций в WordPress: полный гайд
30.11.2025
Как создать прогноз по результатам опросов в WordPress
01.01.2026
Отзывы с выбором оценки в WordPress: пошаговое руководство
13.12.2025
Как сделать автоматический отчет по результатам опросов WordPress
13.12.2025
Как сделать оценку публикации в опросе WordPress с помощью кода
04.01.2026