beginTransaction(); // Insert into support_tickets $stmt = $pdo->prepare('INSERT INTO support_tickets (client_id, subject) VALUES (?, ?)'); $stmt->execute([$client_id, $subject]); $ticket_id = $pdo->lastInsertId(); // Insert into support_ticket_messages $stmt = $pdo->prepare('INSERT INTO support_ticket_messages (ticket_id, user_id, is_admin, message) VALUES (?, ?, ?, ?)'); $stmt->execute([$ticket_id, $client_id, false, $message]);\n\n $pdo->commit();\n\n // Send email notification to admin\n require_once \'mail/MailService.php\';\n $stmt = $pdo->prepare(\'SELECT name, email FROM clients WHERE id = ?\');\n $stmt->execute([$client_id]);\n $client = $stmt->fetch();\n\n $admin_email = getenv(\'MAIL_TO\') ?: getenv(\'MAIL_FROM\');\n if ($admin_email && $client) {\n $email_subject = \"New Support Ticket #{$ticket_id}: {$subject}\";\n $email_html = \"
A new support ticket has been created by {\$client[\'name\']} ({$client[\'email\']}).
\"\n . \"Subject: {$subject}
\"\n . \"Message:
You can view the ticket here: View Ticket
\";\n $email_text = \"A new support ticket has been created by {\$client[\'name\']} ({\$client[\'email\']}).\\n\\n\"\n . \"Subject: {$subject}\\n\\n\"\n . \"Message:\\n\" . htmlspecialchars($message) . \"\\n\\n\"\n . \"You can view the ticket here: http://{\$GLOBALS[HTTP_HOST]}/admin/view-ticket.php?id={$ticket_id}\";\n\n MailService::sendMail($admin_email, $email_subject, $email_html, $email_text);\n }\n\n $_SESSION[\'success_message\'] = \'Support ticket created successfully.\';\n // Redirect to prevent form resubmission\n header(\'Location: support.php\'); exit; } catch (Exception $e) { $pdo->rollBack(); $error_message = 'Failed to create support ticket. Please try again. Error: ' . $e->getMessage(); } } } // Fetch existing tickets for the client $stmt = db()->prepare('SELECT * FROM support_tickets WHERE client_id = ? ORDER BY updated_at DESC'); $stmt->execute([$client_id]); $tickets = $stmt->fetchAll(); ?>