Let customers book you directly on your own WordPress site. Resovu Booking puts your Resovu booking page into any post or page – as a booking form inside the page or as a button that opens the booking in a window, so visitors stay on your site. Resovu is an online booking system for small businesses
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 5.8 and PHP 7.4.
SourceWordPress plugins · Nov 11, 2026
01 / Source details
Aboutthistool.
Let customers book you directly on your own WordPress site. Resovu Booking puts your Resovu booking page into any post or page – as a booking form inside the page or as a button that opens the booking in a window, so visitors stay on your site.
Resovu is an online booking system for small businesses. A free plan is available.
Who it is for
Appointments – salons, barbers, massage and beauty studios, clinics and therapists, tutors and coaches, shops with in-store appointments. Visitors pick a service, a time and, optionally, a staff member.
Accommodation (stays) – holiday homes, apartments, cottages and guesthouses. Visitors pick a unit and dates in a calendar with nightly prices and see the total price before booking.
The plugin shows the right booking form automatically, based on how your business is set up in Resovu.
Features
Block for the block editor – add the “Resovu Booking” block and choose a booking form or a button in the block settings (WordPress 6.3 or newer).
Choose the service from a list – the block and the shortcode generator load your services or accommodation units from Resovu, so you don’t need to look up IDs.
Shortcode generator – build a shortcode in Settings → Resovu Booking and copy it into Elementor, Divi or any other page builder.
Accommodation search box – [resovu_search] or the “Resovu Accommodation Search” block: check-in, check-out and guests open the booking with these dates, in a window or on your booking page.
Block patterns – ready-made sections “Booking page”, “Service with a button” and “Accommodation with search” under Patterns → Resovu.
Booking form in the page – [resovu_booking] places the whole booking inside the page. It loads only when the visitor scrolls to it, so your page stays fast.
Booking button – [resovu_button] adds a button that opens the booking in a window on top of your page. Use it as many times as you like.
Floating button on the whole site – one setting shows a booking button in the bottom corner of every page, with your own text and color.
WooCommerce product pages – optionally adds a booking button to every product page; the booking includes the product name, its page address and its SKU.
9 booking languages – Czech, Slovak, English, German, Polish, Hungarian, Spanish, Norwegian and French. By default the booking follows the language of the page, also on multilingual sites with WPML, Polylang or TranslatePress; you can also set one language for the site or for each shortcode or block.
Privacy-friendly – optionally loads the booking only after a click, and works with the WP Consent API (Complianz, CookieYes and other cookie banners). The embedded booking sets only necessary cookies and shows no cookie banner of its own.
Thank-you page – after a finished booking the visitor can go to a page of your choice, for example to count conversions.
Preselect a service – link a button straight to one service with service="…" .
Know where the booking came from – context="auto" sends the title and address of the current page with the booking (for example the product or room page the visitor was on); context_code="…" adds your own short code such as a SKU.
Fits your theme – the button uses your theme’s button style and accepts your own CSS class.
Address check and Site Health – when you save the settings, the plugin checks that your business address exists in Resovu; Tools → Site Health shows whether the booking page and the booking script are reachable.
Works with cache and optimisation plugins – WP Rocket, Autoptimize, LiteSpeed Cache, SiteGround Optimizer and Cloudflare Rocket Loader leave the booking script alone.
For developers – PHP filters and JavaScript events for your own tracking (see the FAQ).
Lightweight – the booking script loads only on pages that need it. No database tables and no scheduled tasks; the settings are removed when you delete the plugin.
Admin in your language – the plugin’s settings and block are translated into Czech, Slovak, German, Polish, Hungarian, Spanish, Norwegian and French.
How it works
01Create your business in Resovu (a free plan is available) and set up your services or accommodation units.
02Install and activate this plugin.
03Go to Settings → Resovu Booking and enter your business address in Resovu (the part after resovu.com/).
04Add the Resovu Booking block, [resovu_booking] or [resovu_button] to any page or post – or switch on the floating button.
Shortcodes
[resovu_booking] – the booking form inside the page. [resovu_button] – a button that opens the booking in a window. [resovu_search] – the accommodation search box (check-in, check-out, guests).
Optional attributes (for all shortcodes unless noted):
text="Book a visit" – button text ( [resovu_button] only). Without it the button says “Book now” in the booking language.
class="my-class" – an extra CSS class for the button ( [resovu_button] only).
service="…" – the ID of a service to preselect. You find it in the address of the service on your Resovu booking page, after serviceId= .
context="auto" – sends the title and address of this page with the booking; context="Any name" sends a name of your own instead.
context_code="SKU-123" – a short code (SKU, product or room code) sent with the booking.
lang="de" – the booking language for this shortcode: cs, sk, en, de, pl, hu, es, no or fr.
tenant="other-business" – shows a different Resovu business than the one in Settings.
lang="auto" – the language of the page (also with WPML, Polylang or TranslatePress).
lazy="false" – loads the booking form at once instead of when the visitor scrolls to it ( [resovu_booking] only).
consent="click" – loads the booking form only after a click; consent_text="…" sets your own text ( [resovu_booking] only).
redirect="…" – the address or page ID of a thank-you page shown after a finished booking.
target="page" and url="…" – the search box opens the booking on your page with [resovu_booking] (address or page ID) instead of in a window ( [resovu_search] only).
guests="2" – the preset number of guests ( [resovu_search] only).
Example: [resovu_button text="Book this massage" context="auto"]
Useful links
Resovu website
Help center
Support forum
External services
This plugin connects to Resovu, the booking service it embeds.
What is loaded: the script https://www.resovu.com/widget.js and, inside it, your booking page from https://www.resovu.com.
When: only on pages that contain a Resovu block, the [resovu_booking] , [resovu_button] or [resovu_search] shortcode, or the WooCommerce booking button – and on every page when the floating button is switched on. With “Load after a click” the booking page is loaded only after the visitor clicks.
What is sent: the visitor’s browser requests these files from Resovu, as with any embedded content. With context="auto" (and on WooCommerce product pages) the page title, address and product code are sent with the booking. The data a visitor enters into the booking form goes to Resovu and to the business that runs the booking page.
Address check: when you save the settings and when an administrator opens Tools → Site Health, your server requests your public booking page https://www.resovu.com/your-address/embed (and, in Site Health, https://www.resovu.com/widget.js) to check that they are reachable. Only the address is sent.
Service list: in the block editor and on the settings page, your server requests the public list of your services or units from https://www.resovu.com/api/public/v1/catalog/your-address (names, categories and durations, no personal data) for users who can edit posts. The answer is kept for 10 minutes.
No other data is sent: the plugin has no tracking or usage statistics.
Service provider: Resovu – Terms: https://www.resovu.com/en/terms – Privacy: https://www.resovu.com/en/privacy
See it in action
Screenshots & previews.
Appointment booking inside a page with [resovu_booking] (demo business).Accommodation booking inside a page with [resovu_booking]: choose a unit, then dates and price (demo property).The booking window opened by the button [resovu_button]; the visitor stays on your site.Settings → Resovu Booking: your business address in Resovu and the booking language.
02 / Source details
Gettingstarted.
01In WordPress go to Plugins → Add Plugin, search for “Resovu Booking”, click Install Now and then Activate.
02Go to Settings → Resovu Booking.
03Enter your business address in Resovu – the part after resovu.com/. You find it in Resovu under Settings → Embed on website.
04Choose the booking language or keep “Same as the page”.
05Add the Resovu Booking block, [resovu_booking] or [resovu_button] to any page.
03 / Source details
Frequently asked questions.
Do I need a Resovu account?
Yes. The plugin shows your Resovu booking page on your site. You can create an account on the free plan .
Is the plugin free?
Yes, the plugin is free and has no paid version. What you can do in the booking (number of services, staff and features) depends on your Resovu plan; a free plan is available.
I already have a Resovu account. What do I do?
Enter your business address in Settings → Resovu Booking. Your services, prices and opening hours come from Resovu, so there is nothing to set up twice.
Does it work for accommodation as well as appointments?
Yes. If your business in Resovu takes stays, the same block and shortcodes show a unit and date picker with nightly prices; otherwise they show services and times.
Where are bookings managed?
In Resovu. New bookings, changes and cancellations are handled in your Resovu account, not in WordPress.
Where is the booking data stored?
The data a visitor enters into the booking form goes to Resovu and to the business that runs the booking page. The plugin stores nothing in your WordPress database except its own settings. See the External services section and the Resovu privacy policy .
Which language will my visitors see?
By default the language of the page, if Resovu supports it (Czech, Slovak, English, German, Polish, Hungarian, Spanish, Norwegian or French); otherwise English. On multilingual sites with WPML, Polylang or TranslatePress the booking follows the language of each page. You can set one language in Settings, in the block or with lang="…" in a shortcode.
Can I use it with the block editor, Elementor or other page builders?
Yes. In the block editor use the Resovu Booking block. In Elementor and other page builders paste the shortcode into a Shortcode widget or a text module – the shortcode generator in Settings → Resovu Booking builds it for you.
Can I put a booking button on every product or room page?
Yes. With WooCommerce switch on “Show a booking button on product pages” in Settings → Resovu Booking. On other pages use [resovu_button context="auto"] – the business then sees in the booking which page the customer came from. Add context_code="…" for a SKU or room code.
Can I change the button text or style?
Yes: [resovu_button text="Book a visit" class="my-button"] . The button also uses your theme’s button style. The floating button has its own text, color and position (bottom right or left) in Settings.
Can I use it on more pages?
Yes. Forms and buttons can be used on as many pages as you like, also several times on one page.
Is it GDPR-friendly? Does it set cookies?
The embedded booking sets only necessary cookies (for example the booking language), no analytics or marketing cookies, and shows no cookie banner of its own. If you want nothing to load from Resovu before the visitor agrees, switch on “Load after a click” in Settings → Resovu Booking or use consent="click" . With the WP Consent API plugin (used by Complianz, CookieYes and other cookie banners) the form also waits for a click until the visitor allows functional cookies, and the Resovu cookies are listed in your cookie policy.
Does it work with WP Rocket, Autoptimize, LiteSpeed Cache or Cloudflare?
Yes. The plugin excludes the booking script from combining, deferring and “delay JavaScript” in WP Rocket, Autoptimize, LiteSpeed Cache and SiteGround Optimizer, and from Cloudflare Rocket Loader. With other optimisation plugins exclude “resovu” in their JavaScript settings if the booking does not appear.
Does it work with WPML, Polylang or TranslatePress?
Yes. With the language “Same as the page” (the default) the booking opens in the language of each page. Button texts can be translated with WPML String Translation or per page in the shortcode.
Can I measure bookings in Google Analytics, Tag Manager or Meta Pixel?
Yes. After a finished booking the Resovu script sends the event resovu_booking to the dataLayer (Google Tag Manager), generate_lead to Google Analytics 4 (gtag) and Schedule to Meta Pixel, when these tools are on your site – they follow your own consent settings. It also fires the JavaScript events resovu:booking (detail: tenant, service, bookingRef, value, currency, serviceName), resovu:open and resovu:close on window . Example: window.addEventListener('resovu:booking', function (e) { console.log(e.detail.bookingRef); });
Can I send visitors to a thank-you page after the booking?
Yes. Choose a page under Settings → Resovu Booking → After the booking, or set redirect="…" (an address or a page ID) in a shortcode or block. The visitor goes there right after the booking is finished. When the customer pays by card online, they go to the payment page instead and the thank-you page is not shown; you see these bookings in Resovu.
How does the accommodation search box work?
[resovu_search] (or the “Resovu Accommodation Search” block) shows check-in, check-out and guests. By default the booking opens in a window with these dates. With target="page" url="…" it opens your own page with [resovu_booking] and passes the dates in the address (?checkin=…&checkout=…&guests=…).
Are there hooks for developers?
Yes: the PHP filters resovu_booking_shortcode_atts (attributes of a shortcode or block before they are checked), resovu_booking_html (the finished HTML) and resovu_booking_script_attributes (attributes of the booking script tag), and the JavaScript events described above.
Nothing shows on my page.
Check that your business address is filled in under Settings → Resovu Booking; when you save, the plugin tells you whether the address was found. Logged-in editors see a short reminder in place of the form when the address is missing; visitors see nothing. Tools → Site Health also shows whether Resovu is reachable. If you use a cache or optimisation plugin that combines or delays JavaScript, clear its cache; if the booking still does not appear, exclude “resovu” in its JavaScript settings.
FinderPress Media Auditor helps site administrators scan for broken images, missing Media Library files, unreachable media URLs, and other media issues across WordPress content. Use it to audit images, video, audio, PDFs, featured images, and attachment files without sending scan data to an external
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati