=== Prebooking Event Schedule ===
Contributors: kaeligb
Tags: booking, reservation, event-booking, calendar, appointment
Donate link: https://paypal.me/prebookeventschedule
Requires at least: 5.8
Tested up to: 6.9
Stable tag: 1.4.0
Requires PHP: 8.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Manage events, allow visitors to pre-book sessions, and send automatic email notifications with a clean and intuitive booking flow.

== Description ==

Prebooking Event Schedule is a flexible **WordPress booking and reservation plugin** designed for managing events, workshops, webinars, and appointments.

It provides a smooth **4-step booking experience** for visitors and a powerful admin interface to manage events, schedules, and reservations efficiently.

### Key features
- Create and manage events with multiple sessions
- Display events using a calendar or booking shortcode
- Allow visitors to pre-book events in a guided 4-step flow
- Send automatic email notifications to visitors and administrators
- Manage bookings from a centralized admin dashboard
- Customize colors, statuses, and email templates
- Optional DeepL API integration for automatic translations

**Shortcodes**
- `[prebooking_all_events]` – Display the complete booking flow
- `[prebooking_calendar id="X"]` – Display a specific event

**Version française :**  
Ce plugin permet de gérer facilement vos événements, pré-réservations et notifications par email dans WordPress.

---

== Installation ==

1. Upload the plugin files to `/wp-content/plugins/prebooking-event-schedule/` or install via the WordPress plugin installer  
2. Activate the plugin from the *Plugins* menu  
3. Configure settings (emails, colors, statuses)  
4. Create categories, events, and schedules  
5. Insert the booking shortcode on a page  

---

== How it works ==

Visitors book events through a guided 4-step process:

1. **Choose a category** – Browse available event categories  
2. **Select an event** – View event details and locations  
3. **Pick a date** – Choose from available dates or date ranges  
4. **Enter contact details** – Confirmation emails are sent automatically  

### Admin features
- Booking management with filters and search
- Status management (pending, confirmed, cancelled, etc.)
- Customizable email templates with placeholders:
  `{prenom}`, `{nom}`, `{email}`, `{telephone}`, `{theme}`, `{date}`, `{description}`, `{duration}`, `{message}`
- Category and event management with AJAX actions
- Optional automatic translations via DeepL API

---

== Frequently Asked Questions ==

= Is this plugin free to use? =
Yes, the core plugin is free and fully functional.

= Can I manage multiple events? =
Yes, the plugin supports multiple events, sessions, and schedules.

= Can I customize the email notifications? =
Yes, email templates can be customized per booking status using dynamic placeholders.

= Is this plugin translation-ready? =
Yes, the plugin is translation-ready (`prebooking-event-schedule`) and includes French and English translations.

= Does it work with any WordPress theme? =
Yes, it is compatible with most WordPress themes.

---

== External Services ==

This plugin optionally integrates with external services:

### DeepL Translation API
Used to translate admin interface content.

- Service: DeepL API  
- URL: https://api-free.deepl.com/v2/translate  
- Terms: https://www.deepl.com/en/pro-license  
- Privacy Policy: https://www.deepl.com/privacy  

### Brevo (formerly Sendinblue)
Used for customer contact synchronization and email marketing.

- Service: Brevo API  
- URL: https://api.brevo.com/  
- Terms: https://www.brevo.com/legal/termsofuse/  
- Privacy Policy: https://www.brevo.com/legal/privacypolicy/  

No personal user data is transmitted without user action or configuration.

---

== Screenshots ==

1. Admin dashboard overview
2. Event management screen
3. Add or edit event interface
4. Booking management list
5. Category management screen
6. Plugin settings page
7. Front-end booking flow

---

== Changelog ==

= 1.4.0 =
* Added time slots system for granular booking management
* Added business hours configuration (morning/afternoon)
* Time inputs now restricted to business hours with 5-minute intervals
* Capacity tracking per time slot (not just per date)
* Frontend slot selection modal with real-time availabili
* Added floating "Back to TOC" button for easier navigation
* Added admin color theme settings: replaced free custom CSS editor with a controlled color-picker UI (grouped by theme), JS hex validation and server-side sanitization.
* Inject front-end CSS variables from admin colors to apply theme safely without overriding defaults.

= 1.3.3 =
* Implemented automatic database migrations with FK constraint management
* Fixed customer creation to occur after successful reservation
* Added event reminder time units (minutes, hours, days)
* Improved AJAX error handling with timeout support
* Fixed reservation deletion functionality
* Enhanced data integrity and error logging
* Fixed foreign key constraints for production deployments

= 1.3.2 =
* Added customer contact synchronization with Brevo email marketing tool
* Added customer listing management page

= 1.3.1 =
* Added category editing via AJAX popup
* Added support for multiple date ranges or individual dates
* Improved admin UI and validation
* Added event description and duration fields
* Added secure reservation deletion via AJAX
* Enhanced email templates with per-status support
* Improved security with nonces and input sanitization
* Performance improvements and cache invalidation

= 1.2.9 =
* Added plugin setup assistant
* Added front-end pre-booking popup
* Improved event display and responsiveness
* UI cleanup and bug fixes

= 1.2 =
* Major UI upgrade with modern admin dashboard
* Improved performance using WordPress caching
* Enhanced security and coding standards compliance

= 1.0 =
* Initial release

---

== Upgrade Notice ==

= 1.4.0 =
Major update: Time slots system with business hours, enhanced documentation, and improved booking flow.

= 1.3.2 =
Adds customer contact synchronization with Brevo and customer listing management.

= 1.3.1 =
Adds category editing, flexible date handling, improved email templates, and new event fields.

---

== License ==

This plugin is licensed under the GPLv2 or later.
Copyright (C) 2025 Kaëlig B
