Troubleshooting
Every problem below has been reproduced or read directly from the extension's own behaviour. Work down the "How to check" column before changing anything.
The admin screen
"You are not authorized. Kindly remove the custom script and add the license key."
| Cause | No valid licence key is saved |
| How to check | Open Webkul WC Addons → License and look at the saved key |
| Fix | Enter the purchase code from your Webkul or CodeCanyon account and save, then reload the Booking Management System screen |
Until the key is there, the tabs do not render and none of the booking screens will load.
"Booking Reservation could not be activate. It requires WooCommerce plugin in order to work."
| Cause | WooCommerce is missing or inactive |
| How to check | Plugins → Installed Plugins — is WooCommerce active? |
| Fix | Activate WooCommerce, then deactivate and reactivate this plugin so it sets itself up properly |
The Booking Management System menu is missing
| Cause | Your user does not have the Manage WooCommerce capability |
| How to check | Users — what role is your account? |
| Fix | Use an administrator or shop manager account |
"Select Product First"
| Cause | You opened a product-specific tab without choosing a product |
| Fix | Click Open Global Settings or Change Product and pick a bookable product |
The product page
There is no booking panel on the product
| Cause | The product is not marked bookable |
| How to check | Products → edit → Product data → General — is Bookable Product ticked? |
| Fix | Tick it, choose a Booking Type, and update the product |
The calendar shows no available days at all
Work through these in order:
- Is the product's booking window open? Check Max Advance Booking (days) on the Product Settings tab, and Default Window (days) under Global Settings → Products → Global Availability.
- Is a rule closing everything? Open the Availability tab and read the What it does column on each rule. A weekday rule with the wrong numbers, or a Close entire month(s) rule, will empty the calendar. Weekdays are
0Sunday to6Saturday. - Is the cutoff too long? A large Cutoff Before Start (hours) pushes the first bookable day into the future.
- Are all the resources busy or closed? Check the resource schedules on the Resources tab.
- Is everything already booked? Bookings in pending, confirmed or processing hold their slots. Look at the Booking Dashboard calendar.
Tips
Use Search Builder → Search Availability with a specific From and To. It answers for one window at a time and is far quicker than reloading the storefront.
Some days are greyed out that should be open
The most common cause is a weekday rule with the wrong numbers. 1,2,3,4,5 is Monday to Friday — Saturday is 6, and Sunday is 0, not 7. Add 6 if you open on Saturdays.
Next most common: a Block specific dates (holidays) rule with a date that is no longer relevant, or a closure window whose end date has been mistyped.
"Please provide valid booking dates."
| Cause | Fix |
|---|---|
| No dates were chosen | Pick dates on the calendar before clicking Book now |
| The page was open for a long time and its security token expired | Reload the page and re-select |
| A required field for that booking type is empty (a start time, a duration) | Fill every field in the panel |
"This product allows up to N people per booking."
The guest count is above the product's maximum. Either lower it, or raise Maximum people per booking on the Persons tab.
Remember that when person types are in use, the total across all types is the guest count — three adults and two children is five people, not two.
"Selected booking slot is not available."
| Cause | How to check |
|---|---|
| Somebody booked it first | Filter the Bookings list by that product and look at the dates |
| An availability rule blocks it | Read the rules on the Availability tab |
| The chosen resource is taken or off-duty | Try Best available instead, and check that resource's schedule |
| The product is Private booking and one booking already covers the window | Switch to Shared capacity if several bookings should be allowed |
The price is zero, or a percentage rule does nothing
The product has no price. Set a Regular price on Products → edit → Product data → General. Everything — the base rate, deposits, percentage discounts — is calculated from it.
The price does not update as the customer chooses
Check Dynamic Pricing Rules → Enable Dynamic Pricing Rules and Recalculate On Person Change under Global Settings → Products → Global Pricing. Also confirm the rule you expect is Active and that its months, dates or weekdays actually match the selection.
A price adjustment is not applying
| Check | Where |
|---|---|
| Is the rule Active? | The Status column on the Pricing tab |
| Do its months / dates / weekdays match? | The What it does summary |
| Is a lower-priority number rule winning? | The Priority column — lower runs first |
| Is it on the right tab? | Slot, resource and person-type adjustments live on Availability, Resources and Persons |
Cart, checkout and orders
The customer is taken straight to checkout instead of the cart
That is the intended behaviour for bookable products — a booking holds a slot, so it goes straight to payment. To change it, use Catalog mode or Quote flow mode under Product Settings → Global Settings → Storewide booking options.
The cart line does not show the booking details
The details are attached when the booking is added. If they are missing, the product was probably added to the cart some other way — through a "quick add" button, an old bookmarked add-to-cart link, or a plugin that bypasses the booking form. Empty the cart and book again from the product page.
The booking total and the order total do not match
When a deposit or instalment rule applies, the cart and order total is the pay-now amount, while the booking's total is the full value. The order line item records both as Booking Pay Now and Booking Balance Due. This is expected.
A booking shows "Booking/Order mismatch"
The booking status and the order status disagree — for example the order was refunded but the booking still says confirmed. Open Edit on the booking, set the booking status you want and the matching Order Status, and save once.
An order was placed but no booking appears
| Check | |
|---|---|
| Was the product actually bookable when the order was placed? | Bookings are only created for bookable products |
| Is the booking there but filtered out? | Clear the Status, Product ID and Action Queue filters |
| Did the order fail before completing? | Bookings are created as the order is processed |
Customer account
There is no Cancel or Request reschedule button
Both are off by default. Enable them under Global Settings → Bookings → Booking Status Management — see My Bookings.
If they are enabled and still missing, the booking is probably inside the notice window you set, or it is already cancelled, refunded, expired or completed.
"Cancellation window has passed for this booking."
The booking starts sooner than your Cancellation Window Duration allows. Shorten the window if it is too strict, or cancel the booking yourself from the admin.
"Security check failed. Please try again."
The page was open too long and its one-time token expired. Reload My account → My Bookings and try again.
The My Bookings page is empty for a customer who has definitely booked
| Cause | Fix |
|---|---|
| They booked as a guest | Guest bookings are not tied to an account; find them by order instead |
| They are signed in to a different account | Check the email on the order |
The booking was created manually with Customer ID 0 | Edit the booking and set the correct Customer ID |
Reminders and email
Automatic reminders are not being sent
| Check | |
|---|---|
| Is Enable Reminder Jobs on? | Global Settings → Notification and Alerts → Reminders |
| Is the specific reminder type enabled? | Same section — Before start, After start, and so on |
| Is WP-Cron working? | Automatic reminders run hourly on WordPress's scheduler. If your host has disabled it, or the site gets very little traffic, they will not fire |
| Does your site send email at all? | Trigger any WooCommerce email as a test |
Manual Send reminder from the booking list always works, so use it to separate "email is broken" from "the schedule is not running".
"No customer email found for this booking."
The booking has no customer attached — usually a manual booking created with Customer ID 0. Edit the booking and set a real customer.
There is no booking confirmation email
Version 4.0.0 does not add its own booking-confirmation template. The customer's confirmation is the ordinary WooCommerce order email, which already carries the booking dates, guests, resource, services and extras on the order line. Edit your WooCommerce order email templates if you want the wording to mention the reservation. See Notifications and Reminders.
SMS is not going out
Both Enable Twilio SMS Hook and all four Twilio credentials must be filled in. If either is missing the message is skipped silently. Check the values in your Twilio console and re-save.
Automation
Pending bookings never expire / bookings never auto-complete
| Check | |
|---|---|
Is the hours value 0? | 0 switches that job off |
| Is WP-Cron running? | The three lifecycle jobs and the reminder job all run hourly on the scheduler |
Everything still works by hand from the Bookings list in the meantime.
Calendar sync
A connection never imports anything
- Filter the sync log by that provider — see Logs and Tools. An empty result means the sync has never run.
- Check the connection Status is Sync enabled, not Sync paused.
- Press Sync now and read the message. It reports how many events were imported and how many conflicted.
- Check the feed URL by pasting it into a browser — an expired or mistyped link is the usual culprit.
- Confirm WP-Cron is running for scheduled syncs.
Imported events did not block the dates
They were reported as conflicts because a booking already covered that window. Cross-check in the Bookings list and resolve by hand.
Data and maintenance
The migration from WooCommerce Bookings created duplicates
The live migration was run more than once over the same records. Remove the duplicates from the booking list, then always run Dry Run first, read the report, and run the live pass once per batch. See Logs and Tools.
The booking table has grown very large
Use Preview Eligible Rows, then Dry Run Purge, then Purge Eligible Rows in the Compatibility and Scale Audit card. Only finished bookings are eligible, and the WooCommerce orders behind them are untouched. Take a database backup first.
Still stuck?
Collect this before you raise a ticket:
- WordPress, WooCommerce, PHP and plugin versions (Tools → Site Health → Info)
- The exact message you see, word for word
- The booking or order number involved
- A screenshot of the settings page concerned — with your licence key and any Twilio credentials cropped out
Then raise a ticket at webkul.com/ticket.
Next step
- FAQ — shorter answers to common questions.
