
Flexatech Stay Suite is a professional room-reservation system for WordPress. It manages hotel rooms, rate plans with date-specific price and availability overrides, realtime availability computed straight from bookings (no stale caches), time-limited holds that prevent overbooking, coupons, and modern payment gateways with signature-verified, idempotent webhooks.
Every amount is stored and computed as integer cents, and the total charged is always re-computed on the server at checkout, so a tampered client payload can never lower the price.
📚 Documentation and live demo: read the setup guide, then book a room on the demo site before you install anything.
Highlights
[check_in, check_out), so same-day turnover (a guest checks out and another checks in the same day) works correctly.flexatech-stay-suite/v1).Ready for more? Two add-ons pick up where the free plugin stops
The free plugin is enough to run a real property. The add-ons are for the money you are currently leaving on the table: the fifth guest who pays the same as the second, the Friday night that costs the same as a Tuesday, the double booking that came in from Airbnb while you were asleep.
Both are separate plugins that extend Stay Suite through its documented hooks. They never patch its code, never touch its tables, and every figure they add is computed on the server, so a guest cannot edit a fee out of the request. Install one the day you need it; nothing in your existing setup has to be redone.
A family of five in a room priced for two is a discount you never agreed to give. Occupancy puts the guest count back into the price:
Requires Flexatech Stay Suite 1.6.0 or newer.
Everything a property needs once bookings stop being occasional:
[flssp_payment_schedule order="CODE"] shows it to the guest.booking.created / booking.confirmed / booking.cancelled webhooks with a delivery log and exponential-backoff retries. Booking creation runs the free plugin’s own checkout service, so pricing is reused rather than reimplemented.Requires Flexatech Stay Suite 1.5.0 or newer.
📚 Documentation for both add-ons, plus the live demo, is at https://hotel.flexacommerce.com/
Room browsing works with no setup: single room pages at /rooms/{slug}/, the room archive at /rooms/, and room-type and amenity archives all render inside your active theme automatically. Your theme’s own room templates take priority, and every plugin template can be overridden from a flexatech-stay-suite/ folder in your theme. Return false from the flexatech_stay_suite/frontend/use_default_templates filter to turn the automatic routing off.
For the cart and checkout steps, create a few pages under Pages Add New and paste one shortcode into each, then Publish:
[flexatech_hotel_cart][flexatech_hotel_checkout][flexatech_hotel_thankyou][flexatech_hotel_account][flexatech_hotel_search] and [flexatech_hotel_rooms]The plugin finds these pages by scanning your published pages for each shortcode, so the titles and slugs are up to you. Put each flow shortcode on its own published page; if the same shortcode appears on more than one page, the first match is used. The Cart, Checkout, and Booking Confirmation pages are required because the flow redirects between them.
The three browsing shortcodes are also available as editor blocks: Room Search, Room List, and Single Room Booking.
Shortcode reference:
[flexatech_hotel_search]: date and guests search form. Optional redirect="URL" sends results to another page.[flexatech_hotel_rooms]: grid of bookable rooms. Optional per_page, columns, and room_type.[flexatech_hotel_room id="123"]: one room’s booking widget; id defaults to the current room on a room page.[flexatech_hotel_cart], [flexatech_hotel_checkout], [flexatech_hotel_thankyou], [flexatech_hotel_account]: the cart, checkout, confirmation, and account screens.The “Storefront pages” steps above are the full setup walkthrough; the FAQ below covers the common questions.
This plugin can connect to Stripe and PayPal to take online payments for bookings. Both integrations are optional: the plugin only contacts them if the site owner enables that gateway in Settings Payments with their own API keys and a guest actually selects it at checkout. The built-in Offline / bank-transfer gateway makes no external calls.
Card numbers are never sent to or stored on your server. Stripe collects card details in the browser (via Stripe.js) and your site only handles the resulting PaymentIntent id and client secret.
Stripe
Stripe processes credit-card payments when the Stripe gateway is enabled and a guest chooses to pay by card. Your site sends requests to the Stripe API (https://api.stripe.com) in these cases:
Your Stripe secret key is sent in the request authorization header so Stripe can authenticate the call.
Stripe’s terms and privacy policy: https://stripe.com/legal/ssa and https://stripe.com/privacy
PayPal
PayPal processes payments when the PayPal gateway is enabled and a guest chooses to pay with PayPal. Depending on sandbox or live mode, your site sends requests to https://api-m.sandbox.paypal.com or https://api-m.paypal.com in these cases:
PayPal’s user agreement and privacy policy: https://www.paypal.com/us/legalhub/useragreement-full and https://www.paypal.com/us/legalhub/privacy-full
Deactivation feedback
When you deactivate the plugin from the Plugins screen, a short optional feedback form asks why you are leaving. Whether you submit a reason or skip it, the plugin sends the result to the FlexaTech product-intelligence service at https://product-intelligence.flexacommerce.com so we can improve the plugin. This runs only in wp-admin, only around deactivation (and the following reactivation), and never blocks deactivation: if the service is unreachable, the plugin still deactivates normally.
What is sent: an anonymous per-site identifier (a random UUID generated on your site), the plugin slug, tier and version, the deactivation reason and any comment you choose to provide, and basic environment information (WordPress version, PHP version, and site locale). No email address, domain name, or raw IP address is sent.
FlexaTech service and privacy information: https://flexacommerce.com