Modern Hotel Booking — WordPress Hotel Booking Plugin Logo

Modern Hotel Booking

Modern Hotel Booking — Troubleshooting Guide

Modern Hotel Booking Troubleshooting — Quick Fixes

Something’s not working and you want it fixed quickly. This guide covers the five most common Modern Hotel Booking problems — iCal sync errors, Stripe and PayPal failures, confirmation emails not sending, booking form display issues, and webhook problems. Find your issue and follow the fix.

🔧 Covers: Free & Pro versions

Most fixes: Under 5 minutes

💻 No code required for any fix here

📅 Updated: July 2026

Modern Hotel Booking troubleshooting — WordPress hotel booking plugin settings dashboard showing common configuration areas
Troubleshooting the Modern Hotel Booking WP plugin.

Quick summary: 80% of Modern Hotel Booking troubleshooting requests trace back to three causes — a timezone mismatch causing iCal date shifts, mixed sandbox and live API keys breaking payments, or PHP’s default mail function being blocked by spam filters. None of them require touching code. Find your problem below.

iCal Hotel Booking Sync Problem — Dates Off by a Day

This is the most common iCal sync problem reported — imported bookings from Airbnb or Booking.com land a day early or a day late. It looks like a plugin bug. It isn’t. It’s a timezone mismatch between your WP installation and the OTA calendar feed.

Here’s what’s happening: OTA platforms export iCal feeds in UTC (Coordinated Universal Time). If your WP site is set to a raw UTC offset like “UTC+2” instead of a specific city, it doesn’t automatically account for daylight saving time changes — so it misinterprets the timestamps in the feed and places bookings on the wrong day.

Fix — takes under 2 minutes

  1. Go to WordPress Admin → Settings → General
  2. Under Timezone, change the setting from any UTC offset to an actual city name — for example “Bucharest”, “London”, “New York”. Cities observe daylight saving automatically. Raw UTC offsets don’t.
  3. Go to Hotel Booking → Settings and confirm the timezone field there matches your WP General timezone setting
  4. Save both settings
  5. Trigger a manual re-sync of your iCal feed under Hotel Booking → Calendar Sync
  6. Check the imported bookings — the date shift should be resolved

Still off after the timezone fix? Clear your caching plugin before re-syncing — a cached settings page can return stale timezone data even after you’ve saved the correct value. If you’re on the free version, remember that automatic two-way iCal sync is a Pro feature. The free version supports manual date blocking. See what’s in Pro →

WordPress Hotel Booking Stripe Error or PayPal Failure at Checkout

Payment errors in Modern Hotel Booking almost always come down to one of two things — and neither requires touching code to fix.

Cause 1: Mixed API credentials

Stripe has two separate sets of API keys — test keys (which start with pk_test_ and sk_test_) and live keys (pk_live_ and sk_live_). If you paste test keys while the plugin is set to live mode, or live keys while in test mode, every transaction will fail with an “Invalid API Key” error. This is the single most common Stripe setup problem.

Check: go to Hotel Booking → Settings → Payments → Stripe. Look at the mode toggle — is it set to Test or Live? Now look at the keys you’ve entered. The publishable key prefix must match the mode. If there’s a mismatch, swap the keys for the correct set from your Stripe Dashboard → Developers → API Keys ↗.

Cause 2: No SSL certificate

Stripe flatly refuses to process card payments on a site without HTTPS. If your site URL starts with http:// instead of https://, Stripe won’t load the payment form at all. Look for the padlock icon in your browser’s address bar. No padlock means no Stripe processing — that’s it. Most hosting providers offer a free SSL certificate through Let’s Encrypt — contact your host if it isn’t already enabled.

Error or Symptom Most Likely Cause Fix
“Invalid API Key” message Test key used in Live mode or vice versa Match key prefix to mode toggle in plugin settings
Payment form doesn’t load at all No SSL certificate on the site Enable HTTPS — contact your host for a free SSL cert
Card charged but booking not confirmed Stripe webhook not configured or failing See the webhook section below
PayPal redirects but booking isn’t created Sandbox credentials used in live mode Switch PayPal to Live mode and use live Client ID and Secret
Stripe/PayPal options not in settings panel Pro licence not active Activate Pro licence under Hotel Booking → Licence

