Intelligent Room Booking System for Hotel

Plugin Banner

Intelligent Room Booking System for Hotel

by Dhiraj Patra

Download
Description

Advanced Booking System is a comprehensive WordPress plugin that allows you to manage bookings for rooms, courts, chalets, sports fields, or any bookable resource. Perfect for hotels, sports facilities, co-working spaces, and rental businesses.

Key Features

For Site Visitors:
* Interactive calendar interface for date selection
* User registration and login required for bookings
* Real-time availability checking
* Email confirmation when booking is approved
* Email notification when booking is denied
* View and manage personal bookings
* Cancel bookings before the scheduled date

For Administrators:
* Comprehensive admin panel for booking management
* Approve or deny booking requests with one click
* Automated email notifications for new bookings
* Customizable email templates with template tags
* Unlimited room/resource management (tested up to 20 rooms)
* Set maximum bookings per user per room (default: 3)
* Configure closed days (e.g., closed every Sunday)
* Set week start day preference
* Customizable booking titles (Room, Chalet, Court, etc.)
* Filter bookings by status, room, or date range
* Bulk actions for efficient management
* Statistics dashboard

Form Fields & Validation:
* First Name (required, validated)
* Last Name (required, validated)
* Email Address (required, email format validation)
* Phone Number (required, phone format validation)
* Booking Date (required, validated against past dates and closed days)
* Notes/Comments (optional)

Email Features:
* Customizable email templates for:
– User booking confirmation
– User booking denial
– Admin new booking notification
* Available template tags:
– {first_name}, {last_name}
– {email}, {phone}
– {room_name}, {booking_title}
– {booking_date}, {booking_time}
– {booking_id}, {status}
– {site_name}, {site_url}
– {manage_url}

Security Features:
* SQL injection protection via prepared statements
* XSS protection via proper escaping and sanitization
* CSRF protection via nonce verification
* User authentication requirement
* Role-based access control
* Secure AJAX handling

Additional Information

Requirements

  • WordPress 5.8 or higher
  • PHP 7.4 or higher
  • MySQL 5.6 or higher

Support

For support, please visit the plugin support forum or contact us through our website.

Development

This plugin follows WordPress coding standards and best practices:
* Proper data sanitization and validation
* Prepared SQL statements for security
* Nonce verification for forms
* Translatable strings with text domain
* Action and filter hooks for extensibility
* Object-oriented architecture
* No PHP errors or warnings in debug mode

Credits

Developed with attention to WordPress coding standards and security best practices.

Privacy Policy

This plugin stores the following user data:
* First name, last name
* Email address
* Phone number
* Booking dates and times
* User IP address (for security logs)

All data is stored in your WordPress database and is subject to your site’s privacy policy. No data is sent to external services.

Technical Details

Database Tables

  • wp_irbsfh_bookings – Stores all booking records
  • wp_irbsfh_rooms – Stores room/resource information
  • wp_irbsfh_settings – Stores plugin settings

AJAX Actions

  • irbsfh_load_calendar – Load calendar for specific month
  • irbsfh_check_availability – Check room availability
  • irbsfh_submit_booking – Submit new booking
  • irbsfh_cancel_booking – Cancel user booking
  • irbsfh_admin_confirm_booking – Admin approve booking
  • irbsfh_admin_deny_booking – Admin deny booking
  • irbsfh_admin_delete_booking – Admin delete booking
  • irbsfh_admin_bulk_action – Bulk booking actions

Hooks for Developers

Actions:
* irbsfh_booking_created – Fires after booking is created
* irbsfh_booking_confirmed – Fires after booking is confirmed
* irbsfh_booking_cancelled – Fires after booking is cancelled
* irbsfh_booking_deleted – Fires after booking is deleted
* irbsfh_email_sent – Fires after email is sent

Filters:
* irbsfh_booking_form_fields – Filter booking form fields
* irbsfh_email_template_tags – Filter available email template tags
* irbsfh_calendar_availability – Filter calendar availability data
* irbsfh_max_bookings_per_user – Filter maximum bookings constraint

Minimum Requirements

  • WordPress 5.8 or greater
  • PHP version 7.4 or greater
  • MySQL version 5.6 or greater OR MariaDB version 10.1 or greater

Recommended Requirements

  • WordPress 6.0 or greater
  • PHP version 8.0 or greater
  • MySQL version 5.7 or greater OR MariaDB version 10.3 or greater
  • HTTPS support
  1. Upload the plugin files to the /wp-content/plugins/intelligent-room-booking-system-for-hotel directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Navigate to ‘Bookings’ in your WordPress admin menu.
  4. Configure your settings under ‘Bookings > Settings’.
  5. Add rooms/resources under ‘Bookings > Rooms’.
  6. Add the booking calendar to any page using the shortcode [irbsfh_booking_calendar].

Shortcodes

  • [irbsfh_booking_calendar] – Display the booking calendar
  • [irbsfh_booking_form] – Display the booking form
  • [irbsfh_room_list] – Display list of available rooms
  • [irbsfh_user_bookings] – Display user’s booking history (requires login)
  • [irbsfh_login_widget] – Display login form

Widget

The plugin includes a login widget that can be added to any widget area (sidebar, footer, etc.).

Do users need to register before making a booking?

Yes, users must be logged in to make bookings. This ensures accountability and allows users to manage their own bookings.

How many rooms can I create?

The plugin supports unlimited rooms, though it has been tested and optimized for up to 20 rooms.

Can I limit how many bookings a user can make?

Yes, you can set a maximum number of active bookings per user per room. The default is 3 bookings.

How do I prevent bookings on specific days?

In the Settings page, you can configure closed days (e.g., close every Sunday). Bookings will not be available on these days.

Can I customize the email notifications?

Yes, all email templates are fully customizable. You can edit the subject and body content, and use template tags to insert dynamic content.

What happens when I approve a booking?

When you approve a booking, the status changes to “confirmed” and an automated email is sent to the customer using your confirmation email template.

What happens when I deny a booking?

When you deny a booking, the status changes to “cancelled” and an automated email is sent to the customer using your denial email template.

Can I change “Room” to something else like “Court” or “Chalet”?

Yes, each room can have its own custom booking title. You can set it to anything like “Court,” “Chalet,” “Sports Field,” “Conference Room,” etc.

Is the calendar mobile-responsive?

Yes, the plugin is fully responsive and works seamlessly on mobile devices, tablets, and desktop computers.

Does this plugin work with page builders?

Yes, you can use the shortcodes with popular page builders like Elementor, Beaver Builder, Divi, and Visual Composer.

Can users cancel their own bookings?

Yes, users can cancel their bookings from their dashboard before the scheduled date.

1.0.0

  • Initial release
  • Interactive calendar with date selection
  • User registration and authentication system
  • Room/resource management (unlimited, tested up to 20)
  • Booking approval/denial workflow
  • Automated email notifications
  • Customizable email templates with template tags
  • Form validation (first name, last name, email, phone)
  • Closed days configuration
  • Maximum bookings per user constraint (default 3)
  • Customizable booking titles per room
  • Responsive design for all devices
  • Login widget
  • User booking dashboard
  • Admin statistics dashboard
  • Bulk actions for efficient management
  • Security features (SQL injection, XSS, CSRF protection)
Back to top