Skip to content
GPLWP Guides

How to accept hotel bookings on a WordPress site

Booking & Events Time About 45–90 minutes 6 steps Updated 6 Sep 2026

BOOKING & EVENTS
The short answer

To accept hotel bookings on WordPress, you need a booking plugin or hotel-focused theme that manages room availability, overnight pricing, guest details and payments. A contact form can collect requests, but it cannot reliably prevent double bookings or calculate room availability by itself.

The route
  1. 01Choose how bookings work
  2. 02Use the manual route if suitable
  3. 03Install a hotel booking system
  4. 04Create your rooms and rates
  5. 05Configure checkout and payments
  6. 06Publish, test and monitor

What you need

  • A WordPress site with admin access
  • An SSL-enabled hosting account
  • Your room types, nightly rates and availability rules
  • A payment account if you want online deposits or full payment

Choose how bookings work

Decide whether guests should receive an instant confirmation or submit a request for you to approve. Also decide whether you charge the full amount, a deposit or payment on arrival, and write down your cancellation, check-in and check-out rules.

For more than a few rooms, use a booking system rather than a standard contact form. Hotel booking tools are designed to show availability, calculate overnight stays and pass the reservation through checkout.

Use the manual route if suitable

For a small property with occasional bookings, you can publish room pages, add a contact or enquiry form, and keep availability in a private calendar or spreadsheet. Review each request yourself, confirm the dates by email, take payment separately and then block the dates manually.

This route is cheap and can be fine for one room or low booking volume, but it is not real-time inventory. The Friday-night failure is accepting two enquiries before you update the calendar. It also gives guests no immediate price calculation or reliable payment flow.

Install a hotel booking system

Install a hotel booking plugin or an accommodation-focused WordPress theme. If you are building around WooCommerce, the accommodation tools add overnight rates, date-based pricing, check-in and check-out times, room quantities and booking availability to the store.

After activation, open the system's settings and set the currency, property details, booking status, email notifications and default check-in and check-out times. Do not publish the booking form until the confirmation emails and admin notifications have a real recipient address.

Create your rooms and rates

Create one bookable item for each room type or separately managed room. Add the room name, photos, description, occupancy limit, amenities and number of rooms available. Set the normal nightly rate, minimum and maximum stay, allowed booking dates, blackout dates and any seasonal or weekend rates.

Hotel booking systems commonly apply special rates to nights rather than calendar days, so check how the first and last selected dates are counted. Test a one-night stay and a multi-night stay before publishing.

Configure checkout and payments

Choose the guest fields you need, such as name, email, telephone number, arrival time and special requests. Add your terms, cancellation policy and privacy notice, then connect a payment gateway in test mode before switching to live payments.

Confirm what happens when payment fails, a booking is cancelled or a guest abandons checkout. A booking should not remove the last available room permanently just because somebody left it in their cart. WooCommerce Bookings relies on a working WP-Cron process to clear bookings held by abandoned carts.

Publish, test and monitor

Place the booking form on a dedicated Book now page and link to it from every room page. Test unavailable dates, overlapping bookings, different occupancy numbers, seasonal rates, deposits, confirmation emails, refunds and mobile checkout.

If you also take reservations through Airbnb, Booking.com or another channel, verify whether your chosen system has manual calendar blocking, one-way feeds or two-way synchronisation. Do not assume an iCal connection behaves like a full channel manager; check the refresh interval and test a real date change before relying on it.

Fast way: Use Bellevue if you want booking built into the site design. It combines room listings, availability, pricing and payment support in one hotel-focused setup, so you can start from the theme's demo structure instead of assembling the booking flow from separate parts.

The fast route

Let Bellevue do it

All-in-one hotel theme with availability, room pricing, and payments for property owners who want booking built into the site design.

Get Bellevue

Sources

  1. woocommerce.com /document/woocommerce-accommodation-bookings/?utm_source=ope…
  2. woocommerce.com /document/introduction-to-woocommerce-bookings/?utm_source=o…
  3. motopress.com /files/motopress-hotel-booking-plugin-documentation.pdf?srsl…

Questions

Can I accept hotel bookings in WordPress without a plugin?
You can collect booking requests with a form and manage dates manually, but WordPress does not provide hotel availability, overnight pricing or double-booking prevention on its own. The manual approach is reasonable for one room or a low booking volume. For several rooms or regular online payments, use a booking plugin or hotel-focused theme so reservations and availability are managed together.
How should I set up hotel rooms in WordPress?
Create each room type or separately managed room as a bookable item with its own capacity, nightly rate, photos, amenities and availability rules. Add minimum stays, blackout dates and seasonal prices where needed. If multiple physical rooms share one room type, set the available quantity rather than creating misleading duplicate listings. Accommodation booking tools support these room and rate settings.
How do hotel guests pay through WordPress?
Guests pay through the payment gateway connected to your booking or WooCommerce system. Configure whether checkout takes the full amount, a deposit or payment on arrival, then test successful, failed and cancelled payments before going live. Your booking form should also explain cancellation terms, taxes, fees and when the reservation becomes confirmed.
How do I stop double bookings on my WordPress hotel site?
Use a booking system that reduces availability when a reservation is confirmed, and keep external booking channels synchronised or manually blocked. Do not rely on a contact form and spreadsheet if guests can book the same dates without your approval. Test overlapping dates, abandoned carts and changes from Airbnb or other channels before launch, because calendar feeds may not update instantly.