Booking Manager

📋

Booking Manager

Complete booking management system with customizable frontend form, automatic price calculation, status management, configurable email notifications, and online payment integration. The operational core of the HRM suite for managing accommodation requests.

Overview

HRM Booking Manager transforms your WordPress site into a complete booking system. The plugin manages the entire lifecycle of a booking: from the customer's initial request through the frontend form, to confirmation, check-in, check-out, and possible cancellation.

The plugin creates a Custom Post Type "hrm_booking" with custom statuses that reflect the operational flow of an accommodation facility. Each booking contains all necessary information: guest data, stay dates, booked room, calculated price, selected supplements, and modification history.

Integration with other suite plugins is deep:

  • Room Manager - Retrieves room information, base and seasonal prices, supplements
  • Availability Manager - Verifies and updates availability in real-time
Booking list in backend

Main Features

📝

Booking Form

Responsive frontend form with validation, date picker, guest and supplement selection, real-time price calculation.

💵

Automatic Calculation

Price calculation considering seasons, weekends, supplements, number of guests, and applicable discounts.

📧

Email Notifications

Customizable automatic emails for confirmations, reminders, cancellations, and admin communications.

📊

Data Export

Export bookings to CSV/Excel with filters by period, status, and room.

Booking Statuses

Each booking goes through different statuses during its lifecycle. Statuses are displayed with distinctive colors in the booking list:

Status Color Description Available Actions
Pending Orange New booking received, awaiting confirmation or payment Confirm, Reject, Edit, Delete
Confirmed Green Booking confirmed (payment received or manual confirmation) Check-in, Edit, Cancel
Imminent Stay Yellow Imminent check-in (within 2 days of arrival date) Check-in, Send reminder, Edit
Check-in Blue Guest arrived, stay in progress Check-out, Add Notes
Check-out Purple Stay completed, guest departed Archive, View
Cancelled Red Booking cancelled (by customer or admin) Restore, Delete permanently
Rejected Gray Request not accepted by the facility Delete permanently

Standard Booking Flow

  1. Customer fills out the form → Status: Pending
  2. Payment received (or manual confirmation) → Status: Confirmed
  3. Arrival day → Operator marks Check-in
  4. Departure day → Operator marks Check-out
  5. After 30 days → Automatic archiving (optional)
Booking detail card

Frontend Booking Form

The booking form is the main tool through which site visitors submit their requests. It can be inserted on any page via shortcode.

Basic Shortcode

[hrmrm_booking_form]

Available Parameters

Attribute Type Default Description
show_slideshow boolean yes Show room slideshow above the form
rooms text empty Comma-separated room IDs (empty = all)
title text Book Now Booking form title
button_text text Submit Booking Submit button text
show_room_grid boolean no Show room grid
grid_columns number 2 Number of grid columns (max 3)
grid_show_price boolean yes Show prices in grid
grid_show_excerpt boolean no Show excerpt in grid
grid_orderby text menu_order Grid sorting (menu_order, title, date)
grid_order text ASC Ascending/descending order (ASC/DESC)
Frontend booking form

Automatic Price Calculation

The system automatically calculates the total booking price considering multiple factors:

  1. Room base price - Per night rate from Room Manager configuration
  2. Seasonal prices - If the date falls within a season, uses that rate
  3. Weekend surcharge - Special rate for Friday and Saturday (if configured)
  4. Selected supplements - Extra services chosen by the customer
  5. Number of guests - For "per person" or "per person/night" supplements
  6. Discounts - Any discount codes or active promotions

Calculation Example

Scenario: Booking from August 15-18 (3 nights) for 2 adults and 1 child

Room configuration:

  • Base price: €80/night
  • High season (Jul 1 - Aug 31): €120/night, weekend €140/night
  • Breakfast supplement: €15/person/night
  • Crib supplement: €0 (free)

Calculation:

  • August 15 (Thursday): €120
  • August 16 (Friday): €140 (weekend)
  • August 17 (Saturday): €140 (weekend)
  • Room subtotal: €400
  • Breakfast (3 people × 3 nights × €15): €135
  • Crib: €0
  • TOTAL: €535

Email Template System

HRM Booking Manager includes a complete automatic email notification system. Each template can be customized both in content and graphic appearance, ensuring professional communications consistent with your facility's brand.

Email Types

The plugin manages seven types of emails, each associated with a specific booking status:

Template Description
Pending Email sent when the booking is awaiting confirmation
Confirmed Email sent when the booking is confirmed
Imminent Stay Reminder email sent when check-in is imminent
Cancelled Email sent when the booking is cancelled
Refunded Email sent when a refund is made
Custom Custom template for specific communications
Email template editor

Accessing the Template Editor

To customize email templates, go to Bookings → Email Templates. The page shows a list of all available templates with:

  • Template name
  • Status (active/inactive)
  • Last update
  • Buttons: Edit, Preview, Send Test

Template Structure

