diff --git a/admin/kategori.php b/admin/kategori.php
new file mode 100644
index 0000000..83d3ea5
--- /dev/null
+++ b/admin/kategori.php
@@ -0,0 +1,146 @@
+ 0) {
+ header('Location: kategori.php?msg=Kategori tidak bisa dihapus karena masih digunakan di menu&type=danger');
+ exit;
+ }
+
+ $stmt = db()->prepare("DELETE FROM kategori_menu WHERE id = ?");
+ $stmt->execute([$id]);
+ header('Location: kategori.php?msg=Kategori berhasil dihapus');
+ exit;
+}
+
+// Handle Form Submit (Add/Edit)
+if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+ $nama_kategori = $_POST['nama_kategori'];
+ $deskripsi = $_POST['deskripsi'];
+ $urutan = $_POST['urutan'] ?? 0;
+ $status = isset($_POST['status']) ? 1 : 0;
+
+ // Simple slug generator
+ $slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $nama_kategori)));
+
+ if ($id) {
+ // Edit
+ $stmt = db()->prepare("UPDATE kategori_menu SET nama_kategori=?, slug=?, deskripsi=?, urutan=?, status=? WHERE id=?");
+ $stmt->execute([$nama_kategori, $slug, $deskripsi, $urutan, $status, $id]);
+ $msg = "Kategori berhasil diperbarui";
+ } else {
+ // Add
+ $stmt = db()->prepare("INSERT INTO kategori_menu (nama_kategori, slug, deskripsi, urutan, status) VALUES (?, ?, ?, ?, ?)");
+ $stmt->execute([$nama_kategori, $slug, $deskripsi, $urutan, $status]);
+ $msg = "Kategori berhasil ditambahkan";
+ }
+ header('Location: kategori.php?msg=' . $msg);
+ exit;
+}
+
+// Fetch data for form
+$edit_data = null;
+if (($action === 'edit' || $action === 'tambah') && $id) {
+ $edit_data = fetch_one("SELECT * FROM kategori_menu WHERE id = ?", [$id]);
+}
+
+$kategori_list = fetch_all("SELECT * FROM kategori_menu ORDER BY urutan ASC, nama_kategori ASC");
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Urutan |
+ Nama Kategori |
+ Slug |
+ Status |
+ Aksi |
+
+
+
+
+
+ |
+ |
+ |
+
+
+ Aktif
+
+ Non-aktif
+
+ |
+
+ Edit
+ Hapus
+ |
+
+
+
+
+ | Belum ada kategori. |
+
+
+
+
+
+
+
+
+
+
diff --git a/admin/pesanan.php b/admin/pesanan.php
new file mode 100644
index 0000000..e85eae9
--- /dev/null
+++ b/admin/pesanan.php
@@ -0,0 +1,199 @@
+prepare("UPDATE pesanan SET status = ? WHERE id = ?");
+ $stmt->execute([$new_status, $id]);
+ header("Location: pesanan.php?action=detail&id=$id&msg=Status pesanan berhasil diperbarui");
+ exit;
+}
+
+// Handle Delete
+if ($action === 'hapus' && $id) {
+ // Delete items first
+ $stmt = db()->prepare("DELETE FROM pesanan_item WHERE pesanan_id = ?");
+ $stmt->execute([$id]);
+
+ // Delete order
+ $stmt = db()->prepare("DELETE FROM pesanan WHERE id = ?");
+ $stmt->execute([$id]);
+
+ header('Location: pesanan.php?msg=Pesanan berhasil dihapus');
+ exit;
+}
+
+// Fetch Data
+if ($action === 'detail' && $id) {
+ $order = fetch_one("SELECT * FROM pesanan WHERE id = ?", [$id]);
+ $items = fetch_all("SELECT pi.*, m.nama_menu FROM pesanan_item pi JOIN menu m ON pi.menu_id = m.id WHERE pi.pesanan_id = ?", [$id]);
+}
+
+$pesanan_list = fetch_all("SELECT * FROM pesanan ORDER BY id DESC");
+?>
+
+
+
Kelola Pesanan
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | Nama Pelanggan |
+ |
+
+
+ | WhatsApp |
+
+
+
+
+ |
+
+
+ | Alamat Pengiriman |
+ |
+
+
+ | Tanggal Kirim |
+ |
+
+
+ | Catatan |
+ |
+
+
+ | Waktu Pesan |
+ |
+
+
+
+
Item Pesanan
+
+
+
+
+ | Menu |
+ Qty |
+ Harga Satuan |
+ Subtotal |
+
+
+
+
+
+ |
+ |
+ |
+ |
+
+
+
+
+
+ | Total |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | ID |
+ Pelanggan |
+ WA |
+ Total |
+ Status |
+ Waktu |
+ Aksi |
+
+
+
+
+
+ | # |
+ |
+ |
+ |
+
+ 'bg-info',
+ 'Proses' => 'bg-warning',
+ 'Selesai' => 'bg-success',
+ 'Batal' => 'bg-danger'
+ ];
+ ?>
+
+
+
+ |
+ |
+
+ Detail
+ Hapus
+ |
+
+
+
+
+ | Belum ada pesanan. |
+
+
+
+
+
+
+
+
+
+
diff --git a/admin/profil.php b/admin/profil.php
new file mode 100644
index 0000000..14ff455
--- /dev/null
+++ b/admin/profil.php
@@ -0,0 +1,119 @@
+prepare("UPDATE profil_usaha SET nama_usaha=?, tagline=?, deskripsi=?, alamat=?, whatsapp=?, email=?, instagram=?, logo=? WHERE id=?");
+ $stmt->execute([$nama_usaha, $tagline, $deskripsi, $alamat, $whatsapp, $email, $instagram, $logo, $profil['id']]);
+ } else {
+ // Insert
+ $stmt = db()->prepare("INSERT INTO profil_usaha (nama_usaha, tagline, deskripsi, alamat, whatsapp, email, instagram, logo) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
+ $stmt->execute([$nama_usaha, $tagline, $deskripsi, $alamat, $whatsapp, $email, $instagram, $logo]);
+ }
+
+ header('Location: profil.php?msg=Profil usaha berhasil diperbarui');
+ exit;
+}
+?>
+
+
+
Profil Usaha
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tips Profil
+
Pastikan nomor WhatsApp diawali dengan 62 (contoh: 628123456789) agar fitur tombol pesan di halaman depan berfungsi dengan baik.
+
Logo yang diunggah sebaiknya memiliki latar belakang transparan (PNG) untuk tampilan terbaik di website.
+
+
+
+
+
+