Contact Form 7: добавление подписки на рассылку через checkbox

Зачем нужна подписка на рассылку в форме Contact Form 7

В большинстве случаев контактные формы на сайте служат для сбора заявок или вопросов от посетителей. Однако часто владельцы сайтов хотят расширить функционал и предложить пользователям подписаться на рассылку новостей или акций. Это удобно реализовать добавлением чекбокса в форму Contact Form 7, где посетитель может добровольно дать согласие на получение писем.

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

Как добавить checkbox подписки в форму Contact Form 7

Для начала откройте редактор нужной формы Contact Form 7 и добавьте следующий тег для чекбокса:

[checkbox contactform7_ru_newsletter use_label_element "Подписаться на рассылку"]

Этот тег создаст чекбокс с надписью «Подписаться на рассылку». Атрибут use_label_element оборачивает чекбокс в тег <label> для удобства клика по тексту. Имя поля — contactform7_ru_newsletter — рекомендуется делать уникальным, используя префикс, например, домена сайта.

После добавления чекбокса форма будет выглядеть так:

[text* your-name placeholder "Ваше имя"]
[email* your-email placeholder "Ваш Email"]
[checkbox contactform7_ru_newsletter use_label_element "Подписаться на рассылку"]
[submit "Отправить"]

Обработка подписки после отправки формы

Сам Contact Form 7 не умеет автоматически добавлять подписчиков в рассылку. Для этого нужно настроить интеграцию с рассылочным сервисом или добавить пользовательский код, который будет запускаться после отправки формы и при установленном чекбоксе.

Рассмотрим пример на PHP, который можно добавить в файл functions.php вашей темы. Этот код проверит, если пользователь отметил чекбокс, и добавит email в список подписчиков (пример для MailChimp API):

add_action('wpcf7_mail_sent', 'contactform7_ru_add_to_newsletter');
function contactform7_ru_add_to_newsletter($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) {
        return;
    }
    $data = $submission->get_posted_data();
    if (isset($data['contactform7_ru_newsletter']) && !empty($data['your-email'])) {
        $email = sanitize_email($data['your-email']);
        // Здесь добавьте код интеграции с вашим сервисом рассылки
        // Пример для MailChimp API (нужно добавить свою логику и ключи)
        // contactform7_ru_mailchimp_subscribe($email);
    }
}

Этот хук wpcf7_mail_sent вызывается после успешной отправки формы. Внутри функции мы достаем данные формы, проверяем наличие чекбокса и email, и далее вызываем функцию добавления подписчика.

Пример простейшей функции добавления подписчика в MailChimp

Ниже пример для понимания, как может выглядеть функция добавления в MailChimp через API v3:

function contactform7_ru_mailchimp_subscribe($email) {
    $api_key = 'ВАШ_API_КЛЮЧ';
    $list_id = 'ВАШ_ID_СПИСКА';
    $data_center = substr($api_key,strpos($api_key,'-')+1);
    $url = 'https://' . $data_center . '.api.mailchimp.com/3.0/lists/' . $list_id . '/members/';

    $json = json_encode([
        'email_address' => $email,
        'status'        => 'subscribed'
    ]);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $api_key);
    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);
    curl_close($ch);

    return $result;
}

Эта функция отправляет запрос в MailChimp для добавления нового подписчика. Не забудьте заменить ВАШ_API_КЛЮЧ и ВАШ_ID_СПИСКА на реальные значения из вашего аккаунта MailChimp.

Отправка уведомления администратору с информацией о подписке

Чтобы видеть, кто подписался, можно добавить в письмо уведомления дополнительный блок с информацией о том, подписался ли пользователь на рассылку.

Для этого в шаблоне письма Contact Form 7 добавьте переменную поля чекбокса:

Подписка на рассылку: [contactform7_ru_newsletter]

Если чекбокс не отмечен, то в письме будет пусто, если отмечен — появится текст «Подписаться на рассылку».

Проверка и валидация чекбокса подписки

Иногда нужно, чтобы пользователь обязательно согласился с подпиской — например, для согласия на обработку персональных данных. В таком случае чекбокс делается обязательным для заполнения:

[checkbox* contactform7_ru_newsletter use_label_element "Я согласен получать рассылку"]

Звездочка после checkbox означает обязательное поле. Contact Form 7 не позволит отправить форму без установленного флажка. Но в большинстве случаев подписка добровольна, поэтому лучше не делать чекбокс обязательным.

Альтернативы и расширения для подписки в Contact Form 7

Если хочется расширить функционал без программирования, можно воспользоваться плагинами интеграции Contact Form 7 с популярными почтовыми сервисами:

Эти решения позволяют настроить подписку без кода, используя удобный интерфейс.

Выводы и рекомендации по добавлению подписки в форму

Добавление подписки через checkbox в Contact Form 7 — простое и эффективное решение для расширения функционала формы. Важно сделать подписку добровольной, корректно обработать данные в PHP и, при необходимости, интегрировать с почтовым сервисом.

Внимательно протестируйте форму после изменений, убедитесь, что отправка работает корректно, а подписка добавляется только при выборе чекбокса. Это поможет избежать ошибок и улучшить взаимодействие с пользователями.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Contact Form 7: как отправлять данные формы во вторые сервисы через Webhook
21.12.2025
Contact Form 7: вставка и обработка поля с Google Maps в форме WordPress
29.03.2026
Contact Form 7: автоматическая обработка и сохранение ответов в WordPress
18.12.2025
Contact Form 7: отладка и решение ошибок PHP в WordPress
13.11.2025
Contact Form 7: как корректно очистить кеш и решить проблемы с отображением форм
05.05.2026
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