ReservePress  /  Documentation  /  ReservePress Hotels User Guide
Hospitality — Hotels, Resorts & B&Bs Plugin v3.2.6 | ReservePress Hotels Theme & Theme Lite 28 pages • Full HTML + PDF

ReservePress Hotels — Installation & User Guide (v3.2.6)

Complete installation, configuration, and front-desk reference for ReservePress Hotels (v3.2.6) — covering room types & room instances, seasonal rate rules, 2-way iCal channel sync (Booking.com, Airbnb, VRBO, Expedia), Stripe deposits, and companion themes.

🔍
Chapter 1

1. Requirements

Before installing ReservePress Hotels, confirm your server meets the following requirements: Requirement

Minimum

WordPress

6.4 or higher

PHP

8.2 or higher

MySQL / MariaDB

MySQL 5.7+ or MariaDB 10.3+

HTTPS

Required for Stripe payments (strongly recommended for all installs)

Pretty Permalinks

Must be enabled — Settings → Permalinks → any option except Plain

WP Memory Limit

128 MB minimum; 256 MB recommended

Optional: Stripe Account

Required only if you want to collect online payments or deposits. Not required for pay-at-property or invoice workflows.

Chapter 2

2. Installation

Method A — Upload via WordPress Admin (Recommended)

  • Log in to your WordPress admin dashboard.
  • Go to Plugins → Add New → Upload Plugin.
  • Click Choose File and select reservepress-hotels-v3.2.6.zip.
  • Click Install Now, then Activate Plugin.
  • You will be redirected to the ReservePress Hotels dashboard automatically.

Method B — FTP / File Manager

  • Extract reservepress-hotels-v3.2.6.zip on your computer.
  • Upload the reservepress-hotels folder to /wp-content/plugins/ via FTP.
  • In WordPress admin go to Plugins → Installed Plugins.
  • Find ReservePress Hotels and click Activate.

What Happens on Activation

The plugin automatically creates 12 custom database tables prefixed with wp_rph_. Custom capabilities are added to the Administrator role. A Front Desk page is created automatically. No existing WordPress data is modified.

Database Tables Created

wp_rph_room_instances
wp_rph_guests
wp_rph_bookings
wp_rph_promotions
wp_rph_seasons
wp_rph_addons
wp_rph_booking_addons
wp_rph_deposits
wp_rph_blocked_dates
wp_rph_payment_history
wp_rph_ical_feeds
wp_rph_ical_sync_log
Chapter 3

3. First-Time Setup

Follow these steps in order after activating the plugin.

3.1 Configure General Settings

Go to ReservePress → Settings → General and fill in:

  • Property Name — appears in email notifications and the booking widget.
  • Property Email — used as the reply-to address for all guest emails.
  • Phone Number — displayed in confirmation emails.
  • Check-in Time / Check-out Time — displayed to guests during booking.
  • Minimum / Maximum Nights — booking length restrictions.

3.2 Add Room Types

Go to ReservePress → Room Types → Add New. Room types are WordPress custom post types. Fill in:

  • Title — e.g. Deluxe King, Standard Queen, Garden Cottage.
  • Description — shown on the room detail page and in the booking widget.
  • Gallery — photo gallery for this room type.
  • Max Adults / Max Children — capacity limits used by the availability checker.
  • Base Rate — nightly rate. Seasonal pricing overrides this when configured.
  • Total Units — number of physical rooms of this type.
  • Amenities — feature list shown on the room card.
  • Click Publish to make the room type available.

3.3 Add Room Instances

Go to ReservePress → Room Instances. Room instances represent individual physical rooms (e.g. Room 101, Room 102). They enable per-room availability tracking and front desk check-in/out workflow.

  • Click Add New Instance for each physical room.
  • Assign it to a Room Type and give it a room number or name.
  • Instances are optional — if none are created, the plugin uses the Total Units count from the Room Type.

3.4 Configure Seasonal Pricing

Go to ReservePress → Seasons → Add New Season. Seasons override the base rate for specific date ranges — useful for peak, shoulder, and off-season pricing.

  • Name — e.g. Peak Summer, Long Weekend.
  • Date Range — start and end date.
  • Price Adjustment — percentage increase or decrease, or a fixed amount.
  • Priority — if seasons overlap, higher priority wins.