Each email template consists of three parts:

  1. Subject - The subject line that appears in the recipient's inbox
  2. HTML Content - The email body with full formatting
  3. Text Content - Alternative plain text version (for clients that don't support HTML)

Available Placeholders

Placeholders are markers that are replaced with actual booking data when sending. Always use curly braces {} to identify them.

Customer Data

Placeholder Description Example Output
{customer_name} Full name John Smith
{customer_first_name} First name only John
{customer_last_name} Last name only Smith
{customer_email} Email address john.smith@email.com
{customer_phone} Phone number +1 555 123 4567
{customer_notes} Notes entered by customer We'll arrive after 10:00 PM

Booking Data

Placeholder Description Example Output
{booking_id} Unique numeric ID 001234

Stay Data

Placeholder Description Example Output
{room_name} Room name Deluxe Suite
{checkin_date} Formatted arrival date July 20, 2024
{checkout_date} Formatted departure date July 25, 2024
{nights} Number of nights 5
{adults} Number of adults (empty if not present) 2
{children} Number of children (empty if 0) 1
{guests} Total guests 3

Financial Data

Placeholder Description Example Output
{total_price} Total with currency symbol €535.00
{room_price} Room cost only €400.00
{supplements_total} Supplements total €135.00
{supplements_list} Detailed supplements list Breakfast (€135), Parking (€0)

Facility Data

Placeholder Description Example Output
{site_name} Site/facility name Hotel Villa Rosa
{site_url} Site URL https://www.villarosa.com
Placeholder list in editor

Template Example: Booking Confirmation Email

Here's a complete template example for the booking confirmation email:

Subject:

Booking Confirmation #{booking_id} - {site_name}

HTML Content:

<!DOCTYPE html>
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
        .header { background-color: #2c5282; color: white; padding: 20px; text-align: center; }
        .content { padding: 30px; }
        .booking-details { background-color: #f7fafc; padding: 20px; border-radius: 8px; margin: 20px 0; }
        .detail-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #e2e8f0; }
        .total-row { font-size: 18px; font-weight: bold; color: #2c5282; }
        .footer { background-color: #f7fafc; padding: 20px; text-align: center; font-size: 12px; }
    </style>
</head>
<body>
    <div class="header">
        <h1>Booking Confirmed</h1>
    </div>
    
    <div class="content">
        <p>Dear {customer_first_name},</p>
        
        <p>We are pleased to confirm your booking at {site_name}.</p>
        
        <div class="booking-details">
            <h3>Booking Summary #{booking_id}</h3>
            
            <div class="detail-row">
                <span>Room:</span>
                <strong>{room_name}</strong>
            </div>
            <div class="detail-row">
                <span>Check-in:</span>
                <strong>{checkin_date} (from 3:00 PM)</strong>
            </div>
            <div class="detail-row">
                <span>Check-out:</span>
                <strong>{checkout_date} (by 10:00 AM)</strong>
            </div>
            <div class="detail-row">
                <span>Nights:</span>
                <strong>{nights}</strong>
            </div>
            <div class="detail-row">
                <span>Guests:</span>
                <strong>{adults} adults, {children} children</strong>
            </div>
            <div class="detail-row">
                <span>Included services:</span>
                <strong>{supplements_list}</strong>
            </div>
            <div class="detail-row total-row">
                <span>TOTAL:</span>
                <strong>{total_price}</strong>
            </div>
        </div>
        
        <p>For any questions or special requests, please don't hesitate to contact us.</p>
        
        <p>
            We look forward to welcoming you!<br>
            The {site_name} Staff
        </p>
    </div>
    
    <div class="footer">
        <p>{site_name} | {site_address}</p>
        <p>Phone: {site_phone} | Email: {site_email}</p>
        <p>&copy; {current_year} - All rights reserved</p>
    </div>
</body>
</html>

Template Example: Arrival Reminder Email

Subject:

See you soon! - Your booking #{booking_id}

HTML Content (excerpt):

<p>Dear {customer_first_name},</p>

<p>We're writing to remind you that your stay at {site_name} 
is just around the corner!</p>

<p><strong>Your arrival is scheduled for {checkin_date}.</strong></p>

<h3>Useful information:</h3>
<ul>
    <li>Check-in available from 3:00 PM</li>
    <li>Reception open 24 hours</li>
    <li>Free parking available</li>
</ul>

<h3>How to reach us:</h3>
<p>{site_address}</p>
<p>[Insert map or directions here]</p>

<p>In case of delay or unforeseen circumstances, please contact us 
at {site_phone}.</p>
Email preview
⚠️ Email Deliverability

If emails end up in spam or aren't delivered, consider configuring a professional SMTP service like SendGrid, Mailgun, or Amazon SES. You can use plugins like "WP Mail SMTP" for configuration. Make sure the sender address is on a verified domain with correct SPF and DKIM records.

Plugin Settings

HRM Booking Manager settings are organized into different sections accessible from Bookings → Settings.

General Settings

Configure general booking system settings.

Option Description
Enable VAT Enables VAT application to booking prices. If enabled, VAT will be added to the base price of the room and supplements.
VAT Rate (%) Enter the VAT rate as a percentage (e.g., 22 for 22%).
Currency Symbol Currency symbol (managed in Room Manager Settings).
Currency Position Currency symbol position: Left (€100.00) or Right (100.00 €). Managed in Room Manager Settings.
Date Format Date display format (managed in Room Manager Settings).
Redirect Page Select the page to redirect the customer to after a successful booking.
Privacy Acceptance Page Select the page containing the privacy policy. A mandatory checkbox with a link to this page will be shown in the booking form.

Email Settings

Configure settings for sending emails to customers.

Option Description
Sender Name Name displayed as the sender in emails sent to customers.
Sender Email Sender email address for emails sent to customers. Use an address from your domain to improve deliverability.

Email Appearance

Customize the graphic appearance of emails sent to customers.

Option Description
Email Logo Upload a logo to display in the email header. Recommended dimensions: max 200x80 pixels.
Header Color Email header background color (where the logo appears).
Border Color Email footer top border color.
Motto/Tagline Text/motto displayed below the logo in the email header. Leave empty to show nothing.
Footer Color Email footer background color.
Footer Text Custom text to display in the email footer. Supports basic HTML (bold, italic, links). You can use placeholders like {site_name} and {site_url}.

Frontend Appearance

Customize the graphic appearance of the booking system on the frontend.

Option Description
"View Room" Button Color "View Room" button background color.
"View Room" Button Hover Color "View Room" button color when mouse hovers over.
Calendar Header Color Calendar header color (month/year).
Calendar Selected Date Color Selected date color in the calendar.
Calendar Width Calendar width (e.g., 400px, 500px, 100%).
"Select" Button Text Color "Select this room" button text color in the slideshow.
"Select" Button Background Color "Select this room" button background color in the slideshow.
"Select" Button Hover Color Button color when mouse hovers over.
Form Background Color Booking form background color on the frontend.
Calendar Text Color (Check-in/Check-out) Text color for check-in and check-out calendar fields.

Slideshow Settings

Customize the appearance and behavior of the room slideshow in the booking form.

Option Description
Autoplay Enables automatic slide rotation. The slideshow stops automatically when mouse hovers over it.
Autoplay Speed (ms) Time between slides in milliseconds (1000ms = 1 second). Default: 5000ms.
Show Navigation Arrows Shows previous/next navigation arrows on the slideshow sides.
Show Navigation Dots Shows navigation dots below the slideshow to jump directly to a specific slide.
Arrow Color Navigation arrow icon color.
Arrow Background Color Navigation arrow button background color.
Dot Color Inactive navigation dot color.
Active Dot Color Active navigation dot color (current slide).
Image Height (px) Slideshow image height in pixels. Default: 400px.
Max Width (px) Maximum slideshow container width. Default: 800px.
Border Radius (px) Slideshow corner rounding. Set 0 for square corners. Default: 8px.

Admin Notifications

Configure automatic email notifications sent to the administrator when new bookings are created or when an existing booking's status changes.

Option Description
Enable Admin Notifications Enable/disable sending email notifications to the administrator. If disabled, no notifications will be sent even if other options are active.
Notification Email Email address to receive notifications. If left empty, the WordPress administrator email will be used.
Notify on New Booking Send an email notification every time a new booking is created from the frontend form. The email contains all booking details and a direct link to view it in the admin.
Notify on Status Change Send an email notification every time a booking's status is changed (e.g., from "Pending" to "Confirmed"). The email indicates the old and new status.
💡 Tip

Admin notification emails use the same logo configured in the "Email Appearance" section. If you've set up a logo for customer emails, it will also be shown in admin notifications.

Shortbook Settings

Configure the appearance of the [shortbook] mini booking form. This shortcode creates a compact form that can be placed anywhere on your site (homepage, sidebar, etc.) to allow quick date and room selection before redirecting to the main booking page.

Option Description
Shortbook Background Color Background color of the shortbook form container.
Shortbook Button Color Background color of the submit button.
Shortbook Button Hover Color Button color when mouse hovers over it.
Shortbook Button Text Color Text color of the submit button.
📝 Shortbook Usage

To use the shortbook form, add the shortcode [shortbook url="/your-booking-page/"] to any page, post, or widget. The url parameter is required and should point to the page containing your main booking form ([hrmrm_booking_form]).

WordPress Menu Position

Menu Item Function
Bookings Main menu
→ All Bookings List with filters and bulk actions
→ Add New Create manual booking
→ Calendar Booking calendar view
→ Export Data export
→ Email Templates Email template editor
→ Settings Plugin configuration

Database Management and Backup

⚠️ Important: Database Management and Data Responsibility

Database management has been optimized to handle a large number of bookings. However, it's always recommended to keep the booking list updated by periodically deleting completed ones to maintain optimal system performance.

You can use the Export function (Bookings → Export menu) to save booking data to an Excel file before deleting them from the system.

Disclaimer: Data storage and backup remain the user's responsibility. We assume no responsibility in case of data loss, theft, or damage.

Booking export function
Additional Booking Manager screenshot