=== Sejoli Ticketing Event ===
Contributors: starfieldindonesia
Author: Starfield Indonesia
Author URI: https://starfield.id
Requires at least: 5.5
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.4.4
License: GPLv2 or later

Dikembangkan oleh Starfield Indonesia (https://starfield.id).

Add-on ticketing & event offline untuk plugin Sejoli. Jual tiket multi-tier,
terbitkan e-tiket ber-QR, dan check-in peserta di lokasi acara.

== Deskripsi ==

Sejoli Ticketing Event menambahkan kemampuan menjual tiket event pada produk
Sejoli, lengkap dengan alur khas ticketing offline:

* **Tiket multi-tier** — VIP / Reguler / Early Bird, tiap tier punya harga &
  kuota sendiri (anti oversell).
* **E-tiket ber-QR** — tiap kursi mendapat kode unik + QR sendiri, tampil di:
  1. Member Area Sejoli ("Tiket Saya"),
  2. Notifikasi email/WhatsApp (shortcode `{{ticket-detail}}`, `{{ticket-qr}}`, dll),
  3. Halaman e-tiket cetak (siap simpan PDF).
* **Check-in di lokasi** — halaman Scanner memakai kamera HP untuk scan QR,
  plus pencarian/input kode manual sebagai cadangan. Anti dobel check-in.
* **Data peserta** — opsional kumpulkan nama tiap kursi saat checkout, plus
  field kustom (No. KTP, instansi, ukuran kaos, dll) yang bisa wajib diisi.
* **Kuota total event** lintas tier (kapasitas venue) + **tutup penjualan
  X jam sebelum acara**.
* **Total real-time** — kotak "Total Bayar" Sejoli & kolom quantity order
  ikut mengikuti jumlah kursi yang dipilih.
* **Dashboard panitia & Laporan** — terjual / hadir / sisa per tier, omzet,
  tiket manual on-the-spot, dan export peserta ke CSV (termasuk data kustom).

Add-on ini menempel ke core Sejoli murni lewat hook (tidak mengubah file core).

== Instalasi ==

1. Pastikan plugin **Sejoli** sudah aktif.
2. Upload folder `sejoli-ticketing-event` ke `wp-content/plugins/`, lalu aktifkan
   dari menu Plugins. Tabel `wp_sejolisa_tickets` dibuat otomatis.
3. Buat/edit produk Sejoli → buka tab **"Event & Tiket"** → centang *"Jadikan
   produk ini sebagai tiket event"*, isi lokasi, tanggal, dan tambahkan tier tiket.

== Penggunaan ==

* **Menu admin "Ticketing Event"**: Daftar Event, Scanner Check-in, Laporan.
* **Scanner**: buka di HP (login wp-admin), pilih event, "Mulai Kamera", arahkan
  ke QR e-tiket. Hijau = berhasil, kuning = sudah check-in, merah = tidak valid.
* **Shortcode Member Area**: `[sejoli_ticket_member]` (menu "Tiket Saya" juga
  ditambahkan otomatis).

== Catatan ==

* Gambar QR di-host sendiri: di-cache di `wp-content/uploads/sejoli-ticketing/qr`
  dan dilayani dari domain Anda. Layanan pembuat QR eksternal (api.qrserver.com)
  hanya dipanggil sekali per kode saat cache dibuat (butuh koneksi internet saat
  itu); bila gagal, dialihkan ke layanan eksternal. Ganti sumber via filter
  `sejoli/ticketing/qr-url`.
* Akses menu default `manage_options`. Untuk memberi akses petugas non-admin,
  gunakan filter `sejoli/ticketing/capability`.

== Changelog ==

= 1.0.0 =
* Rilis pertama.
