# Panduan Admin KabarNikah

Hanya ada dua peran: **admin** dan **member**. Peran ditentukan server; pendaftaran publik selalu menjadi member. Admin pertama dibuat oleh installer. Semua tindakan admin yang mengubah data member/pesanan tercatat di **Log Audit**.

## 1. Pengaturan awal (wajib sebelum menerima pembeli)

Halaman **Ringkasan** menampilkan daftar "Perlu perhatian sebelum produksi" sampai semua butir ini selesai.

1. **Pengaturan → Transfer manual**: isi rekening tujuan milik usaha Anda, satu per baris, format `Nama Bank | Nomor Rekening | Atas Nama`. QRIS statis opsional (unggah gambar). Atur batas waktu bayar (default 48 jam).
2. **Produk & Harga → setiap produk**:
   - Tinjau harga normal, harga perpanjangan, masa aktif (default 365 hari), batas foto/galeri/penyimpanan, fitur & kuota WhatsApp.
   - **Hak penggunaan desain & aset**: berkas sumber keempat template menyatakan desainnya adalah replika/terinspirasi dari desain pihak lain (our-wedding.link) dan memuat ilustrasi, font, foto contoh, serta musik dari pembuat asli. Centang konfirmasi **hanya bila** Anda memiliki lisensi/izin tertulis, dan isi dasar haknya (mis. nomor perjanjian). Tanpa konfirmasi ini produk tidak dapat dibeli.
   - Centang "Harga sudah saya tinjau" setelah selesai.
3. **Pengaturan → Email (SMTP)**: isi host, port, keamanan, pengguna, sandi, email & nama pengirim, serta email notifikasi admin. Tekan **Kirim email uji**. Tanpa SMTP, email verifikasi/reset sandi hanya tercatat di **Email keluar** dan tidak terkirim.
4. **Konten Landing → Identitas & kontak**: isi WhatsApp/email bantuan **milik usaha Anda**, jam layanan, nama & alamat usaha. Kontak kosong tidak ditampilkan (tidak ada nomor karangan).
5. **Konten Landing → Halaman kebijakan**: teks Privasi, Syarat, Refund, dan Tentang adalah **DRAF**. Tinjau dan sesuaikan dengan hukum yang berlaku untuk usaha Anda sebelum dipublikasikan.
6. (Opsional) **Pengaturan → Midtrans**: aktifkan, pilih mode (Sandbox/Production), isi server key & client key, lalu daftarkan **URL notifikasi** yang tertera ke dashboard Midtrans. Tekan **Uji kunci Midtrans**.
7. (Opsional) **Pengaturan → OpenWA** dan **Batas & jeda pengiriman WA**: lihat `PANDUAN_OPENWA.md`.
8. **Cadangan**: buat cadangan pertama dan pasang cron harian (lihat panduan instalasi).
9. **Pemeriksaan Sistem**: pastikan tidak ada butir merah, terutama HTTPS dan "Uji akses folder privat".

Nilai rahasia (server key, sandi SMTP, API key OpenWA, rahasia worker) disimpan terenkripsi dan tidak pernah ditampilkan kembali. Kosongkan kolom untuk mempertahankan nilai lama.

## 2. Pekerjaan harian: verifikasi pembayaran manual

1. **Pesanan & Pembayaran** → filter "Menunggu verifikasi admin" (juga tampil di Ringkasan).
2. Buka pesanan, lihat bukti transfer (privat, hanya admin & pemilik), lalu **cek mutasi rekening Anda**. Bukti saja bukan konfirmasi dana masuk.
3. **Setujui & aktifkan hak** bila dana masuk dengan nominal yang sama. Sistem membuat satu hak template + satu undangan (atau memperpanjang undangan yang sama untuk pesanan perpanjangan). Persetujuan ganda aman (idempoten).
4. **Tolak bukti** dengan alasan bila dana tidak ditemukan; pesanan kembali ke "menunggu pembayaran" sehingga member dapat mengunggah ulang selama invoice belum kedaluwarsa.
5. **Refund**: tandai pesanan lunas sebagai refund (dana dikembalikan di luar sistem); hak template dari pesanan itu ditangguhkan.

