[ 'page_title' => 'Ρυθμίσεις WhatsApp', 'header_title' => 'Ρυθμίσεις WhatsApp Cloud API', 'api_details' => 'Στοιχεία Σύνδεσης Meta for Developers', 'api_instructions' => 'Οδηγίες: Για να συνδέσετε το WhatsApp, δημιουργήστε λογαριασμό στο Meta for Developers, προσθέστε προϊόν WhatsApp σε μια εφαρμογή (App) και αντιγράψτε τα στοιχεία.', 'phone_id' => 'Phone Number ID *', 'access_token' => 'Temporary / Permanent Access Token *', 'business_id' => 'WhatsApp Business Account ID (Προαιρετικό)', 'btn_save' => '💾 Αποθήκευση Ρυθμίσεων', 'test_title' => 'Δοκιμή Μηνύματος (Test Message)', 'test_desc' => 'Στείλτε ένα δοκιμαστικό μήνυμα σε έναν αριθμό κινητού (π.χ. ο δικός σας αριθμός).', 'test_phone' => 'Αριθμός Κινητού (με κωδικό χώρας)', 'btn_test' => '💬 Αποστολή WhatsApp', 'msg_save_ok' => 'Οι ρυθμίσεις WhatsApp αποθηκεύτηκαν επιτυχώς!', 'msg_err_empty' => 'Παρακαλώ συμπληρώστε το τηλέφωνο παραλήπτη και τις ρυθμίσεις API παραπάνω!', 'msg_test_ok' => 'Το δοκιμαστικό μήνυμα WhatsApp στάλθηκε επιτυχώς στον αριθμό', 'msg_err_api' => 'Αποτυχία αποστολής WhatsApp.' ], 'en' => [ 'page_title' => 'WhatsApp Settings', 'header_title' => 'WhatsApp Cloud API Settings', 'api_details' => 'Meta for Developers Credentials', 'api_instructions' => 'Instructions: To connect WhatsApp, create an account on Meta for Developers, add WhatsApp product to an App and copy the credentials.', 'phone_id' => 'Phone Number ID *', 'access_token' => 'Temporary / Permanent Access Token *', 'business_id' => 'WhatsApp Business Account ID (Optional)', 'btn_save' => '💾 Save Settings', 'test_title' => 'Test Message', 'test_desc' => 'Send a test message to a mobile number (e.g. your own number).', 'test_phone' => 'Mobile Number (with country code)', 'btn_test' => '💬 Send WhatsApp', 'msg_save_ok' => 'WhatsApp settings saved successfully!', 'msg_err_empty' => 'Please fill in the recipient phone and API settings above!', 'msg_test_ok' => 'Test WhatsApp message sent successfully to', 'msg_err_api' => 'WhatsApp Delivery Failed.' ] ]; $t = $translations[$current_lang]; header('Content-Type: text/html; charset=utf-8'); $message = ''; $setting_keys = ['whatsapp_phone_number_id', 'whatsapp_access_token', 'whatsapp_business_account_id']; // --- 1. ΑΠΟΘΗΚΕΥΣΗ ΡΥΘΜΙΣΕΩΝ --- if ($_SERVER['REQUEST_METHOD'] === 'POST' and isset($_POST['action']) and$_POST['action'] == 'save_settings') { try { $pdo->beginTransaction(); foreach ($setting_keys as $key) {$value = trim($_POST[$key] ?? ''); $check =$pdo->prepare("SELECT COUNT(*) FROM settings WHERE `key` = ?"); $check->execute([$key]); if ($check->fetchColumn() > 0) { $stmt =$pdo->prepare("UPDATE settings SET `value` = ? WHERE `key` = ?"); $stmt->execute([$value,$key]); } else { $stmt =$pdo->prepare("INSERT INTO settings (`key`, `value`) VALUES (?, ?)"); $stmt->execute([$key,$value]); } } $pdo->commit();$message = "
{$t['msg_save_ok']}
"; } catch (PDOException $e) { $pdo->rollBack();$message = "
Σφάλμα: " . $e->getMessage() . "
"; } } // --- Ανάγνωση υφιστάμενων ρυθμίσεων --- $current_settings = []; $stmt =$pdo->query("SELECT `key`, `value` FROM settings WHERE `key` IN ('" . implode("','", $setting_keys) . "')"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {$current_settings[$row['key']] =$row['value']; } // --- 2. ΑΠΟΣΤΟΛΗ ΔΟΚΙΜΑΣΤΙΚΟΥ ΜΗΝΥΜΑΤΟΣ --- if ($_SERVER['REQUEST_METHOD'] === 'POST' and isset($_POST['action']) and$_POST['action'] == 'test_whatsapp') { $test_phone = trim($_POST['test_phone']); $phone_number_id =$current_settings['whatsapp_phone_number_id'] ?? ''; $access_token =$current_settings['whatsapp_access_token'] ?? ''; if (empty($test_phone) or empty($phone_number_id) or empty($access_token)) {$message = "
{$t['msg_err_empty']}
"; } else { $url = "https://graph.facebook.com/v17.0/{$phone_number_id}/messages"; $data = [ "messaging_product" => "whatsapp", "to" => $test_phone, "type" => "text", "text" => ["body" => "🎉 Γεια σας! Αυτό είναι ένα δοκιμαστικό μήνυμα επιβεβαίωσης από το Hockey CMS."] ]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer " . $access_token, "Content-Type: application/json" ]); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code === 200) {$message = "
{$t['msg_test_ok']} {$test_phone}!
"; } else { $message = "
{$t['msg_err_api']} (HTTP Code: {$http_code}).
{$response}
"; } } } ?> <?php echo $t['page_title']; ?> - Hockey CMS