𝗖𝗙𝟳 𝗕𝗿𝗲𝘃𝗼 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 𝗜𝘀𝘀𝘂𝗲: 𝗪𝗵𝘆 𝗪𝗲𝗹𝗰𝗼𝗺𝗲 𝗘𝗺𝗮𝗶𝗹𝘀 𝗙𝗮𝗶𝗹
మీ Contact Form 7 (CF7) కాంటాక్ట్లను Brevoకి జోడిస్తుంది కానీ వెల్కమ్ ఈమెయిల్స్ను పంపడంలో విఫలమవుతుంది. మీరు అన్నింటినీ తనిఖీ చేశారు. కాంటాక్ట్లు మీ లిస్ట్లో కనిపిస్తున్నాయి. మీ సైట్ నుండి ఎటువంటి ఈమెయిల్ రిక్వెస్ట్లు లేవని Brevo సపోర్ట్ టీమ్ చెబుతోంది.
ఈ సమస్య ప్లగిన్ కాన్ఫ్లిక్ట్ (conflict) వల్ల కాదు. ఇది బిల్ట్-ఇన్ ఇంటిగ్రేషన్ యొక్క పరిమితి.
CF7 కాంటాక్ట్లను Brevoకి జోడించడానికి ఒక API కాల్ను ఉపయోగిస్తుంది. ఇది contacts endpointని చేరుకుంటుంది. ఇది సరిగ్గా పనిచేస్తుంది.
వెల్కమ్ ఈమెయిల్ పంపడానికి వేరొక API కాల్ అవసరం. అది transactional email endpointని చేరుకోవాలి. CF7 ఈ రెండవ కాల్ను చేయదు. బిల్ట్-ఇన్ ఇంటిగ్రేషన్లో ఈ ఫీచర్ లేదు.
CF7 సెట్టింగ్స్లో ఉన్న "Send a welcome email" చెక్బాక్స్ తప్పుదారి పట్టించే విధంగా ఉంది. ఇది బహుశా Brevo యొక్క లిస్ట్-లెవల్ కన్ఫర్మేషన్ ఈమెయిల్స్ను మాత్రమే ట్రిగ్గర్ చేస్తుంది. ఇది మీ కస్టమ్ ట్రాన్సాక్షనల్ టెంప్లేట్ను ట్రిగ్గర్ చేయదు.
దీనిని పరిష్కరించడానికి మీకు రెండు మార్గాలు ఉన్నాయి.
Option 1: Use a PHP function
మీరు 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,
]);
}
Option 2: Use a specialized plugin
మీరు కోడ్ను నిర్వహించకూడదు అనుకుంటే, Contact Form to API వంటి ప్లగిన్ను ఉపయోగించండి. ఇది మీ డ్యాష్బోర్డ్ ద్వారా CF7ని నేరుగా Brevo transactional endpointకి కనెక్ట్ చేస్తుంది. మీరు PHP రాయకుండానే మీ ఫీల్డ్లను మ్యాప్ చేయవచ్చు మరియు మీ టెంప్లేట్ IDని సెట్ చేయవచ్చు.
చివరిగా ఒక తనిఖీ: మీ Brevo టెంప్లేట్ స్టేటస్ "Active" అని నిర్ధారించుకోండి. డ్రాఫ్ట్ (draft) టెంప్లేట్ల కోసం Brevo ఈమెయిల్స్ను పంపదు.