=== Shilux Booking Engine ===
Contributors:      shawnhills
Tags:              booking, reservation, calendar, restaurant-booking, hotel-booking
Requires at least: 6.0
Tested up to:      7.0
Requires PHP:      7.4
Stable tag:        1.0.0
License:           GPLv2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html

A comprehensive multi-scenario booking engine for restaurants, hotels, and service businesses. Works with Elementor, Divi, WPBakery, and Gutenberg.

== Description ==

**SHILUX Booking Engine** is a powerful and flexible WordPress booking plugin designed for service-based, venue-based, and restaurant businesses. With its unique scenario-driven architecture, you can quickly set up a booking system tailored to your specific business type.

**Brand Information:**
"Shilux" is a distinctive brand name created by the plugin author. It is used exclusively for this WordPress booking plugin and is not associated with any other company or product in the software/technology field.

= Key Features =

* **Multiple Booking Scenarios** — Choose from 4 pre-built scenarios: General Booking, Restaurant, Hotel, and Hibachi/Teppanyaki
* **Availability Calendar** — Visual calendar with monthly view, batch operations, and real-time availability checks
* **Flexible Booking Form** — Embed anywhere with shortcodes or page builder widgets. Scenario-aware fields that adapt to your business type
* **Menu Builder** — Create beautiful menus with emoji/images, sections, and selection limits (for restaurant, hotel, and hibachi scenarios)
* **Payment Integration** — Support for PayPal Standard and manual payments. Full payment, deposit only, or deposit + balance modes
* **Email Notifications** — Automated booking confirmations, cancellations, modifications, and reminder emails
* **Custom Fields** — Dynamic custom field builder for additional booking information
* **Multi-Currency Support** — 9 currencies including USD, EUR, GBP, JPY, CNY, CAD, AUD, KRW, and TWD
* **Page Builder Compatible** — Works with Elementor, Divi, WPBakery, and Gutenberg (native blocks)
* **REST API** — Full REST API support for headless WordPress and third-party integrations
* **Setup Wizard** — Guided 5-step setup with automatic default menu data for menu-enabled scenarios
* **Dashboard & Analytics** — Booking trends, revenue tracking, and quick actions
* **CSV Export** — Export bookings data for accounting and analysis

= Booking Scenarios =

**General Booking** — Perfect for salons, clinics, tutoring, consulting, and any appointment-based business
* Date & time selection with real-time availability
* Custom form fields
* Capacity management per time slot
* Advance booking window controls

**Restaurant** — Table reservations for restaurants, cafes, and bars
* Party size with min/max limits
* Dietary options and special occasions
* Table configuration and preferences
* Turn time and buffer time between bookings
* Operating hours controls

**Hotel** — Accommodation bookings for hotels, B&Bs, and vacation rentals
* Check-in / check-out date selection
* Room type configuration with pricing
* In-room dining menu support
* Extra services and add-ons
* Min/max night stays
* Weekend surcharges
* Property details (address, amenities, policies)

**Hibachi / Teppanyaki** — Japanese teppanyaki and interactive dining experiences
* Protein selection with pricing
* Menu builder with sections and items
* Kids pricing with age thresholds
* Table configuration
* On-site service mode
* Setup and cleanup time buffers

= Shortcodes =