Stripe Webhook Not Working — Bookings Stuck as Pending

This is the number one Stripe support question. Symptom: a guest pays successfully, money appears in your Stripe Dashboard, but the booking in your WP admin stays as “Pending” and the confirmation email never sends. The payment went through — the webhook didn’t.

The webhook is how Stripe tells your WP site that a payment completed. Without it, your booking plugin never gets the signal to confirm the reservation. Here’s how to diagnose it:

  • Go to your Stripe Dashboard → Developers → Webhooks ↗
  • Click on your webhook endpoint and check Recent deliveries
  • If deliveries show a red error response (400, 401, 403, 500), your site is rejecting Stripe’s POST request
  • A 403 error usually means a security plugin (like Wordfence or iThemes Security) is blocking the webhook URL — whitelist the Stripe IP ranges in your security plugin
  • A 401 error usually means the Webhook Signing Secret in the plugin settings doesn’t match what Stripe has — re-copy the signing secret from Stripe Dashboard → your endpoint → Signing secret → Reveal
  • No deliveries at all means the webhook URL wasn’t saved correctly in Stripe — re-add the endpoint using the URL shown in Hotel Booking → Settings → Payments → Stripe

Test vs Live webhook: Stripe test mode and live mode require separate webhook endpoints. If you set up a webhook in test mode and then switched to live mode, you have a test webhook but no live one. Add a new endpoint in live mode with the same URL and events. This is the cause of most post-launch payment confirmation failures.

Hotel Booking Confirmation Emails Not Sending in WordPress

Guests complete a booking but never receive the confirmation email. Or it arrives in their spam folder. This isn’t a Modern Hotel Booking problem specifically — it’s a WP email delivery problem that affects every plugin that sends email. It happens because WordPress sends mail through PHP’s built-in wp_mail() function and mail() by default, and most email providers now treat mail sent this way as suspicious.

The guest’s confirmation email exists — it’s either in their spam folder or it bounced before delivery. The fix is to route all WP outgoing email through an authenticated SMTP connection instead of PHP’s default function.

Fix — install a free SMTP plugin

  1. Install WP Mail SMTP (free version) from the WP plugin directory — it has 4+ million active installs and is the standard solution
  2. In WP Mail SMTP settings, choose your mail provider — Gmail, SendGrid, Mailgun, or your hosting provider’s SMTP service all work reliably
  3. Follow the setup wizard to connect your chosen provider — this typically takes under 5 minutes
  4. Use the Send Test Email feature in WP Mail SMTP to confirm delivery before your next real booking
  5. Make a test booking on your site and verify the guest confirmation email arrives in the inbox — not the spam folder

Check your email template first: Before installing SMTP, confirm the booking confirmation email template is configured under Hotel Booking → Settings → Email Templates. If the “From” email address in your template uses a domain that doesn’t match your hosting (e.g. a Gmail address as the sender on a non-Gmail server), spam filters will reject it regardless of SMTP. Use an email address from your own domain as the sender.

Booking Form Not Showing on the Page

You’ve set up the plugin but the booking form is blank or invisible on the front end. Work through these in order — the cause is almost always one of the first three:

The booking form block wasn’t added to the page

Open the page in the WP block editor and check whether a Modern Hotel Booking block is actually present. The plugin uses native Gutenberg blocks — the booking form isn’t automatic, it needs to be added manually. Search for “Hotel Booking” in the block inserter and add the Booking Form block to the page.

A JavaScript conflict with another plugin or theme

Open your browser’s developer console (F12 → Console) and look for any red JavaScript errors. If you see errors from another plugin or theme, that conflict is preventing the booking form from rendering. Temporarily deactivate other plugins one by one to identify the conflict.

A caching plugin serving a stale version of the page

Clear all caches — your WP caching plugin cache, any server-level cache, and your browser cache — then reload the page. If the form appears after clearing, configure your caching plugin to exclude your booking pages from being cached.

No rooms configured in the plugin

The booking form requires at least one room to be configured before it displays. Go to Hotel Booking → Rooms → Add New and create your first room. Once saved and published, the booking form will have a room to display.

Apple Pay or Google Pay Not Appearing at Checkout

Apple Pay and Google Pay appear automatically through Stripe — no extra configuration in the WP plugin settings is required. But Apple Pay specifically has one additional requirement outside the plugin: domain verification in your Stripe Dashboard.