3.5 Create Required Pages

Create the following pages in WordPress → Pages → Add New: Page Title

Slug

Content / Notes

Book a Room

book

Add shortcode [rph_booking_widget] or use the ReservePress Hotels Theme Booking Page template.

Rooms

rooms

Add [rph_rooms] shortcode or use Rooms Page template.

My Reservations

my-reservations

Add [rph_my_reservations] shortcode. Guests access via confirmation email link.

Chapter 4

4. Shortcodes

All shortcodes enqueue required CSS and JavaScript automatically.

4.1 [rph_booking_widget]

[rph_booking_widget]

The primary booking shortcode. Renders a date picker and guest count selector. On search, displays available room types for the selected dates. Guest completes the booking through a multi-step checkout flow with optional Stripe payment.

4.2 [rph_rooms]

[rph_rooms]
[rph_rooms columns="2" show_price="yes"]

Displays all published room types in a responsive grid. Attribute

Default

Description

columns

3

Number of columns (1–4).

show_price

yes

Show nightly rate on each card.

show_book_button

yes

Show Book Now button.

orderby

menu_order

Sort order: menu_order, title, price.

4.3 [rph_room]

[rph_room id="42"]

Displays a single room type card by its post ID.

4.4 [rph_promotions]

[rph_promotions]

Displays all currently active promotions. Promo codes can be entered during checkout.

4.5 [rph_my_reservations]

[rph_my_reservations]

Displays a guest's reservation history. Logged-in users see their bookings automatically. Guests access via a secure link in their confirmation email.

4.6 [rph_availability_calendar]

[rph_availability_calendar room_type="42"]

Displays a read-only availability calendar for a specific room type.

Chapter 5

5. Admin Menu Reference

The ReservePress menu appears in the WordPress admin sidebar.

5.1 Dashboard

  • Overview of today's arrivals, departures, and current guests.
  • Key stats: occupancy, revenue, pending bookings.
  • Quick-access buttons for common tasks.

5.2 Bookings

  • Full list of all bookings with date, guest, room, and status filters.
  • Click any booking to view full details, change status, or add internal notes.
  • Status options: Pending, Confirmed, Checked In, Checked Out, Cancelled, No Show.
  • Use New Booking to manually create a reservation.
  • Admin bookings show an inline conflict warning if dates are already taken.

5.3 Calendar

  • Monthly calendar view of all bookings, grouped by room type.
  • Navigate with Prev/Next or the date picker.
  • Click any booking block to view or edit it.
  • Blocked dates shown with a striped pattern.

5.4 Room Types & Instances

  • Room Types are managed as WordPress custom post types — edit via the standard WordPress post editor.
  • Room Instances — individual physical rooms. Add, edit, and assign to room types here.
  • Each instance tracks its own availability, maintenance status, and booking history.

5.5 Seasons

  • Create seasonal pricing periods with date ranges and price adjustments.
  • Percentage or fixed amount adjustments supported.
  • Priority field resolves overlapping seasons.

5.6 Promotions

  • Create discount codes for use during checkout.
  • Set discount type, value, usage limit, and validity dates.
  • Active promotions displayed publicly using [rph_promotions].

5.7 Addons

  • Optional extras offered at checkout — parking, breakfast, pet fees, etc.
  • Set name, description, price, and maximum quantity per booking.
  • Addon totals tracked separately in booking records and reports.

5.8 Blocked Dates

  • Block dates for maintenance, renovations, or private events.
  • Block by room type, individual room instance, or all rooms.
  • Manually blocked dates appear in the export calendar as Not Available.

5.9 Guests

  • View all guest records with contact information and booking history.
  • Clients are created automatically when a booking is made.

5.10 Reports

  • Revenue summary by date range.
  • Booking volume by room type.
  • Occupancy rate and average nightly rate.
  • Requires the view_rph_reports capability.

5.11 Calendar Sync

Two-way iCal calendar sync with Booking.com, Airbnb, VRBO, and other OTAs. See Chapter 11 for full documentation.

Chapter 6

6. Settings Reference

All settings are at ReservePress → Settings. Each tab saves independently.

6.1 General Tab

Setting

Description

rph_property_name

Your property name — appears in email notifications and the booking widget.

rph_property_email

Reply-to email address for all guest-facing emails.

