𝗖𝗙𝟳 𝗕𝗿𝗲𝘃𝗼 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 𝗜𝘀𝘀𝘂𝗲: 𝗪𝗵𝘆 𝗪𝗲𝗹𝗰𝗼𝗺𝗲 𝗘𝗺𝗮𝗶𝗹𝘀 𝗙𝗮𝗶𝗹
आपका Contact Form 7 (CF7) Brevo में कॉन्टैक्ट्स तो जोड़ देता है लेकिन वेलकम ईमेल भेजने में विफल रहता है। आपने सब कुछ चेक कर लिया है। कॉन्टैक्ट्स आपकी लिस्ट में दिखाई दे रहे हैं। Brevo सपोर्ट टीम को आपकी साइट से कोई ईमेल रिक्वेस्ट नहीं दिख रही है।
समस्या प्लगइन कॉन्फ्लिक्ट (plugin conflict) नहीं है। यह इन-बिल्ट इंटीग्रेशन की एक सीमा (limitation) है।
CF7, Brevo में कॉन्टैक्ट्स जोड़ने के लिए एक API कॉल का उपयोग करता है। यह contacts endpoint पर हिट करता है। यह ठीक से काम करता है।
वेलकम ईमेल भेजने के लिए एक अलग API कॉल की आवश्यकता होती है। इसे transactional email endpoint पर हिट करना चाहिए। CF7 यह दूसरी कॉल नहीं करता है। इन-बिल्ट इंटीग्रेशन में बस इस फीचर की कमी है।
CF7 सेटिंग्स में "Send a welcome email" चेकबॉक्स भ्रामक है। यह संभवतः केवल Brevo के लिस्ट-लेवल कन्फर्मेशन ईमेल को ट्रिगर करता है। यह आपके कस्टम 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 लिखे अपने फील्ड्स को मैप कर सकते हैं और अपनी template ID सेट कर सकते हैं।
एक अंतिम जांच: सुनिश्चित करें कि आपके Brevo template का स्टेटस "Active" है। Brevo ड्राफ्ट टेम्पलेट्स के लिए ईमेल नहीं भेजेगा।