CF7 Brevo Integration Issue: वेल्कम ईमेल्स का जात नाहीत

तुमचा Contact Form 7 (CF7) Brevo मध्ये कॉन्टॅक्ट्स जोडतो पण वेल्कम ईमेल्स पाठवण्यात अपयशी ठरतो. तुम्ही सर्व काही तपासले आहे. कॉन्टॅक्ट्स तुमच्या लिस्टमध्ये दिसतात. Brevo सपोर्ट टीमला तुमच्या साईटवरून कोणताही ईमेल रिक्वेस्ट दिसत नाही.

ही समस्या प्लगइन कॉन्फ्लिक्टमुळे (plugin conflict) नाही. ही इन-बिल्ट इंटिग्रेशनची (built-in integration) एक मर्यादा आहे.

CF7 कॉन्टॅक्ट्स Brevo मध्ये जोडण्यासाठी एक API कॉल वापरते. ते contacts endpoint ला हिट करते. हे व्यवस्थित काम करते.

वेल्कम ईमेल पाठवण्यासाठी वेगळ्या API कॉलची आवश्यकता असते. तो transactional email endpoint ला हिट करणे आवश्यक आहे. CF7 हा दुसरा कॉल करत नाही. इन-बिल्ट इंटिग्रेशनमध्ये या फीचरचा अभाव आहे.

CF7 सेटिंग्जमधील "Send a welcome email" चेकबॉक्स दिशाभूल करणारा आहे. तो बहुधा फक्त Brevo च्या लिस्ट-लेव्हल कन्फर्मेशन ईमेल्स ट्रिगर करतो. तो तुमचा कस्टम ट्रान्झॅक्शनल टेम्पलेट (custom transactional template) ट्रिगर करत नाही.

हे सुधारण्याचे तुमच्याकडे दोन मार्ग आहेत.

पर्याय १: PHP फंक्शन वापरा

तुम्ही CF7 सबमिशन इव्हेंटमध्ये (submission event) हुक करू शकता. यामुळे तुम्हाला आवश्यक 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,
    ]);
}

पर्याय २: विशेष प्लगइन वापरा

जर तुम्हाला कोड मॅनेज करायचा नसेल, तर Contact Form to API सारखे प्लगइन वापरा. हे तुमच्या डॅशबोर्डद्वारे CF7 ला थेट Brevo transactional endpoint शी जोडते. तुम्ही PHP न लिहिता तुमचे फील्ड्स मॅप करू शकता आणि तुमचा टेम्पलेट ID सेट करू शकता.

एक शेवटची तपासणी: तुमचा Brevo टेम्पलेट स्टेटस "Active" असल्याची खात्री करा. Brevo ड्राफ्ट टेम्पलेट्ससाठी ईमेल पाठवणार नाही.

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