=== SeatKit ===
Contributors: acgadi
Tags: seat booking, bus booking, event booking, razorpay, stripe
Requires at least: 5.8
Tested up to: 6.9
Stable tag: 1.0.2
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Seat-based booking and ticketing plugin for buses, events, cinemas, and venues with Razorpay and Stripe payments.

== Description ==

**SeatKit** is a professional **seat booking and ticket reservation plugin for WordPress**.
It is designed for businesses that sell fixed seats, such as bus operators, event organizers, cinemas, theaters, and tour providers.

SeatKit follows a payment-verified booking flow, ensuring that seats are confirmed only after successful payment verification from the gateway. This prevents double bookings and maintains inventory accuracy even during high traffic.

### Features

* **Bus, Event, and Cinema Booking** - Create trips and events with seat-based inventory.
* **Visual Seat Selector** - Customer-friendly seat selection interface.
* **Advanced Seat Layout Builder** - Drag-and-drop seat layout creation with customizable categories and pricing.
* **Multiple Payment Gateways** - Razorpay (India) and Stripe (Global).
* **Secure Checkout Flow** - Server-side payment verification.
* **PDF Tickets** - Automatically generated tickets with QR codes.
* **Customer Dashboard** - View bookings and download tickets.
* **OTP-based Login** - Passwordless customer authentication.
* **Refund and Cancellation Rules** - Admin-configurable deduction percentage and cutoff time.
* **Transactional Emails** - Booking confirmation and cancellation emails.
* **Admin Management Panel** - Manage trips, bookings, tickets, and transactions.

== Shortcodes ==

Use the following shortcodes to display booking interfaces:

1. `[seatkit_trips]`
2. `[seatkit_account]`
3. `[seatkit_trip id="123"]`

== Installation ==

1. Upload the `seatkit` folder to `/wp-content/plugins/`.
2. Activate the plugin from the **Plugins** menu.
3. Create the following pages:
* **Account Page** - `[seatkit_account]`
* **Trips Page** - `[seatkit_trips]`
4. Configure settings under **SeatKit -> Settings**.
5. Create seat layouts and trips from the admin panel.

== Frequently Asked Questions ==

= Does SeatKit prevent double bookings? =
Yes. Seats are confirmed only after successful payment verification from the payment gateway.

= How do customers access their tickets? =
Customers log in using a one-time password (OTP) sent to their email and can download PDF tickets from their dashboard.

= Is SeatKit suitable for bus booking systems? =
Yes. SeatKit is designed for transport businesses including buses and tours.

= Is it suitable for events and cinemas? =
Yes. The seat engine works for events, theaters, and cinemas.

== Bundled Libraries and Credits ==

* **FPDF** - PDF generation
Copyright (c) Olivier Plathey
Licensed under the FPDF License

== External Services ==

This plugin relies on the following third-party services to function:

1. **Razorpay**
Used for processing payments in India. When a user selects Razorpay at checkout, payment details (amount, currency, order ID) are sent to Razorpay servers securely.
Privacy Policy: https://razorpay.com/privacy/
Terms of Service: https://razorpay.com/terms/

2. **Stripe**
Used for processing global payments. If Stripe is enabled, payment intents and client secrets are generated via Stripe API. The checkout process loads `js.stripe.com` to handle secure card entry.
Privacy Policy: https://stripe.com/privacy
Terms of Service: https://stripe.com/legal/ssa

3. **goQR.me API (QRServer)**
Used to generate QR codes for tickets. The booking reference number is sent to `api.qrserver.com` to generate a QR image for PDF ticket and frontend view. No personal user data is sent, only the booking reference string.
Privacy Policy: https://goqr.me/privacy/

All bundled components are compatible with GPLv2+ distribution.

== Screenshots ==

1. Frontend: My account (Guest)
2. Frontend: All trips and events
3. Frontend: Booking flow step 1
4. Frontend: Booking flow step 2
5. Frontend: Checkout with Razorpay
6. Frontend: My account (Logged in)
7. Frontend: QR code of confirmed booking
8. Frontend: Booking history
9. Admin: Dashboard
10. Admin: Booking list
11. Admin: Create or edit booking
12. Admin: Create or edit trip
13. Admin: SeatBuilder
14. Admin: Payment transaction logs
15. Admin: View issued tickets
16. Admin: General settings
17. Admin: Payment gateway settings
18. Admin: Policy settings
19. Admin: Ticket settings

== Changelog ==

= 1.0.2 =
* FIX: Automatic user creation during checkout for guest customers.
* FIX: Added a "Resend OTP" button with a 60-second timer to the login form.
* FIX: Login form now preserves the OTP entry step on page refresh.
* TWEAK: General code quality and security enhancements in AJAX handlers.

= 1.0.1 =
* WordPress.org compliance hotfix release.
* Ticket generation fix according to bus and event.
* Updated export flow and booking list query safety for reviewer checks.
* Improved CSV export compatibility and booking reporting.
* Readme metadata and contributor formatting fixes.

= 1.0.0 =
* Initial WordPress.org release.
* Seat-based booking engine.
* Razorpay and Stripe payment integration.
* PDF ticket generation with QR codes.
* OTP-based customer login.
* Refund and cancellation rules.
