Directory / plugin

ReservePro Booking Widgets

v1.5.1 · by Ralph Lorenc

Take bookings on your WordPress site: offer cards, schedules, court availability and sign-up buttons from your ReservePro account.

View on WordPress.org

About this plugin

ReservePro is an online booking and payment system for dance and fitness schools, sports clubs and courts, camp and course organisers, shooting ranges and driving schools. You run your offer, sign-ups and payments in the ReservePro panel; your customers book online and pay by card, BLIK or Przelewy24 (through Stripe).

This plugin puts that offer on your WordPress site. Visitors see your classes, dates, prices and free places on your own pages, click “Sign up” and finish the booking and the payment on your ReservePro booking site.

First: a ReservePro account

The plugin is free, but it has nothing of its own to show — it displays widgets from your ReservePro account.

  • Create the account yourself, online, at reservepro.app.
  • You can start for free. What is free and what is paid is described in the price list.
  • Add your first offer in the ReservePro panel — a class, a court, a course or an event. Only then is there something to show in WordPress.

Without a ReservePro account the plugin shows nothing.

The widgets you get

  • Offer cards — a photo, the place, the dates, the level, the instructor, the price and a sign-up button. One card or a grid of cards you choose. (Screenshot 1)
  • Schedule with filters — all your weekly classes, courses or drop-in sessions as cards, with filters by location, instructor and level. (Screenshot 2)
  • Weekly calendar — the same classes as a Monday-to-Sunday timetable of days and hours.
  • Court and station availability — a strip of days and a grid of free and taken hours for every court, lane or station; a click on a free hour opens the booking with that hour chosen. (Screenshot 3)
  • Sign-up button with free places — a button for any place on a page, with a line such as “last places” under it; it turns into “Notify me” when the offer sells out. The number of free places is also available as plain text.
  • Offer hero — a large presentation of one course, camp, trip or event with a photo, the date, the price and a choice of group or date.
  • Instructors with free hours — instructor cards with a week of free and taken hours for individual lessons.
  • Cabin calendar — a monthly availability calendar for a cabin or an apartment.
  • “Looking for a gift?” banner and gift vouchers — a strip in your colours that leads to your gift vouchers, and voucher cards in the card grid. (Screenshot 4)
  • QR code — a code with the link to an offer, for a poster or a leaflet.
  • AI assistant (beta) — a chat bubble that answers visitors’ questions about your offers, dates, prices and free places. We are testing it with selected organisers. It is not part of the standard plans yet; terms and pricing will be announced after the tests. Want to join? Write to [email protected].

Start in 3 steps

  1. Create a ReservePro account and add an offer at reservepro.app.
  2. Install the plugin and click “Connect with ReservePro” in Settings ReservePro. You confirm in your ReservePro panel and come back to WordPress with “Connected to …”. (Screenshot 6)
  3. Add the “ReservePro widget” block to a page, choose the widget and pick the offer from a list. The editor shows a live preview. (Screenshot 5)

Why it works this way

  • Part of your page, not an iframe. Your WordPress server fetches the widget and prints it in the page HTML. Search engines see your real offer, nothing pops in after the page has loaded, and the widgets work without JavaScript in the visitor’s browser.
  • It keeps itself up to date. Free places, “sold out” and waiting-list states and court availability refresh while the page is open. You never edit the page after a booking.
  • No API keys. Connecting takes one click and nothing secret is stored in WordPress — the widgets show only what is already public on your booking site.
  • Your theme stays as it is. Widget styles ship with the plugin and apply only to the widgets, in the colours you set in ReservePro.

Block

Add the “ReservePro widget” block in the block editor (search for “ReservePro”), choose the widget, then pick the offer and the group or date (or the gift voucher) from the lists in the block settings — no codes to copy. The editor shows a live preview, and the published page shows exactly the same widget.

Shortcode

Prefer shortcodes, or use a page builder? Every widget is also available as a shortcode:

[reservepro widget="course-card" offer="offer-slug"]

The ready-made shortcode for every widget and offer, with all options, can be copied from your ReservePro panel (Widgets “WordPress” tab). A [reservepro] shortcode in a Shortcode block can be turned into the block with the block toolbar (Transform).

