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

Contact Form 7 (CF7) anda menambah kenalan ke Brevo tetapi gagal menghantar emel aluan. Anda telah menyemak segalanya. Kenalan muncul dalam senarai anda. Pasukan sokongan Brevo tidak melihat sebarang permintaan emel daripada laman web anda.

Masalah ini bukan disebabkan oleh konflik plugin. Ia adalah had pada integrasi terbina dalam.

CF7 menggunakan satu panggilan API untuk menambah kenalan ke Brevo. Ia mengakses endpoint kenalan. Ini berfungsi dengan baik.

Menghantar emel aluan memerlukan panggilan API yang berbeza. Ia mesti mengakses endpoint emel transaksi. CF7 tidak melakukan panggilan kedua ini. Integrasi terbina dalam tersebut memang tidak mempunyai ciri ini.

Kotak pilihan "Send a welcome email" dalam tetapan CF7 adalah mengelirukan. Ia berkemungkinan hanya mencetuskan emel pengesahan pada peringkat senarai Brevo. Ia tidak mencetuskan templat transaksi tersuai anda.

Anda mempunyai dua cara untuk membetulkan perkara ini.

Pilihan 1: Gunakan fungsi PHP

Anda boleh menggunakan 'hook' pada acara penghantaran CF7. Ini membolehkan anda menghantar panggilan API yang diperlukan secara manual.

Gunakan struktur kod ini:

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,
    ]);
}

Pilihan 2: Gunakan plugin khusus

Jika anda tidak mahu menguruskan kod, gunakan plugin seperti Contact Form to API. Ini menyambungkan CF7 secara terus ke endpoint transaksi Brevo melalui papan pemuka anda. Anda boleh memetakan medan anda dan menetapkan ID templat tanpa perlu menulis PHP.

Satu semakan terakhir: Pastikan status templat Brevo anda adalah "Active". Brevo tidak akan menghantar emel untuk templat draf.

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