Contents

Troubleshooting - Plugixa Car Parking

Start here. Most reports fall into one of these, and several of them are the plugin doing exactly what it was set up to do.

The booking form does not show

What you see Cause and fix
The shortcode itself, as text The plugin is not active, or the shortcode is misspelt. [plugixa_car_parking_map] prints as text on the free edition, because it exists only in Pro.
“No parking locations are available yet.” No location is Active, or every location the form offers is inactive or in the trash. Check Car Parking -> Locations.
Nothing at all, for visitors The shortcode’s form names a booking form that is Inactive or in the trash. Signed in as somebody who may edit forms, you see “This booking form is inactive, so visitors do not see it.” Activate or restore the form.
The standard form, not yours The form attribute names a slug no form has. The shortcode does not print an error for that. Copy the shortcode again from Car Parking -> Booking forms.
The form, but Check availability does nothing The location attribute names a location the form does not offer, and only one location is offered, so there is none chosen and no list to choose from. Correct or remove the attribute.
Two forms on one page share their custom fields The form’s settings are handed to the script once per page, so the first form wins. Use one booking form per page.

See Shortcodes.

REST requests fail

The booking form, the account page and the admin app all talk to /wp-json/plugixa-car-parking/v1/. Open https://example.com/wp-json/plugixa-car-parking/v1/ with your own domain. You should see a JSON description of the routes.

Result Cause and fix
The web server’s own 404 page The /wp-json/ address is not being rewritten to WordPress. Open Settings -> Permalinks and save, which rewrites the rules.
JSON with the code rest_no_route WordPress answered, but the route is not registered. For /booking-extras, /tax-rates, /pricing-rules, /customer-groups and /invoice that is normal on the free edition. Otherwise the plugin is not active.
A login page, or a 401 or 403 that is not JSON A security plugin or a server rule is blocking the REST API for visitors. The public routes must be reachable without signing in. See REST API.

A booking is refused

The server checks every booking again, whatever the form allowed. These are the messages a customer, or you in the admin, can meet.

Message Cause and fix
“The entry time is too soon or in the past.” The entry is sooner than Shortest notice (minutes) allows, or already past.
“The entry date is too far in the future.” The entry is beyond Furthest ahead (days).
“The exit time must be after the entry time.” The two times are the same or reversed.
“The car park is closed on the entry date” or “on the exit date” That weekday is closed in the location’s Opening hours, or the date has a Closed entry under Closures and special days.
“The entry time is outside the car park business hours.” or the same for the exit The time is outside that day’s hours, or outside the Special hours of that date.
“Sorry, those spaces are no longer available for the selected dates.” Somebody else took the last space between the customer’s check and their confirmation.
“This car park is taking another booking right now. Please try again.” Another booking for the same location was being saved at that moment. Trying again works. If it keeps happening, look for a stuck database connection.
“This request could not be processed.” The hidden anti-spam field of the form was filled in. A browser extension that fills every field can do this.

Three things explain most surprises here.

  • The booking window applies to you too. A booking taken in the admin goes through the same notice and furthest-ahead limits, so a walk-in that started an hour ago is refused. Use an entry time that is still ahead, or change the limits in Settings -> Bookings -> Booking window.
  • Only the two ends of a stay are checked against the hours. A stay may span a day the car park is closed. It is refused only when it starts or ends on one.
  • A closed entry beats special hours on the same date.

See Availability.

“Your session expired. Please refresh and try again.”

The pages print a security token that the booking, cancel and reschedule requests send back. A page served from a cache for a long time holds a token that is no longer valid.

Exclude the pages that hold the booking form and the account from your page cache, or shorten the cache lifetime to less than twelve hours.

“Too many requests. Please wait a little while and try again.”

The public routes are rate limited per visitor address. Real customers reach a limit in one situation: the site is behind a proxy or CDN, so every visitor arrives from the proxy’s address and shares one counter.

Tell the plugin which header carries the real address with the plugixa_carparking_client_ip filter, or raise the limits with plugixa_carparking_rate_limits. Both are shown in Hooks reference. The limits are listed in REST API.

Prices look wrong

Symptom Cause and fix
A space type shows 0.00, or books for free It has no price in the unit the location is billed in. A Per day price is not converted to hours. Add the matching price in the space type’s Prices panel.
Changing Default billing unit in Settings changes nothing Version 1.0.0 does not read that setting. Each location has its own Billing unit. Edit the location.
The one-off fee is charged several times It is charged once per space, so a booking for two spaces pays it twice.
I changed a booking’s dates in the admin and the total stayed the same An admin edit checks availability and keeps the price. Settle the difference with a payment or a refund, or cancel and book again.
Opening hours or prices I edited did not stick The Opening hours and Prices panels are saved by the form’s Save button. Closures and spaces save from their own dialogs.
Two discounts both applied PRO Every matching pricing rule applies, in priority order. Narrow the conditions, or change the priorities.
A group price did not apply PRO The rule looks at the account that is signed in while booking, not at the email typed into the form. The customer must sign in first. For a booking taken in the admin, that account is yours.
A weekend or seasonal rule missed a stay that covers those days PRO Dates, weekdays and times of a rule are tested on the entry moment only.
A fixed tax is charged once however many spaces are booked PRO A fixed rate is one amount per booking. Use a percentage if it should grow with the booking.

See Pricing.

Coupons

