Skip to main content

Install the WaveRez Booking Portal Lightframe

Step-by-step guide to embedding the WaveRez Booking Portal as a lightframe pop-up on a partner's website, plus optional calendar widgets and direct-link variations.

Written by Amber Dudley

Overview

The WaveRez Booking Portal Lightframe is a JavaScript snippet that turns booking links on a Partner's website into pop-up booking flows — guests click a link or button on the Partner's site and the WaveRez Booking Portal opens in an overlay rather than navigating away from the site. Installation requires injecting one script site-wide (typically into the footer), then linking buttons or elements to the Booking Portal URL or a Trip-specific URL. Optional widgets are also available to embed a single-Trip calendar, a full calendar of all availability, or a search-by-date filter directly into a page. This article covers the script installation, the Book button setup, and all three optional widget methods.

Prerequisites

You must have access to edit the Partner's website code or use a code-injection plugin (such as WP Code for WordPress). You also need access to the WaveRez Booking Portal URL for the Partner's account, which is found by clicking Booking Portal in the marketing section of the WaveRez Admin menu — this opens the customer-facing booking portal in a new tab and the URL bar shows the link to use.


Install the Lightframe Script Site-Wide

The Lightframe script is a single line of JavaScript that must be loaded on every page of the Partner's website where booking links exist. Once the script is active, any link pointing to the Partner's WaveRez Booking Portal opens in a lightframe pop-up rather than navigating the guest away from the site.

Step 1 — Copy the WaveRez Lightframe script:

<script type="text/javascript" src="https://reservations.waverez.com/assets/dist/widget/js/_trip_book_widget.js"></script>

This is the same script for every WaveRez Partner — it does not need to be customized per account.

Step 2 — Inject the script into the footer of the Partner's website, site-wide. On WordPress, the recommended method is the WP Code plugin, which lets you add custom code to the site's footer without editing theme files.

⚠️ Inject the script into the footer, not the header, when possible. Header injection is technically supported, but depending on the page builder and its settings, header injection can cause loading or rendering issues. Footer injection is the safer default for WordPress sites.

Step 3 — Save and publish the change in the code-injection plugin or theme. The script becomes active immediately on every page where it is loaded.


Convert Existing Buttons and Links into Lightframe Pop-Ups

Once the Lightframe script is active on the website, any link that points to the Partner's WaveRez Booking Portal automatically opens in a lightframe pop-up instead of navigating the guest away from the site. No additional code is needed on individual buttons — the script handles the conversion automatically as long as the link target is a WaveRez Booking Portal URL.

Step 1 — Find the Partner's Booking Portal URL. Log into WaveRez Admin and click Booking Portal in the marketing section of the menu. This opens the customer-facing booking portal in a new tab. The URL in the browser's address bar is the Partner's general Booking Portal link.

Step 2 — For Trip-specific links, navigate to the individual Trip's listing page on the Booking Portal. The URL in the browser's address bar is the Trip-specific link to use on a button or element.

Step 3 — Replace the link target on each button or element on the Partner's website with either the general Booking Portal URL or the Trip-specific URL. Any link, button, or element that points to a WaveRez Booking Portal URL will automatically open in the lightframe pop-up once the script is active.


Embed a Single-Trip Calendar Widget (Optional)

The Single-Trip Calendar Widget displays a calendar for a specific Trip directly inside a page on the Partner's website. Guests can navigate through days to see what departure times are available, and clicking a time opens the lightframe pop-up with ticket options. The widget automatically fits the container it is placed inside, so its size adapts to the page layout.

This widget requires the Lightframe script to be active site-wide. If the script is not yet installed in the website's footer, install it first using the script installation steps in the section above.

Step 1 — Add an HTML element to the page where the calendar should appear. Most page builders provide an HTML or Code element for this purpose.

Step 2 — Paste the following code into the HTML element:

<div waverez-src="TRIP_URL_GOES_HERE" waverez-type="calendar"></div>

Step 3 — Replace TRIP_URL_GOES_HERE with the URL of the specific Trip listing on the WaveRez Booking Portal. To find this URL, navigate to the individual Trip's listing page on the Booking Portal and copy the URL from the browser's address bar.

Step 4 — Save and publish the page. The widget loads on the page and displays the Trip's calendar with available departure times. When a guest clicks a time, the WaveRez Booking Portal lightframe opens with the ticket options for that departure.

The Single-Trip Calendar Widget can only be used with Trip-specific URLs. It cannot display general Booking Portal availability — only the Trip whose URL is provided in the waverez-src attribute.

WaveRez Single-Trip Calendar Widget embedded on a webpage showing available departure times for a Trip.


Embed a Full Calendar Widget (Optional)

The Full Calendar Widget displays a comprehensive calendar view of the Partner's entire Booking Portal availability directly inside a page on the Partner's website. This is broader than the Single-Trip Calendar Widget — it shows availability across multiple Trips rather than a single Trip.

This widget requires the Lightframe script to be active site-wide. If the script is not yet installed in the website's footer, install it first using the script installation steps in the section above.

⚠️ The Full Calendar Widget is recommended for advanced users only. This widget makes a high volume of API requests to load comprehensive availability across the Booking Portal, and it is set to lazy-load. It is not recommended for use at the top of any webpage. Less-experienced website operators should use the Single-Trip Calendar Widget or a standard Booking Portal link instead.

Step 1 — Add an HTML element to the page where the calendar should appear. Most page builders provide an HTML or Code element for this purpose.

