В этой статье я расскажу, как реализовать подписку на квиз в WordPress. Это полезная функция, если вы хотите собирать контакты пользователей, которые проходят ваши квизы, для последующего взаимодействия — рассылок, персональных предложений или аналитики. Мы рассмотрим как варианты с плагинами, так и реализацию через код, чтобы вы могли выбрать удобный для себя способ.
Почему подписка на квиз важна: польза и цели
Подписка помогает превратить посетителей в потенциальных клиентов. В случае квизов это особенно эффективно, поскольку пользователь уже проявил интерес и вовлечён в процесс. Собирая email или другие контакты, вы можете:
- Отправлять результаты квиза на почту пользователя.
- Делать персонализированные предложения.
- Анализировать аудиторию и повышать конверсию.
- Автоматизировать маркетинг с помощью рассылок.
Важный момент — не нарушать закон о персональных данных и получать согласие пользователя на подписку.
Использование плагинов для подписки на квиз
Плагин Quizle для создания квизов с подпиской
Quizle — отличный инструмент для создания квизов с возможностью интеграции подписки. У него есть встроенная поддержка полей для email и других данных. Чтобы настроить подписку:
- Установите и активируйте плагин Quizle.
- Создайте новый квиз или отредактируйте существующий.
- В настройках квиза добавьте поле для email с обязательным вводом.
- Включите опцию согласия на рассылку, чтобы пользователь явно дал согласие.
- Настройте уведомления и интеграции с почтовыми сервисами (Mailchimp, SendPulse и др.).
Благодаря этому вы сразу получаете контакты пользователей, которые прошли квиз.
Автоматизация подписки с помощью плагина My Popup
My Popup позволяет создавать всплывающие формы подписки, которые можно запускать после прохождения квиза или при клике на кнопку. Для интеграции:
- Создайте форму подписки с необходимыми полями.
- Настройте триггер показа формы — например, после завершения квиза.
- Используйте встроенные интеграции с почтовыми сервисами.
Так вы можете увеличить количество подписчиков даже без внесения изменений в сам квиз.
Как сделать подписку на квиз через код в WordPress
Если вы хотите полностью контролировать процесс, можно добавить подписку через кастомный код. Рассмотрим пример, как добавить поле email и сохранить данные в базу.
Добавление поля email в форму квиза
Предположим, у вас есть форма квиза с id wpquiz_form. Добавим в неё поле и кнопку отправки:
<form id="wpquiz_form" method="post" action="">
<!-- Вопросы квиза -->
<label for="wpquiz_email">Ваш email для результатов:</label>
<input type="email" name="wpquiz_email" id="wpquiz_email" required />
<input type="submit" value="Отправить" />
</form>Обработка данных и сохранение подписки
Добавим обработчик в functions.php вашей темы или в свой плагин:
function wpquiz_handle_subscription() {
if ( isset($_POST['wpquiz_email']) && is_email($_POST['wpquiz_email']) ) {
$email = sanitize_email($_POST['wpquiz_email']);
global $wpdb;
$table = $wpdb->prefix . 'wpquiz_subscribers';
$exists = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $table WHERE email = %s", $email) );
if ( ! $exists ) {
$wpdb->insert($table, ['email' => $email, 'date' => current_time('mysql')]);
echo '<p>Спасибо за подписку!</p>';
} else {
echo '<p>Вы уже подписаны.</p>';
}
}
}
add_action('init', 'wpquiz_handle_subscription');Эта функция проверит email, сохранит его в таблицу wpquiz_subscribers (таблица должна быть создана заранее через SQL или при активации плагина) и выведет сообщение.
Создание таблицы для подписчиков
Чтобы создать таблицу, используйте следующий SQL-запрос (например, через phpMyAdmin):
CREATE TABLE wp_wpquiz_subscribers (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
date DATETIME NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;Интеграция с почтовыми сервисами через API
Чтобы автоматизировать рассылки, стоит отправлять email сразу в сервис, например, Mailchimp. Рассмотрим пример с Mailchimp API.
Пример отправки email в Mailchimp
function wpquiz_subscribe_mailchimp($email) {
$apiKey = 'ваш_api_ключ';
$listId = 'ваш_id_списка';
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://' . $dataCenter . '.api.mailchimp.com/3.0/lists/' . $listId . '/members/';
$json = json_encode([
'email_address' => $email,
'status' => 'subscribed'
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return ($httpCode == 200 || $httpCode == 204);
}В обработчике формы вызовите wpquiz_subscribe_mailchimp($email) после проверки email и сохранения в базу.
Обработка согласия на рассылку и GDPR
Очень важно добавить чекбокс для согласия и не подписывать пользователя без его подтверждения. Пример поля:
<label>
<input type="checkbox" name="wpquiz_consent" required /> Я даю согласие на обработку персональных данных и получение рассылки
</label>В обработчике проверяйте наличие этого флага:
if ( ! isset($_POST['wpquiz_consent']) ) {
echo '<p>Для подписки необходимо ваше согласие.</p>';
return;
}Советы по улучшению подписки на квиз
- Добавляйте подсказки и объяснения, зачем нужен email.
- Используйте подтверждение подписки (double opt-in) для повышения доверия.
- Показывайте результаты квиза только после подписки, чтобы мотивировать.
- Применяйте асинхронную отправку формы через AJAX для удобства.
- Проверяйте корректность email на стороне клиента и сервера.
Подписка на квиз — это мощный инструмент, который при правильной реализации помогает увеличить базу контактов и повысить вовлечённость пользователей. Используйте и плагины, и кастомные решения в зависимости от задач и технических навыков.
Если хотите попробовать готовые решения, рекомендую посмотреть плагин Quizle для создания квизов с подпиской и My Popup для всплывающих форм подписки.