Apple Pay domain verification (one-time setup)

  1. Go to Stripe Dashboard ↗ → Settings → Payment Methods → Apple Pay
  2. Click Add a new domain
  3. Enter your site’s domain (e.g. yourhotel.com)
  4. Stripe provides a verification file you need to host at a specific path on your domain — follow the instructions in Stripe Dashboard to complete it
  5. Once verified, Apple Pay appears automatically for guests using Safari on iPhone, iPad, or Mac

Google Pay requires no domain verification and should appear automatically on Chrome (Android and desktop) once Stripe is active. If Google Pay isn’t showing, check that your Stripe account is approved for Google Pay in your Stripe Dashboard → Settings → Payment Methods.

General Modern Hotel Booking Troubleshooting Checklist

Before opening a support ticket, run through this checklist. It resolves the majority of hotel booking plugin problems that don’t fit the specific issues above.

  • Plugin is up to date — go to WP Admin → Plugins and update Modern Hotel Booking to the latest version
  • Pro licence is active (if using Pro features) — check under Hotel Booking → Licence
  • All caches cleared — caching plugin, server cache, browser cache
  • WordPress timezone set to a city — not a UTC offset
  • Site running on HTTPS — required for Stripe and PayPal
  • At least one room published under Hotel Booking → Rooms
  • Test a booking in private/incognito mode — rules out browser extension interference
  • Check browser console for JS errors — F12 → Console on your booking page
  • Temporarily disable other plugins to rule out a conflict — re-enable one by one to find the culprit
  • Check WP error logs — errors here often reveal the root cause faster than anything else

Frequently Asked Questions

Why is my iCal hotel booking sync showing dates a day off?

Timezone mismatch between your WP installation and the OTA calendar feed. Set your WP timezone to an actual city name (not a UTC offset) under Settings → General, match it in Hotel Booking → Settings, then re-sync your iCal feed.

Why is Stripe or PayPal not working in Modern Hotel Booking?

Check two things: (1) your API keys match your mode — test keys in test mode, live keys in live mode, (2) your site has a valid SSL certificate and runs on HTTPS. Stripe won’t process payments on non-HTTPS sites regardless of any other setting.

Why are hotel booking confirmation emails not sending in WordPress?

WordPress uses PHP’s default mail function which most spam filters block. Install WP Mail SMTP (free) and connect it to Gmail, SendGrid, or your host’s SMTP service. This fixes email delivery reliably and is the standard solution across all WP plugins that send email.

Why is the booking form not showing on my page?

Most likely: (1) the booking form block wasn’t added to the page in the WP block editor, (2) no rooms have been created yet under Hotel Booking → Rooms, (3) a caching plugin is serving a stale version, or (4) a JavaScript conflict with another plugin. Work through those four in order.

Do I need the Pro version to fix these issues?

No. The timezone fix, SMTP email fix, form troubleshooting, and general checklist all apply to both free and Pro. Stripe and PayPal errors only apply if you’re using Pro — those gateways are Pro-only. iCal date fixes apply to both versions.

Why is my Stripe webhook not working?

Check Stripe Dashboard → Developers → Webhooks → your endpoint → Recent deliveries for the error response. Common causes: a security plugin blocking Stripe’s POST request (whitelist Stripe IPs), wrong signing secret (re-copy it from Stripe), or a test webhook endpoint being used in live mode (add a separate live endpoint).

Why isn’t Apple Pay showing at checkout even though Stripe is connected?

Apple Pay requires domain verification in Stripe Dashboard → Settings → Payment Methods → Apple Pay → Add domain. This is a one-time setup in Stripe, not in the WP plugin. After domain verification, Apple Pay appears automatically for Safari users. Google Pay needs no domain verification and should appear automatically on Chrome.

Still not working?

Post on the WP.org support forum with your problem description and any error messages — or email directly for Pro support.

💬 WP.org Support Forum ↗

✉️ [email protected]

Modern Hotel Booking is a lightweight, zero-commission reservation engine and 24/7 AI Concierge receptionist for WordPress.

Keep 100% of your revenue and own your guest data.

© 2026 Modern Hotel Booking. All rights reserved.

Built with love for independent property owners.