rph_property_phone

Property phone number — included in confirmation emails.

rph_check_in_time

Standard check-in time displayed to guests. Default: 15:00.

rph_check_out_time

Standard check-out time displayed to guests. Default: 11:00.

6.2 Booking Rules Tab

Setting

Description

rph_min_nights

Minimum nights per booking. Default: 1.

rph_max_nights

Maximum nights per booking. Default: 30.

rph_min_advance_booking

Minimum days in advance a guest can book. Default: 1.

rph_max_advance_booking

How far ahead guests can book. Default: 365 days.

rph_allow_guest_checkout

Allow bookings without a WordPress account. Recommended: on.

6.3 Payments & Stripe Tab

Setting

Description

rph_stripe_enabled

Enable Stripe payment processing.

rph_stripe_test_mode

on = use test API keys. off = use live keys.

rph_payment_mode

full = charge full amount. deposit = charge deposit only.

rph_deposit_percentage

Percentage of total charged as deposit. Default: 30.

rph_stripe_test_publishable_ key

Stripe test publishable key (starts with pk_test_).

rph_stripe_test_secret_key

Stripe test secret key (starts with sk_test_).

rph_stripe_live_publishable_ key

Stripe live publishable key (starts with pk_live_).

rph_stripe_live_secret_key

Stripe live secret key (starts with sk_live_). Never share this key.

6.4 Tax Tab

Setting

Description

rph_tax_enabled

Apply tax to room rates at checkout.

rph_tax_rate

Tax percentage (e.g. 13 for 13% HST).

rph_tax_name

Label shown at checkout (e.g. HST, GST, VAT).

rph_tax_inclusive

on = prices already include tax. off = tax added on top.

6.5 Currency Tab

Setting

Description

rph_currency

ISO currency code. Default: USD.

rph_currency_symbol

Symbol displayed with prices. Default: $.

rph_currency_position

before = $200. after = 200$.

rph_currency_decimals

Number of decimal places. Default: 2.

6.6 Email & SMTP Tab

Setting

Description

rph_email_from_name

Sender name for all plugin emails.

rph_email_from_address

Sender email address.

rph_email_booking_confirmati on

Send a confirmation email to the guest after booking.

rph_email_admin_notification

Send a notification email to the property admin on new booking.

rph_email_payment_confirmati on

Send a receipt email after payment is processed.

rph_email_cancellation

Send a cancellation notice to the guest.

rph_smtp_host

SMTP server hostname.

rph_smtp_port

SMTP port. Common values: 587 (TLS), 465 (SSL).

rph_smtp_username

SMTP account username.

rph_smtp_password

SMTP account password.

rph_smtp_encryption

tls or ssl.

SMTP Recommendation

WordPress default email (wp_mail) is often blocked by hosting providers. Use a transactional email service such as SendGrid, Mailgun, or Postmark for reliable delivery.

Chapter 7

7. User Roles & Capabilities

ReservePress Hotels adds custom capabilities to the WordPress role system. Administrators receive all capabilities automatically on activation.

Capability

Description

Admin

Manager*

Agent*

manage_rph_bookings

View, create, edit bookings

✓

✓

✓

edit_rph_bookings

Edit existing bookings

✓

✓

✓

delete_rph_bookings

Delete bookings

✓

✓

manage_rph_rooms

Manage room types and

instances

✓

✓

manage_rph_settings

Access plugin settings

✓

✓

view_rph_reports

View revenue and booking

reports

✓

✓

view_rph_calendar

View the calendar screen

✓

✓

✓

access_rph_frontend

Access the Front Desk interface

✓

✓

✓

* Manager and Agent roles are not created automatically. Assign capabilities using a role editor plugin.

Chapter 8

8. Front Desk Interface

The Front Desk is a dedicated property management system (PMS) designed for front desk staff, managers, and coordinators. It provides everything needed to run daily operations without requiring access to the WordPress admin area.

8.1 Accessing the Front Desk

The Front Desk page is created automatically on plugin activation and is accessible at: https://yoursite.com/front-desk/

Access Control

The Front Desk requires the access_rph_frontend capability. Administrators have this by default. To give a staff member access: go to WordPress Admin → Users, edit the user, and assign the Hotel Manager role — or use a role editor plugin to add the access_rph_frontend capability to an existing role. Staff with Front Desk access are automatically redirected to the Front Desk after login and cannot access the WordPress admin.