* `[shilux_booking_form]` — Booking form with optional service_id parameter
* `[shilux_booking_calendar]` — Availability calendar display
* `[shilux_services]` — Services list
* `[shilux_service_card id="123"]` — Single service card
* `[shilux_menu id="123" template="classic"] — Menu display (classic template)

= Payment Methods =

* **PayPal Standard** — Accept payments via PayPal accounts and credit cards
* **Manual Payment** — Accept payments on arrival, bank transfer, or other offline methods
* **Multiple Payment Modes** — Full payment, deposit only, or deposit + remaining balance

= Email Notifications =

* **Customer Confirmation** — Automatically sent when a booking is created
* **Admin Notification** — Alert site admins of new bookings
* **Cancellation Notice** — Sent when a booking is cancelled
* **Modification Alert** — Sent when booking details are changed
* **Reminder Emails** — Automated reminders sent before the booking date

= Page Builder Support =

* **Elementor** — 3 widgets: Booking Form, Calendar, and Services
* **Divi** — Full shortcode support
* **WPBakery** — Full shortcode support
* **Gutenberg** — Native blocks for seamless integration

== Installation ==

1. Upload the `shilux-booking-engine` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Follow the Setup Wizard to configure your booking scenario, services, and availability
4. Use shortcodes or page builder widgets to embed booking forms in your pages
5. Start accepting bookings!

== Frequently Asked Questions ==

= Which page builders are supported? =

Shilux Booking Engine supports Elementor (with dedicated widgets), Divi, WPBakery, and Gutenberg (native blocks). Any theme or builder that supports shortcodes will work.

= How do I set up availability? =

Go to 'SHILUX Booking → Availability Calendar', select a service, and use the batch actions to generate time slots for the month. You can also manage individual days by clicking on specific dates.

= Does it support multiple currencies? =

Yes, it supports 9 currencies: USD, EUR, GBP, JPY, CNY, CAD, AUD, KRW, and TWD.

= What booking scenarios are available? =

Currently supports 4 scenarios: General Booking (appointments), Restaurant (table reservations), Hotel (accommodation), and Hibachi/Teppanyaki (interactive dining). Each scenario has customized fields and pricing logic.

= Can I add custom booking fields? =

Yes! Use the built-in Custom Field Manager to create additional fields for any scenario. Supported field types include text, select, checkbox, radio, textarea, number, and more.

= Is there a PRO version? =

This plugin is 100% free and fully functional. All features including booking scenarios, PayPal payments, email notifications, and email template editing are available at no cost.

= How do customers pay? =

Customers can pay via PayPal (credit cards and PayPal accounts) or manual payment methods you define. You can choose between full payment upfront, deposit only, or deposit + remaining balance modes.

= Can I export my bookings? =

Yes, you can export bookings to CSV format from the Bookings management page.

= Does it work with multisite? =

The plugin is designed for single-site WordPress installations. Multisite compatibility has not been officially tested.

== Source Code ==

All original, unminified, human-readable source files are included in the plugin:

- JavaScript Source: /assets/src/
- SCSS Source: /assets/src/scss/

Minified files in `/assets/build/` are generated directly from these source files.
No obfuscated or external closed-source code is used.

== External Services ==

This plugin integrates with PayPal for payment processing when the PayPal Standard payment method is enabled.

= PayPal =

**Service**: PayPal is an online payment processing service provided by PayPal Holdings, Inc.

**Purpose**: Used to process customer payments for bookings. When a customer selects PayPal as their payment method, they are redirected to PayPal's secure payment page to complete their payment.

**Data Sent**: When a customer chooses to pay via PayPal, the following data is sent to PayPal's servers:
* Business email address (the PayPal account receiving the payment)
* Payment amount and currency code
* Booking item description (booking ID, service name, scenario type)
* Return URL (where the customer returns after payment)
* IPN notification URL (where PayPal sends payment confirmation)
* Custom reference data (booking ID and payment type for post-payment processing)

**When Data is Sent**: Data is sent in two stages:
1. **Payment Redirect**: When a customer clicks "Pay with PayPal", their browser is redirected to `paypal.com/cgi-bin/webscr` (or `sandbox.paypal.com/cgi-bin/webscr` for testing) with the payment details
2. **IPN Verification**: After payment, PayPal sends an IPN (Instant Payment Notification) to the plugin's callback URL at `https://ipnpb.paypal.com/cgi-bin/webscr` to verify the payment status

**Terms of Service**: [PayPal User Agreement](https://www.paypal.com/legalhub/home)

**Privacy Policy**: [PayPal Privacy Statement](https://www.paypal.com/webapps/mpp/ua/privacy-full)

== Screenshots ==

1. Dashboard with booking analytics and quick actions
2. Availability Calendar with monthly view and batch operations
3. Booking form with scenario-aware fields
4. Menu Builder with emoji and image support
5. Settings page with scenario configuration
6. Setup Wizard for quick configuration

== Changelog ==

= 1.0.0 =
* Initial release
* 4 booking scenarios: General, Restaurant, Hotel, and Hibachi
* Availability calendar with batch operations
* Menu Builder with sections, items, and selection limits
* PayPal Standard payment integration
* Manual payment gateway
* Multiple payment modes (full, deposit, deposit+balance)
* Email notifications (confirmation, cancellation, modification, reminders)
* Custom Field Manager
* Setup Wizard for quick configuration with default menu data for menu-enabled scenarios
* Dashboard with analytics
* CSV export for bookings
* REST API endpoints
* Elementor widgets (Booking Form, Calendar, Services)
* Divi, WPBakery, and Gutenberg support
* Multi-currency support (9 currencies)
* Advance booking window controls
* Turn time and buffer time between bookings
* Setup and cleanup time for on-site services
* International standard fields (address, amenities, policies for hotels; dietary options for restaurants)

== Upgrade Notice ==

= 1.0.0 =
Initial release of Shilux Booking Engine.
