From plugin ZIP to flight search.

Install the free plugin, connect your own Duffel account, and publish live flight search in minutes.

Know the boundary

Search here. Complete the booking in your established workflow.

TravelBookingWP displays live flight search and current offer details and sends interested visitors to you. It does not collect a traveller's card, create live Duffel orders, issue tickets, service a booking, or search hotels.

Before you start

Until you add a Duffel token, the plugin shows clearly labelled sample flights. Live places and flight offers need:

  • WordPress 6.0 or newer and PHP 7.4 or newer.
  • Your own Duffel account and API token (live search is included in the free plugin).
  • HTTPS, a current site backup, and WordPress administrator access.

Your TravelBookingWP purchase does not include a Duffel account, airline accreditation, inventory access, or Duffel API charges. Confirm those directly with Duffel before promising live availability to customers.

Step 1

Install the plugin

Download the free plugin. Pro customers receive the Pro ZIP and license key by email after checkout; install Pro the same way and the free plugin switches off on its own, keeping your settings.

  1. Keep the downloaded plugin as a ZIP file.
  2. In WordPress, open Plugins → Add New Plugin → Upload Plugin.
  3. Select the ZIP, choose Install Now, then activate it.
  4. Open Travel Booking in the WordPress sidebar to begin setup.

Do not unzip the package before uploading it. If WordPress reports that the destination folder already exists, update the installed plugin or remove only the old TravelBookingWP copy after making a backup.

Step 2

Connect your Duffel account

  1. Create or retrieve a test-mode API token in your own Duffel account.
  2. In Travel Booking → Settings, choose Test mode and paste the token.
  3. Save, then run the connection check.
Start in test mode.

A test token lets you verify the integration without spending a Duffel balance or creating a live order. Never send an API token to support by email or include it in a screenshot.

Step 3

Publish the search

  1. Create or edit the WordPress page where search should appear.
  2. Add a Shortcode block containing [duffel_flight_search].
  3. Publish or preview the page.
  4. Run a one-way and round-trip search on desktop and mobile.

Use Travel Booking → Appearance for the supported visual controls. Under Settings → Contact Button, add the email, phone number, or page visitors should use to ask about a flight. Pro customers set the agency fee, WhatsApp number, and request email in Settings, and can add custom CSS once the default layout works with your theme.

The search and the admin screens follow your WordPress language, so a Spanish site shows everything in Spanish automatically.

Test safely before launch

Check the complete visitor path while the plugin and Duffel are in test mode:

  • Airport or city suggestions appear.
  • Dates, cabin, and passenger counts behave correctly.
  • Search results show carrier, time, stops, duration, and total price.
  • An offer can be refreshed before it is used.
  • The flight page shows the itinerary, baggage, fare rules, and your contact button (or, with Pro, the request form).

Pro also includes administrator-only test-order validation. It is an integration check, not a customer checkout, and does not make live ordering available.

Move search to live data

  1. Confirm your Duffel account is eligible for the live flight content you intend to display.
  2. Complete your own commercial, privacy, support, and booking workflow checks.
  3. Replace the test token with your live token and choose Live search mode.
  4. Repeat the connection, route, offer-detail, mobile, and failure-state checks.

Only flight search moves to live data. Customer payment, live order creation, ticketing, changes, cancellations, and post-booking service remain outside TravelBookingWP.

Data and privacy

The Duffel API token is stored in the site's WordPress options and sent server-to-server when the plugin calls Duffel. Search criteria can include origin, destination, dates, cabin, and passenger types. Supported test-order validation also sends the test passenger information entered by the administrator.

Optional local search analytics are off by default. If enabled, search events can include route and date criteria, timestamps, and the visitor IP address in that site's WordPress database. The site owner controls retention and the disclosures shown to visitors.

Pro flight requests store the visitor's name, email, optional phone and message, and the chosen flight in WordPress and email them to you. Paid licensing, purchase delivery, renewals, and Pro updates are handled by Freemius; the free plugin does not contact Freemius. Read the full TravelBookingWP privacy policy, Duffel privacy policy, and Freemius privacy policy.

Licenses and updates

The free plugin is free for any number of sites. Starter covers one WordPress site. Business covers up to five sites and adds priority email support and your brand name in the admin menu. An active subscription provides Pro updates and support for the subscription term.

Activate or deactivate a Pro license from the Travel Booking license screen. Deactivate it on an old site before moving the activation to a replacement site. Back up WordPress before any update.

Troubleshooting

The connection check fails
Confirm Test or Live mode matches the token, paste the token again without extra spaces, and ask the host whether outbound HTTPS requests to Duffel are blocked.
Search shows sample results
Sample results appear until a Duffel token is saved for the selected mode. Save a test token in Test mode (or a live token in Live mode), then clear any page cache.
No flights are returned
Try a common route and dates farther in the future. Then check the Duffel account's mode, access, and the WordPress error log without exposing the token.
The layout conflicts with the theme
Temporarily remove custom CSS, clear page and CDN caches, and test with the default appearance controls. Include the public page URL and a screenshot when contacting support.
The license will not activate
Confirm the key belongs to this product and that the plan has a free site activation. Deactivate an unused site in the Freemius customer portal before trying again.

Still stuck?

Send the useful context, not a secret.

Email the WordPress and PHP versions, the TravelBookingWP version, the step that failed, the exact non-secret error, and a screenshot. Never include a Duffel token, license key, customer payment information, or traveller identity document.

Email support