Widget names: sign-up button (cta), offer card (course-card), card grid (grid), “Looking for a gift?” banner (gift-banner), schedule with filters (schedule), weekly calendar (calendar), offer hero (jambo), free places label (remaining), court availability (resources-availability), cabin calendar (stay-calendar), instructors with hours (instructor-hours), QR code (qrcode), AI assistant (beta) (assistant).

Examples:

[reservepro widget="cta" offer="offer-slug" cta="Sign up"]
[reservepro widget="schedule" preset="classes"]
[reservepro widget="jambo" offer="offer-slug"]
[reservepro widget="grid" offers="offer-a,offer-b"]
[reservepro widget="grid" offers="offer-a,voucher-slug"]
[reservepro widget="gift-banner"]
[reservepro widget="gift-banner" voucher="voucher-slug"]
[reservepro widget="qrcode" offer="offer-slug"]
[reservepro widget="assistant" offer="offer-slug"]

Questions? Write to [email protected].

External services

This plugin connects to ReservePro (https://reservepro.app), the booking service that provides the widgets. Without it the plugin has nothing to show. No request is made until an administrator clicks “Connect with ReservePro” or enters the booking site address in Settings ReservePro.

What is sent, when and where:

  • Connect with ReservePro — when the administrator clicks this button, their browser is sent to the ReservePro panel (https://reservepro.app/admin/connect/wordpress, or the panel of the booking site already entered) with the address of the plugin settings screen and a random one-time code. After the administrator logs in and confirms, the browser comes back with the public organiser identifier and booking site address, which the plugin then verifies with the connection check below. No password, key or token is exchanged or stored.
  • Connection check — when the administrator saves the settings, clicks “Test connection”, comes back from “Connect with ReservePro”, or (once) when settings saved by version 1.0 are upgraded: a request from your WordPress server to <your booking site>/api/tenant (for example https://yourname.reservepro.app/api/tenant). It returns the public name and identifier of the organiser.
  • Widget content — when a page with the [reservepro] shortcode or the ReservePro block is displayed (or previewed in the block editor) and the cached copy is older than the cache lifetime: a request from your WordPress server to https://widgets.reservepro.app/api/<organiser identifier>/widgets/<widget> with the shortcode parameters (offer, group, date and display options) in the query string.
  • Widget refresh — while a page with a widget that changes (sign-up button, free places, court availability, calendars, cards) is open and the browser tab is visible, the plugin’s script in the visitor’s browser asks your WordPress site (REST route /wp-json/reservepro/v1/widget) for the current widget; your WordPress server answers from its cache or, when the cached copy is older than the cache lifetime, makes the “Widget content” request above. The visitor’s browser does not contact ReservePro for this.
  • Offer list in the block editor — when an editor opens the settings of the ReservePro block and the cached list is older than the cache lifetime: a request from your WordPress server to https://widgets.reservepro.app/api/offers?tenant=<organiser identifier>. It returns the public list of offers (names, booking types, groups and dates) shown in the block settings. Together with it: a request to <your booking site>/api/voucher-offers, which returns the public list of your published gift vouchers (the plugin keeps only their names and addresses) for the “Looking for a gift?” banner and the card grid. The lists are available only to logged-in users who can edit posts.
  • All server requests carry the IP address of your WordPress server and a User-Agent header with the plugin version and your site address. No data about your visitors is sent by these requests.
  • QR code widget and images — the visitor’s browser loads the QR code image from https://widgets.reservepro.app and the offer photos shown in widgets from your ReservePro booking site, which shares the visitor’s IP address and browser information with ReservePro as with any web resource. Links in widgets lead visitors to your ReservePro booking site.
  • AI assistant widget (only when you add [reservepro widget="assistant"] or the block with “AI assistant”) — the visitor’s browser loads the script <your booking site>/widgets/assistant.js and, when the visitor opens the bubble and asks a question, sends the question, the address of the current page and the optional offer context to <your booking site>/api/assistant/messages; the answer is streamed back. ReservePro processes the question with an AI model to answer it (see the ReservePro privacy policy) and keeps only statistics of the conversation (no message texts). Nothing is sent until the visitor types a question.

ReservePro terms of use: https://reservepro.pl/terms-of-use
ReservePro privacy policy: https://reservepro.pl/privacy-policy

Plugin tags