Step 2 — Paste the following code into the HTML element:

<div waverez-src="BP_LINK_GOES_HERE/full-calendar" waverez-type="full-calendar"></div>

Step 3 — Replace BP_LINK_GOES_HERE with the Partner's general Booking Portal URL — the URL shown when Booking Portal is opened from the marketing section of the WaveRez Admin menu. Keep the /full-calendar suffix at the end of the URL.

Step 4 — Save and publish the page. The Full Calendar widget lazy-loads on the page and displays availability across the Partner's full Booking Portal. When a guest clicks a date and time, the WaveRez Booking Portal lightframe opens with the booking flow.

WaveRez Full Calendar Widget embedded on a webpage showing availability across all Trips on the Booking Portal.


Link Directly to the Search-by-Date Page (Optional)

The Search-by-Date page is the Booking Portal view that lets guests pick a date and see all available Trips on that date. A direct link to this page can be added to any button or element on the Partner's website. With the Lightframe script active, the link opens the Search-by-Date view inside the lightframe pop-up.

This option requires the Lightframe script to be active site-wide for the link to open as a pop-up. Without the script, the link opens the Booking Portal in a new browser tab instead.

Step 1 — Find the Partner's general Booking Portal URL. Log into WaveRez Admin and click Booking Portal in the marketing section of the menu. The URL in the browser's address bar is the general Booking Portal link — for example, https://reservations.waverez.com/waverezrental.

Step 2 — To link to the Search-by-Date page showing all Trips, append ?filter=all to the end of the general Booking Portal URL. The result looks like https://reservations.waverez.com/waverezrental?filter=all. Use this as the link target on the button or element.

Step 3 — To link to the Search-by-Date page filtered to a single category, append ?filter= followed by the category name (lowercase, hyphenated). For example, to show pontoon rentals only, the link is https://reservations.waverez.com/waverezrental?filter=pontoon-rentals.

Step 4 — To link to the Search-by-Date page filtered to multiple categories, separate each category name with a comma. For example, to show jet skis and pontoon rentals, the link is https://reservations.waverez.com/waverezrental?filter=pontoon-rentals,jet-ski-rentals.

💡 The fastest way to get the filter URL exactly right is to copy it from the Booking Portal directly. Open the Booking Portal, click Search by Date in the top-right, select a date, and check the categories you want. The URL in the browser's address bar updates with the correct ?filter= parameter and category names already populated. Copy that URL and use it as the link target on the website button.

WaveRez Booking Portal Search-by-Date page showing category filter checkboxes and the URL with filter parameter.


Troubleshoot Common Lightframe Issues

The Booking Portal opens in a new tab instead of a lightframe pop-up

Symptom: A button or link on the Partner's website opens the WaveRez Booking Portal in a new browser tab or full-page navigation instead of opening it as a pop-up overlay.

Cause and resolution: The Lightframe script is not loaded on the page where the link was clicked. Confirm the script <script type="text/javascript" src="https://reservations.waverez.com/assets/dist/widget/js/_trip_book_widget.js"></script> is injected site-wide into the footer of the website. If using WordPress, verify the WP Code plugin (or the equivalent code-injection tool) is set to load the script on all pages, not just specific pages. Reload the page after the script is added.

The single-Trip calendar widget displays as blank or shows an error

Symptom: The Single-Trip Calendar Widget code is added to a page but the widget area shows nothing, displays a loading spinner indefinitely, or shows an error.

Cause and resolution: The most common causes are:

  • The Lightframe script is not loaded. The widget requires the script to be active site-wide. Confirm the script is injected in the website's footer.

  • The Trip URL is incorrect. Verify that TRIP_URL_GOES_HERE in the widget code has been replaced with the actual URL of the Trip listing on the WaveRez Booking Portal. The URL must be a Trip-specific link, not the general Booking Portal URL.

  • The Trip is not online-bookable. If the Trip has Disable Trip or Disable direct online bookings checked on its General tab in WaveRez Admin, the widget cannot display its availability. Open the Trip in WaveRez Admin and confirm both checkboxes are unchecked.

The Full Calendar widget loads slowly or causes the page to lag

Symptom: Pages with the Full Calendar Widget load slowly, scroll sluggishly, or feel unresponsive.

Cause and resolution: The Full Calendar Widget makes a high volume of API requests to load comprehensive availability across the Booking Portal. It is also set to lazy-load. Move the widget further down the page (not at the top), and avoid placing more than one Full Calendar Widget on the same page. For most websites, the Single-Trip Calendar Widget or standard Booking Portal links are a better choice.

The Search-by-Date filter link does not show the expected categories

Symptom: A link with ?filter= opens the Search-by-Date view, but the selected categories are wrong, missing, or the page shows all Trips when only one was intended.

Cause and resolution: Category names in the ?filter= parameter must match the category slugs exactly — lowercase, hyphenated, and spelled correctly. The fastest way to get the filter URL right is to open the Booking Portal, click Search by Date in the top-right, select a date, check the categories needed, and copy the resulting URL from the browser's address bar. That URL has the correct filter parameter already populated.

Buttons on a single page open as lightframe but other pages do not

Symptom: The lightframe pop-up works on some pages of the Partner's website but not others.

Cause and resolution: The Lightframe script is loaded on some pages but not site-wide. Re-check the code-injection plugin or theme settings to confirm the script is set to load on every page, not on a per-page basis. WP Code's site-wide injection setting is the recommended configuration for WordPress sites.

Did this answer your question?