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

നിങ്ങളുടെ Contact Form 7 (CF7) കോൺടാക്റ്റുകളെ Brevo-യിലേക്ക് ചേർക്കുന്നുണ്ടെങ്കിലും വെൽക്കം ഇമെയിലുകൾ അയക്കുന്നതിൽ പരാജയപ്പെടുന്നു. നിങ്ങൾ എല്ലാം പരിശോധിച്ചു കഴിഞ്ഞു. കോൺടാക്റ്റുകൾ നിങ്ങളുടെ ലിസ്റ്റിൽ കാണപ്പെടുന്നുണ്ട്. എന്നാൽ നിങ്ങളുടെ സൈറ്റിൽ നിന്ന് Brevo-യ്ക്ക് ഇമെയിൽ അഭ്യർത്ഥനകളൊന്നും ലഭിക്കുന്നില്ലെന്ന് Brevo സപ്പോർട്ട് ടീം അറിയിക്കുന്നു.

ഈ പ്രശ്നം ഒരു പ്ലഗിൻ കോൺഫ്ലിക്റ്റ് (plugin conflict) അല്ല. മറിച്ച്, നിലവിലുള്ള ഇന്റഗ്രേഷന്റെ ഒരു പരിമിതിയാണ്.

കോൺടാക്റ്റുകളെ Brevo-യിലേക്ക് ചേർക്കാൻ CF7 ഒരു API കോൾ മാത്രമാണ് ഉപയോഗിക്കുന്നത്. ഇത് contacts endpoint-ലേക്ക് ആണ് കണക്ട് ചെയ്യുന്നത്. ഇത് കൃത്യമായി പ്രവർത്തിക്കുന്നുണ്ട്.

എന്നാൽ ഒരു വെൽക്കം ഇമെയിൽ അയക്കുന്നതിന് മറ്റൊരു API കോൾ ആവശ്യമാണ്. അത് transactional email endpoint-ലേക്ക് ആയിരിക്കണം. CF7 ഈ രണ്ടാമത്തെ കോൾ ചെയ്യുന്നില്ല. നിലവിലുള്ള ഇന്റഗ്രേഷനിൽ ഈ ഫീച്ചർ ലഭ്യമല്ല.

CF7 സെറ്റിംഗ്‌സിലെ "Send a welcome email" എന്ന ചെക്ക്ബോക്സ് തെറ്റിദ്ധരിപ്പിക്കുന്നതാണ്. ഇത് മിക്കവാറും Brevo-യുടെ ലിസ്റ്റ് ലെവൽ കൺഫർമേഷൻ ഇമെയിലുകൾ മാത്രമാണ് അയക്കുന്നത്. നിങ്ങളുടെ കസ്റ്റം ട്രാൻസാക്ഷണൽ ടെംപ്ലേറ്റ് (custom transactional template) ഇത് പ്രവർത്തിപ്പിക്കില്ല.

ഇത് പരിഹരിക്കാൻ നിങ്ങൾക്ക് രണ്ട് വഴികളുണ്ട്.

ഓപ്ഷൻ 1: ഒരു PHP ഫംഗ്ഷൻ ഉപയോഗിക്കുക

നിങ്ങൾക്ക് CF7 സബ്മിഷൻ ഇവന്റിൽ (submission event) ഒരു ഹുക്ക് (hook) ഉപയോഗിക്കാം. ഇതിലൂടെ ആവശ്യമായ 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 transactional endpoint-മായി നേരിട്ട് ബന്ധിപ്പിക്കുന്നു. PHP കോഡ് എഴുതാതെ തന്നെ നിങ്ങൾക്ക് ഫീൽഡുകൾ മാപ്പ് ചെയ്യാനും ടെംപ്ലേറ്റ് ID സെറ്റ് ചെയ്യാനും സാധിക്കും.

ഒരു അവസാന പരിശോധന കൂടി: നിങ്ങളുടെ Brevo ടെംപ്ലേറ്റ് സ്റ്റാറ്റസ് "Active" ആണെന്ന് ഉറപ്പുവരുത്തുക. ഡ്രാഫ്റ്റ് (draft) ആയിരിക്കുന്ന ടെംപ്ലേറ്റുകൾക്കായി Brevo ഇമെയിലുകൾ അയക്കില്ല.

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