𝗖𝗙𝟳 𝗕𝗿𝗲𝘃𝗼 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 𝗜𝘀𝘀𝘂𝗲: 𝗪𝗵𝘆 𝗪𝗲𝗹𝗰𝗼𝗺𝗲 𝗘𝗺𝗮𝗶𝗹𝘀 𝗙𝗮𝗶𝗹
നിങ്ങളുടെ 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 ഇമെയിലുകൾ അയക്കില്ല.