=== ReservePress Hotels ===
Contributors: bigislemedia
Tags: hotel booking, reservation, booking system, hotel management, property management, rooms, vacation rental
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.2
Stable tag: 2.8.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A modern, full-featured hotel booking and property management system for WordPress.

== Description ==

ReservePress Hotels is a comprehensive hotel booking and property management plugin that works with any WordPress theme. Built with modern PHP 8.2+ and WordPress 6.4+ best practices.

**[Documentation](https://bigislemedia.ca/rp-docs) | [Support](https://bigislemedia.ca/rp-docs/support)**

= Key Features =

* **Online Booking System** - Accept reservations 24/7 through your website
* **Front Desk PMS** - Complete property management system at `/front-desk/`
* **Room Management** - Create room types with pricing, amenities, and photos
* **Individual Room Instances** - Track specific rooms (101, 102, etc.)
* **Stripe Payments** - Secure payment processing with deposits and refunds
* **Seasonal Pricing** - Adjust rates automatically for peak/off-peak seasons
* **Promotions & Discounts** - Create promo codes and special offers
* **Guest Management** - Track guest information and booking history
* **Check-in/Check-out** - One-click status updates
* **Reports & Analytics** - Revenue, occupancy, and booking reports
* **Email Notifications** - Automatic confirmation emails
* **Multi-Currency** - Support for 20+ currencies

= Front Desk System =

The built-in Front Desk PMS provides a complete management interface for staff who don't need WordPress admin access:

* Dashboard with arrivals, departures, and occupancy
* Full booking management (create, edit, delete)
* Calendar view
* Guest management
* Room status and maintenance
* Promotions and seasonal pricing management
* Blocked dates for maintenance
* Reports

Access it at: `yoursite.com/front-desk/`

= Shortcodes =

* `[rph_booking_widget]` - Date picker and room search form
* `[rph_booking_form]` - Full booking form with payment
* `[rph_rooms]` - Display room types in a grid
* `[rph_room id="X"]` - Display a single room card
* `[rph_promotions]` - Display active promotions
* `[rph_my_reservations]` - Guest booking history
* `[rph_availability_calendar]` - Visual availability calendar

= Auto-Created Pages =

On activation, the plugin creates these pages:

* **Book a Room** (`/book-now/`) - Booking widget
* **Our Rooms** (`/our-rooms/`) - Room grid display
* **Special Offers** (`/special-offers/`) - Active promotions
* **My Reservations** (`/my-reservations/`) - Guest bookings

= User Roles =

* **Hotel Manager** - Full access to WordPress admin + all ReservePress features
* **Front Desk Agent** - Access to Front Desk PMS only (no WordPress admin)

= Requirements =

* WordPress 6.4 or higher
* PHP 8.2 or higher
* MySQL 5.7 or higher / MariaDB 10.3 or higher
* SSL certificate (required for Stripe payments)

== Installation ==

1. Upload the `reservepress-hotels` folder to `/wp-content/plugins/`
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Go to **ReservePress > Settings** to configure your property
4. Create room types under **ReservePress > Room Types**
5. Add room instances under **ReservePress > Room Instances**
6. Configure payment settings if accepting online payments

For detailed setup instructions, visit [bigislemedia.ca/rp-docs](https://bigislemedia.ca/rp-docs)

== Frequently Asked Questions ==

= Does this work with my theme? =

Yes! ReservePress Hotels is designed to work with any properly coded WordPress theme, including block themes. All frontend display is via shortcodes that adapt to your theme's styling.

= How do I accept payments? =

Go to ReservePress > Settings > Payment and enter your Stripe API keys. The plugin supports both test and live modes. You'll need an SSL certificate for live payments.

= Can guests book without creating an account? =

Yes, guest checkout is enabled by default. You can require account creation in the settings.

= How do I access the Front Desk? =

Navigate to `yoursite.com/front-desk/` while logged in with a user that has Front Desk Agent or Hotel Manager role, or as an administrator.

= How do I create a Front Desk user? =

In WordPress admin, go to Users > Add New. Set the role to "Front Desk Agent". This user will only be able to access the Front Desk interface, not WordPress admin.

= Where is the documentation? =

Full documentation is available at [bigislemedia.ca/rp-docs](https://bigislemedia.ca/rp-docs)

== Screenshots ==

1. Admin Dashboard
2. Booking Management
3. Room Types
4. Front Desk Interface
5. Calendar View
6. Reports
7. Frontend Booking Widget
8. Room Grid Display

== Changelog ==

= 2.8.1 =
* Fixed PHP warnings for undefined properties in Front Desk views
* Added null coalescing for all optional database fields

= 2.8.0 =
* Complete Front Desk PMS rebuild with modular architecture
* Added Calendar tab with monthly view
* Added Guests management tab
* Added Rooms status and maintenance tab
* Added Promotions CRUD
* Added Seasons CRUD
* Added Blocked Dates CRUD
* Added Reports tab with date range picker
* Full booking create/edit/delete from Front Desk
* Improved responsive design

= 2.7.0 =
* Added Front Desk custom endpoint (`/front-desk/`)
* Added Front Desk Agent role
* Auto-redirect front desk users after login
* Block front desk users from WordPress admin

= 2.5.0 =
* Added admin dashboard with stats and quick actions
* Week-at-a-glance calendar strip
* Room status grid
* One-click check-in/check-out

= 2.0.0 =
* Complete rebuild with modern PHP 8.2+ and WordPress 6.4+
* Theme-independent architecture with shortcodes
* Room instances for individual room tracking
* Stripe payment integration
* Seasonal pricing
* Promotions system
* Guest management
* Email notifications

== Upgrade Notice ==

= 2.8.1 =
Bug fix release. Fixes PHP warnings in Front Desk interface.

= 2.8.0 =
Major update to Front Desk system. Now includes full PMS functionality.

= 2.0.0 =
Major rebuild. Please backup your database before upgrading.
