getConnection(); // 1) Prova a prendere school_id dalla sessione $school_id = (int)($_SESSION['school_id'] ?? 0); // 2) Se non c'è, prova a risolverlo dal DB via owner (utente loggato) if ($school_id <= 0) { $owner_id = (int)($iduserlogin ?? $_SESSION['iduserlogin'] ?? 0); if ($owner_id > 0) { $stmt = $pdo->prepare("SELECT id FROM schools WHERE owner_id = ? ORDER BY id DESC LIMIT 1"); $stmt->execute([$owner_id]); $school_id = (int)($stmt->fetchColumn() ?: 0); if ($school_id > 0) { $_SESSION['school_id'] = $school_id; // sincronizza sessione } } } // Default settings MINIMI (se non esiste scuola o settings) $defaults = [ 'portal_purchases_enabled' => 0, 'allowed_product_types' => 'subscription,carnet,drop_in', 'payment_methods' => 'manual', 'currency_code' => 'EUR', 'enable_notifications' => 1, 'allow_freeze_global' => 1, 'freeze_max_days_global' => 30, 'auto_propagate_on_purchase' => 1, 'allow_full_access_rebooking' => 1, ]; if ($school_id <= 0) { // Nessuna scuola → default $schoolSettings = $defaults; } else { // Carica settings se esistono $stmt = $pdo->prepare("SELECT * FROM school_settings WHERE school_id = ? LIMIT 1"); $stmt->execute([$school_id]); $settings = $stmt->fetch(PDO::FETCH_ASSOC); if (!$settings) { // Se mancano, crea riga base (solo school_id) e ricarica $stmtIns = $pdo->prepare("INSERT INTO school_settings (school_id) VALUES (?)"); $stmtIns->execute([$school_id]); $stmt->execute([$school_id]); $settings = $stmt->fetch(PDO::FETCH_ASSOC) ?: []; } $schoolSettings = array_merge($defaults, $settings); } // Helpers array $schoolSettings['payment_methods_array'] = array_filter(array_map('trim', explode(',', $schoolSettings['payment_methods'] ?? ''))); $schoolSettings['allowed_product_types_array'] = array_filter(array_map('trim', explode(',', $schoolSettings['allowed_product_types'] ?? '')));