Pembayaran Midtrans: status lunas hanya ditetapkan dari notifikasi server yang tanda tangannya valid **dan** dicek ulang ke API Midtrans (nominal, mata uang, nomor pesanan harus cocok). Halaman kembali dari browser tidak pernah melunasi pesanan. Tombol **Cek status ke Midtrans** tersedia untuk rekonsiliasi.

## 3. Member & hak

- **Member & Hak → detail member**: lihat hak template, undangan, pesanan.
- **Beri hak template (manual)**: untuk kompensasi/pembayaran di luar sistem. Wajib alasan; membuat satu undangan baru.
- Tindakan pada hak: **Perpanjang** (hari), **Tangguhkan**, **Aktifkan**, **Cabut** — semua wajib alasan.
- **Blokir akun**: semua sesi member langsung dikeluarkan.

## 4. Undangan

- **Bantu edit**: membuka editor milik member (mode bantuan, tercatat di audit).
- **Tangguhkan**: menyembunyikan undangan dari publik (mis. konten melanggar). **Pulihkan** mengembalikan status.
- **Alihkan pemilik**: memindahkan undangan beserta hak & medianya ke akun member lain (wajib alasan).

## 5. Konten landing

Identitas & kontak, hero, keunggulan, fitur, cara kerja, FAQ, video, dan halaman kebijakan dapat diubah. Semua disimpan sebagai teks biasa. **Jangan menulis testimoni, jumlah pelanggan, rating, atau logo klien yang tidak nyata.** Video bawaan adalah rekaman layar aplikasi ini; Anda dapat menggantinya (MP4/WebM) beserta poster dan transkrip.

## 6. WhatsApp / OpenWA

Halaman **WhatsApp / OpenWA** menampilkan nomor yang tersambung (disamarkan), kampanye, jumlah terkirim/gagal/tidak pasti, pemakaian 24 jam, dan status worker. Admin dapat **menjeda** atau **membatalkan** kampanye dengan alasan (mis. laporan spam). Pesan yang sudah terkirim tidak dapat ditarik.

## 7. Dukungan, audit, email

- **Dukungan**: percakapan bantuan dari member; balasan dikirim ke email member (bila SMTP aktif).
- **Log Audit**: tindakan penting (persetujuan pembayaran, perubahan harga/lisensi, hak manual, blokir, pengaturan, bantuan edit, kampanye WA). IP disimpan sebagai hash.
- **Email keluar**: status setiap email (terkirim/gagal/SMTP belum diatur). Isi email tidak ditampilkan.

## 8. Cadangan & pemulihan

- **Buat cadangan sekarang** (opsional dengan media). Arsip berisi basis data dan **kunci aplikasi** → simpan di tempat aman, jangan dibagikan. Server menyimpan 12 arsip terbaru.
- **Pulihkan**: pilih arsip, ketik `PULIHKAN`. Sistem memvalidasi arsip (jalur aman, integritas SQLite, tabel wajib, ada admin aktif), membuat **cadangan pengaman** kondisi saat ini, lalu menerapkan pemulihan pada permintaan berikutnya. Semua sesi mengikuti data cadangan; masuk kembali bila diminta.

## 9. Pemeriksaan sistem

Memeriksa versi PHP/ekstensi/SQLite, batas unggah, HTTPS, posisi folder privat, mode debug, installer terkunci, metode pembayaran, harga & lisensi, SMTP, OpenWA & worker, cadangan terbaru, mode pemeliharaan, dan ruang disk. **Uji akses folder privat** mencoba mengunduh berkas uji dari storage lewat URL; hasilnya harus "tidak dapat diunduh".

## 10. Mode pemeliharaan

**Pengaturan → Umum → Mode pemeliharaan**: pengunjung melihat halaman pemeliharaan; admin tetap dapat masuk. Endpoint webhook & worker tetap berjalan.

## 11. Musik bawaan template

Keempat ZIP template berisi berkas MP3 yang sama dengan lisensi tidak diketahui. Musik itu **nonaktif** sampai admin mencentang "Izinkan musik bawaan template" — aktifkan hanya bila lisensinya jelas. Member tetap dapat mengunggah musik sendiri.
