𝗖𝗙𝟳 𝗕𝗿𝗲𝘃𝗼 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 ಸಮಸ್ಯೆ: ಸ್ವಾಗತ ಇಮೇಲ್ಗಳು (Welcome Emails) ಏಕೆ ವಿಫಲವಾಗುತ್ತವೆ?
ನಿಮ್ಮ Contact Form 7 (CF7) ಸಂಪರ್ಕಗಳನ್ನು (contacts) Brevo ಗೆ ಸೇರಿಸುತ್ತದೆ ಆದರೆ ಸ್ವಾಗತ ಇಮೇಲ್ಗಳನ್ನು (welcome emails) ಕಳುಹಿಸಲು ವಿಫಲವಾಗುತ್ತದೆ. ನೀವು ಎಲ್ಲವನ್ನೂ ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. ಸಂಪರ್ಕಗಳು ನಿಮ್ಮ ಪಟ್ಟಿಯಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ. ಆದರೆ ನಿಮ್ಮ ಸೈಟ್ನಿಂದ ಯಾವುದೇ ಇಮೇಲ್ ವಿನಂತಿಗಳು ಬಂದಿಲ್ಲ ಎಂದು Brevo ಬೆಂಬಲ ತಂಡವು (support team) ತಿಳಿಸುತ್ತದೆ.
ಸಮಸ್ಯೆಯು ಪ್ಲಗಿನ್ ಸಂಘರ್ಷದಿಂದಾಗಿ (plugin conflict) ಉಂಟಾಗಿಲ್ಲ. ಇದು ಅಂತರ್ಗತ ಇಂಟಿಗ್ರೇಶನ್ನ (built-in integration) ಒಂದು ಮಿತಿ.
CF7 ಸಂಪರ್ಕಗಳನ್ನು Brevo ಗೆ ಸೇರಿಸಲು ಒಂದು API call ಅನ್ನು ಬಳಸುತ್ತದೆ. ಇದು contacts endpoint ಅನ್ನು ತಲುಪುತ್ತದೆ. ಇದು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ.
ಸ್ವಾಗತ ಇಮೇಲ್ ಕಳುಹಿಸಲು ವಿಭಿನ್ನ API call ಅಗತ್ಯವಿದೆ. ಇದು transactional email endpoint ಅನ್ನು ತಲುಪಬೇಕು. CF7 ಈ ಎರಡನೇ call ಅನ್ನು ಮಾಡುವುದಿಲ್ಲ. ಅಂತರ್ಗತ ಇಂಟಿಗ್ರೇಶನ್ನಲ್ಲಿ ಈ ವೈಶಿಷ್ಟ್ಯವೇ ಇಲ್ಲ.
CF7 ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿರುವ "Send a welcome email" ಚೆಕ್ಬಾಕ್ಸ್ವು ದಾರಿತಪ್ಪಿಸುವಂತಿದೆ. ಇದು ಬಹುಶಃ Brevo ನ ಲಿಸ್ಟ್-ಮಟ್ಟದ ಕನ್ಫರ್ಮೇಶನ್ ಇಮೇಲ್ಗಳನ್ನು ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಕಸ್ಟಮ್ ಟ್ರಾನ್ಸಾಕ್ಷನಲ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು (custom transactional template) ಸಕ್ರಿಯಗೊಳಿಸುವುದಿಲ್ಲ.
ಇದನ್ನು ಸರಿಪಡಿಸಲು ನಿಮ್ಮ ಬಳಿ ಎರಡು ಮಾರ್ಗಗಳಿವೆ.
ಆಯ್ಕೆ 1: PHP ಫಂಕ್ಷನ್ ಬಳಸಿ
ನೀವು CF7 ಸಬ್ಮಿಷನ್ ಇವೆಂಟ್ಗೆ (submission event) 'hook' ಮಾಡಬಹುದು. ಇದು ಅಗತ್ಯವಿರುವ API call ಅನ್ನು ಮ್ಯಾನುಯಲ್ ಆಗಿ ಕಳುಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ಈ ಕೋಡ್ ರಚನೆಯನ್ನು ಬಳಸಿ:
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 ಇಮೇಲ್ಗಳನ್ನು ಕಳುಹಿಸುವುದಿಲ್ಲ.