8.2 Dashboard — Starting Your Shift

The Dashboard tab is your starting point at the beginning of each shift. It shows:

  • Arrivals Today — number of guests checking in today. Each arrival is listed with guest name, room type or number, and a green Check In button.
  • Departures Today — guests checking out today. Each is listed with room number and total charge, with a Check Out button.
  • Guests In-House — all currently checked-in guests with room number and check-out date.
  • Pending Bookings — bookings awaiting confirmation. Click to review and confirm.
  • This Week at a Glance — a 7-day strip showing arrivals (↓), departures (↑), and occupancy percentage for each day.
  • Room Status Grid — a visual overview of every room instance. Colour-coded: Available (green), Occupied (blue), Arriving Today (gold), Departing Today (orange), Maintenance (grey). Start of shift routine

Review Arrivals Today and Departures Today first. Check the Pending Bookings count — any pending bookings should be confirmed or followed up before the day gets busy. Use the Room Status Grid to verify your housekeeping team has cleared departure rooms.

8.3 Check-In Workflow

When a guest arrives to check in:

  • Find the guest in the Arrivals Today list on the Dashboard, or search for their booking in the Bookings tab.
  • Confirm their identity and reservation details — room type, dates, number of guests.
  • If a specific room instance has not yet been assigned, open the booking and assign a room number from the Room Instance dropdown.
  • Click the green ✓ Check In button. The booking status changes from Confirmed to Checked In and the room status grid updates immediately.
  • If payment is due at check-in (balance owing), collect it and record the payment on the booking. Early check-in

If a guest arrives before their check-in date, the booking will not appear in Arrivals Today. Find it via the Bookings tab, search by guest name or booking number, and check in manually from the booking detail view.

8.4 Check-Out Workflow

When a guest is ready to check out:

  • Find the guest in the Departures Today list on the Dashboard, or search in the Bookings tab.
  • Confirm the room number and any outstanding charges — additional nights, addons, or incidental charges.
  • Collect any remaining balance if not already paid.
  • Click the Check Out button. The booking status changes to Checked Out and the room becomes available for the next guest.
  • The room status grid on the Dashboard updates immediately to show the room as available. Late check-out

If a guest requests late check-out, leave the booking in Checked In status until they actually depart. This keeps the room marked as occupied in the status grid so housekeeping knows not to prepare it for an incoming guest.

8.5 Creating a Walk-In or Phone Booking

To create a booking for a walk-in guest or a reservation taken by phone:

  • Click New Booking in the Bookings tab.
  • Fill in guest details — first name, last name, email, and phone.
  • Select the room type and check-in / check-out dates. Available room instances are shown automatically.
  • Assign a specific room instance if required.
  • Set the number of adults and children.
  • Apply a promo code if applicable — pricing recalculates automatically.
  • Select addons if the guest wants any extras.
  • Set the booking status — Confirmed for advance reservations, Checked In for walk-ins arriving right now.
  • Set the payment status and record any payment collected.
  • Click Create Booking. A confirmation email is sent to the guest automatically.

8.6 Managing Bookings

The Bookings tab lists all reservations. Filter by status, date range, or room type. Search by guest name, email, or booking number. Click any booking to open the full detail view.

Booking status options:

Status

Description

Pending

Inquiry or unconfirmed reservation — awaiting your review.

Confirmed

Confirmed reservation — guest is expected.

Checked In

Guest is currently on property.

Checked Out

Guest has departed. Stay is complete.

Cancelled

Booking has been cancelled. Room is freed.

No Show

Guest did not arrive. See Section 8.8.

To change a booking status, open the booking and click the appropriate action button, or change the status directly from the status dropdown and save.

8.7 Room Status & Maintenance

The Rooms tab shows all room instances grouped by room type, with their current status. Use this tab to manage maintenance and room readiness.

  • To mark a room as out of service: click the room instance, then click Set Maintenance. The room will not appear as available in the booking widget or availability checker.
  • To return a room to service: click the room instance and click Set Available.
  • Rooms marked as maintenance appear as grey in the Room Status Grid on the Dashboard.
  • You can also add a maintenance note explaining the reason — visible to admin and Front Desk staff only.