Symptom Cause and fix
No coupon field on the form Accept coupon codes is off in Settings -> Bookings, or the form has the coupon option switched off.
“That code is not valid for this booking.” The customer gets this one message whatever the reason. Check the coupon’s status chip on Car Parking -> Coupons, its dates, its Minimum spend and what it is Limited to.
“Another coupon already uses that code”, for a code that is not in the list A coupon in the trash still holds its code. Restore it, or delete it permanently.
The usage limit is reached although bookings were cancelled The count only goes up. Raise the Usage limit.
The per-customer limit does not stop a guest It counts signed-in customers. Use the overall Usage limit for guests.

See Coupons.

Pending bookings and holds

Symptom Cause and fix
A booking became Expired by itself A pending booking keeps its space for Hold an unconfirmed booking for (minutes), 30 by default, then expires. Confirm bookings sooner, raise the number, or set it to 0 to hold until you act.
A booking still reads Pending, but its space can be booked again Availability stops counting a lapsed hold at once. The status changes to Expired when the hourly job runs, which needs WP-Cron. On a quiet site, call wp-cron.php from a real cron job.
Reinstate, Restore or a mass Set status reports a failure Moving a booking back into a status that holds a space checks the hours and the free spaces again. On the single booking, use Do it anyway or Restore anyway. The mass action has no such option.
A dashboard or calendar figure is lower than the list Arrivals, departures and occupancy count only bookings in a status that holds a space. Bookings in the trash are left out everywhere.

Emails

Symptom Cause and fix
No email at all Check Settings -> Notifications -> Send booking emails. Then open the booking’s Message log panel. A Failed row shows the reason WordPress gave. A Sent row means WordPress accepted the message, so look at the mail set-up of the site: most hosts need an SMTP plugin for reliable delivery.
No link to the booking in the email Booking summary page is not chosen in Settings -> Bookings -> Pages.
The customer was told “is confirmed” while the booking is pending While the template is the wording the plugin came with, a pending booking is told it was received. Once you change the subject or the message, it is sent as you wrote it, for every status.
No Payment received email It is sent when a booking becomes paid in full, not on a part payment.
No text message or Telegram notice PRO Both follow the same master switch, Send booking emails. A text also needs a phone number on the booking and all three fields of the chosen provider. Twilio needs the number in international form, starting with +.
Telegram posts stopped after I edited the template PRO The message is sent as HTML. A stray < or & makes Telegram refuse it.
No reminder for a last-minute booking PRO A reminder is sent a fixed number of hours before arrival. A booking made with less notice than that is never due one. Reminders also need WP-Cron to run every hour.

See Emails and Message log.

Online payments PRO

Symptom Cause and fix
Stripe or PayPal is switched on but not offered A method is offered when it is switched on and configured. Stripe needs a secret key. PayPal needs a client ID and a secret. The settings section shows a warning while something is missing.
Paid at Stripe, unpaid on the site The Signing secret is empty or wrong, so the webhook is ignored, and the customer closed the tab before coming back. Set the signing secret of the right mode: test and live endpoints have different ones.
“PayPal authentication failed.” The sandbox switch does not match the credentials. It is on by default.
Approved at PayPal, never charged PayPal payments are captured when the customer comes back to the site. A customer who closes the window after approving has paid nothing. They can pay again from the booking summary.
After paying, the customer lands on the home page with no message Neither Booking page nor Booking summary page is chosen, and no published page holds the booking form. Choose one in Settings -> Bookings -> Pages.
A deposit is switched on but customers pay in full A deposit is offered only with an online payment method. With Pay on arrival alone the whole total is owed.
An unpaid online booking disappeared from the calendar It is a pending booking, and its hold expired. See the section above.

See Payments, Stripe and PayPal.

“This summary link is invalid or has expired.” and “Invalid or expired invoice link.” mean the token in the link no longer matches. The token is derived from the booking reference and the salts in wp-config.php. It does not expire with time. Changing the salts invalidates every link already sent.

Changing the salts also makes stored API keys PRO unreadable. Enter them again in Settings.

“PDF generation is unavailable on this server.” PRO means the PDF library that ships with Pro is missing from the installation. Install Pro again from its download.

The admin app

Symptom Cause and fix
“The files of the admin app are missing from this copy of the plugin” The copy was installed without its built files. Install the plugin again from its download.
“Two copies of Plugixa Car Parking are active.” The free and the Pro copy are both active. Only one runs. Deactivate the one you no longer need. Your bookings are shared and stay as they are.
A colleague sees the menu but every screen refuses They hold a capability that opens the app without the one the screen needs. Grant plugixa_carparking_view and the others they need with a role editor. See REST API.
Settings is missing from the menu It needs plugixa_carparking_manage_settings. The Advanced section also needs the WordPress manage_options capability.
“Somebody else changed this record while you were editing it.” Two people had the same record open. Reload to see their version, then make your change again.
“This booking has payments recorded against it, so it cannot be deleted permanently.” A booking with a completed payment can be trashed, not destroyed. Leave it in the trash.
I cannot find the message log It is not in the sidebar. Open a booking and click View all on its Message log panel.
Pro screens are missing after installing Pro Check which copy is active on the Plugins screen. The free copy has no Pro code.

Deleting the plugin did not remove my data

That is the default. Deleting removes the files and keeps the bookings. To erase everything, switch on Settings -> Advanced -> Erase all data when the plugin is deleted first, and make sure no other copy of the plugin is installed. See Privacy and uninstall.

Getting more help

  1. Read the page for the screen you are using.
  2. Note the exact message, and the booking reference if there is one.
  3. Contact support through your Plugixa account.

Quick Links