𝗖𝗙𝟳 𝗕𝗿𝗲𝘃𝗼 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 𝗜𝘀𝘀𝘂𝗲: 𝗪𝗵𝘆 𝗪𝗲𝗹𝗰𝗼𝗺𝗲 𝗘𝗺𝗮𝗶𝗹𝘀 𝗙𝗮𝗶𝗹

Ваш Contact Form 7 (CF7) додає контакти до Brevo, але не надсилає вітальні листи. Ви все перевірили. Контакти з'являються у вашому списку. Команда підтримки Brevo не бачить жодних запитів на надсилання електронних листів з вашого сайту.

Проблема не у конфлікті плагінів. Це обмеження вбудованої інтеграції.

CF7 використовує один API-запит для додавання контактів до Brevo. Він звертається до ендпоінту контактів. Це працює належним чином.

Надсилання вітального листа потребує іншого API-запиту. Він має звертатися до ендпоінту транзакційних листів. CF7 не виконує цей другий запит. Вбудованій інтеграції просто бракує цієї функції.

Чекбокс "Send a welcome email" у налаштуваннях CF7 вводить в оману. Ймовірно, він лише запускає підтверджувальні листи Brevo на рівні списку. Він не запускає ваш власний транзакційний шаблон.

Ви можете виправити це двома способами.

Варіант 1: Використання PHP-функції

Ви можете використати хук (hook) для події відправлення CF7. Це дозволить вам надіслати необхідний API-запит вручну.

Використовуйте таку структуру коду:

add_action('wpcf7_before_send_mail', 'send_brevo_welcome_email');

function send_brevo_welcome_email($contact_form) {
    if ((int) $contact_form->id() !== YOUR_FORM_ID) return;

    $submission = WPCF7_Submission::get_instance();
    if (!$submission) return;

    $data = $submission->get_posted_data();
    $email = sanitize_email($data['your-email'] ?? '');
    $name = sanitize_text_field($data['your-name'] ?? '');

    if (empty($email)) return;

    $api_key = defined('BREVO_API_KEY') ? BREVO_API_KEY : '';
    $template_id = 12; 

    wp_remote_post('https://api.brevo.com/v3/smtp/email', [
        'headers' => [
            'api-key' => $api_key,
            'Content-Type' => 'application/json',
        ],
        'body' => wp_json_encode([
            'templateId' => $template_id,
            'to' => [['email' => $email, 'name' => $name]],
            'params' => ['FIRSTNAME' => $name],
        ]),
        'timeout' => 15,
    ]);
}

Варіант 2: Використання спеціалізованого плагіна

Якщо ви не хочете працювати з кодом, скористайтеся таким плагіном, як Contact Form to API. Він підключає CF7 безпосередньо до транзакційного ендпоінту Brevo через вашу панель керування. Ви зможете зіставити свої поля та встановити ID шаблону без написання PHP-коду.

Останній момент: переконайтеся, що статус вашого шаблону в Brevo — "Active". Brevo не надсилатиме листи для чернеток (draft templates).

Source: https://dev.to/rahul_sharma_15bd129bc69e/cf7-brevo-integration-adds-contacts-but-never-sends-the-welcome-email-here-is-why-1e18