8.8 Handling a No-Show

If a guest does not arrive on their check-in date:

  • Open the booking from the Bookings tab or from Arrivals Today on the Dashboard.
  • Change the status to No Show.
  • A cancellation email is not sent automatically for No Show — contact the guest directly if needed.
  • The room is freed for rebooking.
  • If a deposit was collected, refer to your cancellation policy regarding refunds. Refunds are processed manually through your Stripe dashboard.

8.9 Applying a Promo Code

Promo codes can be applied when creating or editing a booking in the Front Desk:

  • Open the booking or start a new booking.
  • Enter the promo code in the Promo Code field.
  • Click Apply — the discount is calculated and the total updates immediately.
  • Save the booking. The discount is recorded on the booking record.

Promo codes are created and managed in the Promotions tab of the Front Desk, or in ReservePress → Promotions in the WordPress admin.

8.10 Reports

The Reports tab provides a quick revenue and occupancy summary for any date range.

  • Total bookings by status (Confirmed, Checked In, Checked Out, Cancelled)
  • Total revenue collected in the period
  • Occupancy rate — percentage of rooms occupied
  • Average nightly rate for the period
  • Breakdown by room type — bookings and revenue per room type

Full reports

The Front Desk Reports tab provides a quick operational summary. For full revenue reporting with export options, use ReservePress → Reports in the WordPress admin.

Chapter 9

9. Email Notifications

The plugin sends the following emails automatically.

Email

Trigger

Recipient

Booking Confirmation

Immediately after a successful booking

Guest

Admin Notification

Immediately after a successful booking

Property admin

Payment Confirmation

After successful Stripe payment

Guest

Cancellation Notice

When a booking is cancelled

Guest

For high-traffic or mission-critical emails, configure a real cron job on your server: */5 * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null

Chapter 10

10. Stripe Payment Setup

Step 1: Create a Stripe Account

Go to stripe.com and create or log in to your account. Complete business verification if required for live payments.

Step 2: Get Your API Keys

In the Stripe dashboard, go to Developers → API Keys. Copy your Publishable key and Secret key. Start with test mode keys for initial setup.

Step 3: Enter Keys in Plugin Settings

Go to ReservePress → Settings → Payments. Enable Stripe and check Test Mode. Paste your test keys and save.

Step 4: Set Up Webhook

In Stripe go to Developers → Webhooks → Add Endpoint. Endpoint URL: https://yoursite.com/wp-json/rph/v1/stripe-webhook. Select events: payment_intent.succeeded and payment_intent.payment_failed.

Step 5: Test a Payment

Make a test booking. Use Stripe test card 4242 4242 4242 4242 with any future expiry and any CVC. Confirm the booking shows payment status Paid.

Security

Never paste your Stripe secret key anywhere public or in version control. HTTPS is required for Stripe to function on live sites.

Chapter 11

11. Calendar Sync — iCal Integration

ReservePress Hotels includes two-way iCal calendar sync, allowing your booking availability to stay in sync with Booking.com, Airbnb, VRBO, Expedia, and any other platform that supports the iCalendar standard (RFC 5545). This prevents double bookings when you list on multiple platforms while also taking direct bookings on your own site.

11.1 How It Works

The sync system works in two directions:

  • Export (ReservePress → OTAs) — ReservePress generates a secure .ics feed URL for each room type. You paste this URL into Booking.com or Airbnb's calendar import settings. When a guest books direct through your site, those dates are blocked on the OTA on their next sync.
  • Import (OTAs → ReservePress) — You paste the .ics feed URL from Booking.com or Airbnb into the Calendar Sync admin screen. ReservePress fetches and parses that feed automatically every 2 hours, blocking the imported dates in your availability calendar. iCal sync vs full API integration iCal sync is availability-only — it blocks dates but does not create booking records from OTA reservations, does not sync rates, and does not push or pull guest details. It is the standard calendar sync method used by Lodgify, Guesty, and most channel managers for preventing double bookings.

11.2 Exporting Your Calendar to Booking.com & Airbnb

Go to ReservePress → Calendar Sync. Each room type has a unique export URL automatically generated on first load. The URL includes a secret token to prevent competitors from enumerating your availability. The export URL format is: https://yoursite.com/rph-ical/{room_type_id}/{token}/

