From edbd851f2be3c1476ae5801eba578433a74f5c52 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sun, 15 Feb 2026 06:46:58 +0000 Subject: [PATCH] Autosave: 20260215-064658 --- mail/WablasService.php | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/mail/WablasService.php b/mail/WablasService.php index 6612bc6..0c15b10 100644 --- a/mail/WablasService.php +++ b/mail/WablasService.php @@ -62,14 +62,20 @@ class WablasService { $data = [ 'phone' => $to, 'image' => $imageUrl, - 'caption' => $caption + 'caption' => rawurlencode($caption) ]; + + $jsonData = json_encode($data); $curl = curl_init(); - curl_setopt($curl, CURLOPT_HTTPHEADER, ["Authorization: $token"]); + curl_setopt($curl, CURLOPT_HTTPHEADER, [ + "Authorization: $token", + 'Content-Type: application/json', + 'Content-Length: ' . strlen($jsonData) + ]); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); + curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($curl, CURLOPT_URL, rtrim($serverUrl, '/') . "/api/send-image"); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); @@ -98,7 +104,7 @@ class WablasService { return ($lang === 'ar') ? ($org['name_ar'] ?? 'المنظمة') : ($org['name_en'] ?? 'Organization'); } - private static function sendTemplatedMessage($to, $templateName, $vars, $lang = 'en', $useImage = true) { + private static function sendTemplatedMessage($to, $templateName, $vars, $lang = 'en') { if (empty($to)) { return ['success' => false, 'error' => 'Recipient phone number is missing.']; } @@ -112,6 +118,10 @@ class WablasService { error_log("WhatsApp template '$templateName' not found or is disabled."); return ['success' => false, 'error' => "Template '$templateName' not found or disabled."]; } + + $settings_stmt = $pdo->query("SELECT setting_key, setting_value FROM settings WHERE setting_key = 'whatsapp_send_cards'"); + $settings = $settings_stmt->fetchAll(PDO::FETCH_KEY_PAIR); + $useImage = isset($settings['whatsapp_send_cards']) && $settings['whatsapp_send_cards'] == '1'; $messageBody = ($lang === 'ar' && !empty($template['template_body_ar'])) ? $template['template_body_ar'] : $template['template_body_en']; @@ -120,8 +130,14 @@ class WablasService { } if ($useImage) { - // ToDo: Find a way to get the base URL - $siteUrl = 'http://' . $_SERVER['HTTP_HOST']; + if (getenv('FULL_DOMAIN')) { + $siteUrl = 'https://' . getenv('FULL_DOMAIN'); + } elseif (php_sapi_name() === 'cli') { + $siteUrl = getenv('APP_URL') ?: 'http://localhost'; + } else { + $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https" : "http"; + $siteUrl = "$protocol://" . $_SERVER['HTTP_HOST']; + } $imageUrl = $siteUrl . '/admin/generate_card.php?' . http_build_query([ 'text' => $messageBody, 'lang' => $lang,