To connect to Booking.com:

  • Log in to your Booking.com extranet.
  • Go to Calendar → Sync Calendars → Export Calendar.
  • Copy the export URL from your ReservePress Calendar Sync page.
  • Paste it into Booking.com's import field and save.
  • Booking.com will sync on their schedule (typically every few hours). To connect to Airbnb:
  • Log in to your Airbnb host account.
  • Go to Calendar → Availability Settings → Sync Calendars → Import Calendar.
  • Paste your ReservePress export URL and click Import.
  • Airbnb typically syncs within a few hours.

Regenerating the token

If you need to revoke an export URL — for example if it was shared accidentally — click Regenerate Token on the Calendar Sync page. This creates a new URL and invalidates the old one. You will need to update the URL in Booking.com and Airbnb after regenerating.

11.3 Importing External Calendars

Go to ReservePress → Calendar Sync. For each room type, click Add Feed and fill in:

  • Platform — select from Airbnb, Booking.com, VRBO, Expedia, TripAdvisor, HomeAway, or Other.
  • iCal Feed URL — the .ics URL from the OTA's calendar export settings. To get your iCal feed URL from Booking.com:
  • Log in to your Booking.com extranet.
  • Go to Calendar → Sync Calendars → Export Calendar.
  • Copy the iCal URL provided.
  • Paste it into the ReservePress Calendar Sync import field.

To get your iCal feed URL from Airbnb:

  • Log in to your Airbnb host account.
  • Go to Calendar → Availability Settings → Sync Calendars → Export Calendar.
  • Copy the iCal URL.
  • Paste it into the ReservePress Calendar Sync import field.

How imported events are stored

Dates imported from an external feed are stored as blocked date records in wp_rph_blocked_dates with the platform name set as the reason (e.g. airbnb, booking_com). They are clearly labelled in the admin calendar and can be distinguished from manually blocked dates. They are also excluded from your export feed to prevent sync loops.

11.4 Automated Sync Schedule

ReservePress Hotels registers a custom WP-Cron interval and automatically syncs all active import feeds every 2 hours. No manual action is required after the initial setup. You can also trigger a manual sync at any time by clicking Sync Now next to any feed on the Calendar Sync page. The sync result is shown immediately.

WP-Cron reliability

WP-Cron fires when your site receives a visitor. On low-traffic sites this may mean syncs happen less frequently than every 2 hours. For guaranteed 2-hour sync intervals, configure a real server cron job: */120 * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null

11.5 Conflict Detection

When an imported feed contains a date range that overlaps with an existing confirmed booking in ReservePress, the system detects the conflict and flags it rather than silently overwriting your booking.

  • Conflicting events are not applied as blocks — your confirmed booking is protected.
  • A conflict warning appears on the Calendar Sync page with the affected dates and booking number.
  • The feed's sync status is set to Conflict so you can identify and resolve it.
  • You can then manually cancel the ReservePress booking or contact the guest to resolve the overlap. Preventing conflicts

The best way to prevent conflicts is to keep your export URL active in Booking.com and Airbnb so they block your direct bookings promptly. Conflicts typically arise when there is a delay between a direct booking and the OTA's next sync of your export feed.

11.6 Sync Log

Every sync attempt is recorded in the sync log, accessible from the Calendar Sync page by clicking View Log next to any feed. Each log entry shows:

  • Sync timestamp and duration
  • Number of events found, added, and removed
  • Number of conflicts detected
  • Status: Success, Error, or Conflict
  • Error message if the fetch or parse failed

Log entries older than 90 days are automatically pruned during the daily maintenance cron.

11.7 Supported Platforms

The following platforms are supported for both import and export: Platform

Slug

Notes

Airbnb

airbnb

Full two-way sync supported. Airbnb validates the User-Agent header — ReservePress sends the correct UA automatically.

Booking.com

booking_com

Full two-way sync supported.

VRBO

vrbo

Full two-way sync supported.

Expedia

expedia

Full two-way sync supported.

TripAdvisor

tripadvisor

Full two-way sync supported.

HomeAway

homeaway

Full two-way sync supported.

Other

other

Any platform that provides a standard iCalendar (.ics) feed URL.

Chapter 12

12. ReservePress Hotels Theme

The ReservePress Hotels Theme is the official companion theme for ReservePress Hotels. It is designed to work out of the box with the plugin — no manual shortcode setup required.

Installing the Theme

  • Go to Appearance → Themes → Add New → Upload Theme.
  • Upload reservepress-hotels-theme.zip and click Activate.
  • Create the pages listed below, assigning the matching page templates.

Required Pages & Templates

Page Title

Slug

Template

Home (set as front page)

/

Front Page

Rooms

rooms

Rooms Page

Book a Room

book

Booking Page

My Reservations

my-reservations

My Reservations Page

About

about

About Page

Gallery

gallery

Gallery Page

Contact

contact

Contact Page

Theme Customisation

Go to Appearance → Customize to access all theme options including property name, tagline, hero content, colour palette, typography, and footer details.

Chapter 13

13. ReservePress Hotels Theme Lite

ReservePress Hotels Theme Lite is a minimal booking shell included free with every ReservePress Hotels purchase. It is designed for properties whose main website runs on Shopify, Squarespace, Wix, or any non-WordPress platform.

How It Works

Install WordPress in a subfolder of your domain (e.g. yourproperty.com/book/). Theme Lite turns that subfolder into a self-contained booking portal. The header shows your logo, linking back to your main site.

Installing Theme Lite

  • Go to Appearance → Themes → Add New → Upload Theme.
  • Upload reservepress-hotels-theme-lite.zip and click Activate.
  • On activation, the theme automatically creates two pages: Book a Room and My Reservations.
  • Go to ReservePress → Settings → General and confirm the My Reservations URL is set correctly.

Customiser Options

Option

Description

Logo

Upload your property logo. Displayed in the header, links back to your main site.

Primary Colour

Accent colour applied to buttons and highlights in the booking widget.

Main Site URL

The URL your logo links to (e.g. https://yourproperty.com).

Footer Copyright

Copyright line displayed in the footer.

What Theme Lite does not include

Theme Lite has no navigation menu, no homepage, and no marketing content. For a full hotel website, use the ReservePress Hotels Theme (Chapter 12).

Chapter 14

14. Troubleshooting

Booking widget shows “No rooms available” for all dates

  • Confirm at least one room type is published in ReservePress → Room Types.
  • Check that the requested dates are not in the Blocked Dates list.
  • Confirm the dates are within your advance booking window in Settings → Booking Rules.
  • Check that guest count doesn't exceed room type capacity.

Room availability looks wrong after connecting Booking.com or Airbnb

  • Go to ReservePress → Calendar Sync and check the last sync status for each feed.
  • Click Sync Now to force an immediate sync and check the result.
  • Confirm the iCal feed URL from the OTA is correct and accessible.
  • Check the sync log for any error messages.

Calendar Sync shows a Conflict status

  • A booking in ReservePress overlaps with a date imported from an external feed.
  • Go to ReservePress → Calendar Sync → View Log to see the conflicting dates and booking number.
  • Resolve by contacting the guest or cancelling one of the conflicting bookings.
  • The system protects your confirmed ReservePress booking — the imported block is not applied automatically.

iCal export URL returns 404

  • Go to Settings → Permalinks and click Save Changes to flush rewrite rules.
  • Confirm the URL includes the correct room type ID and token from the Calendar Sync page.

Stripe payments not working

  • Confirm HTTPS is enabled on your site.
  • Confirm Test Mode is on when using test keys, and off when using live keys.
  • Confirm the webhook endpoint is registered in your Stripe dashboard.
  • Check Stripe dashboard → Developers → Webhooks for failed delivery attempts.

Emails are not being delivered

  • Test email delivery using a plugin like WP Mail SMTP or Check Email.
  • Configure SMTP settings in ReservePress → Settings → Email.
  • Check spam/junk folders before assuming emails are not sending.

Headers already sent or white screen after saving

  • Enable WordPress debug mode (WP_DEBUG=true in wp-config.php) to see the error.
  • Confirm PHP 8.2+ is active — ReservePress Hotels requires PHP 8.2 or higher.
  • Check that no extra blank lines appear at the end of your wp-config.php file.

For additional help, feature requests, or to report a bug, visit reservepress.ca or contact us at hello@reservepress.ca.

ReservePress Hotels is open source software licensed under the GNU General Public License v2 or later.