WordPress Plugin • Built by Websage Solutions Lab

Bokun Bookings Management for WordPress

Pull Bokun reservations straight into WordPress, power dashboards and booking history tables, and give staff a front-end fetch button backed by the Bokun API.

Download Plugin View on GitHub

Purpose-built Bokun imports for WordPress

Bokun Bookings Management lets tour and activity operators pull reservations from the Bokun API, persist them as the bokun_booking custom post type, and make the data actionable inside WordPress dashboards, Elementor widgets, or custom workflows. Multiple API credentials, ARIA-friendly progress bars, and deeply integrated shortcodes mean staff can fetch bookings without touching wp-admin.

Repository layout

Everything ships as a standard WordPress plugin that lives under wp-content/plugins/bokun-bookings-management.

├── bokun-bookings-management.php
├── includes/
│   ├── bokun-bookings-manager.php
│   ├── bokun_settings.class.php
│   ├── bokun_shortcode.class.php
│   ├── bokun_settings.view.php
│   └── bokun_booking_history.view.php
├── assets/
│   ├── css/
│   ├── js/
│   └── images/
└── addons/
        

Feature highlights

Multiple credentials

Store, validate, and remove any number of Bokun API key/secret pairs. Each set becomes its own import context so you can process bookings from multiple Bokun tenants without editing code.

Progress-aware imports

Admin/AJAX actions (such as bokun_bookings_manager_page) paginate through the Booking Search endpoint, write bookings to WordPress, and report progress, queued contexts, and errors back to the UI.

First-class post type

Reservations are normalized into the bokun_booking post type with Booking Status, Product Tag, and Team Member taxonomies that power filtered dashboards, Elementor widgets, or REST/GraphQL queries.

Dashboards & shortcodes

Shortcodes like [bokun_booking_dashboard], [bokun_booking_history], and [bokun_fetch_button] bring dashboards, DataTables, and fetch buttons to any page—no admin access required.

Rich booking history

The admin history view and history shortcode share a responsive DataTable with filters, CSV export (via DataTables Buttons/JSZip), and capability checks to prevent unauthorized viewing.

Product tag media jobs

Trigger a background importer that pulls gallery images for every Bokun Product Tag and assigns them to WordPress taxonomy terms for polished, on-brand UI.

Accessible status updates

Both the admin fetch button and the public [bokun_fetch_button] shortcode share ARIA-enabled progress bars and polite live regions so screen-reader users stay informed.

Installation

  1. Download the latest release zip via the button above or clone the repository into wp-content/plugins/.
  2. Make sure the directory is named bokun-bookings-management so WordPress can detect the plugin header.
  3. Activate the plugin. The first activation creates the wp_bokun_booking_history table and redirects to the settings screen.

Configure API credentials & dashboard output

  1. Visit Bokun Bookings Management → Settings.
  2. Add one or more API key/secret pairs using the repeatable “Add another API” interface—each set becomes a named context.
  3. Select a page that should automatically append the booking dashboard or drop the [bokun_booking_dashboard] shortcode anywhere.
  4. Use the Fetch Booking panel to start the importer and watch real-time progress without refreshing.
  5. Optional: run the Product Tag image importer to sync taxonomy media from Bokun.

Import behavior

Shortcodes

Shortcode Purpose Attributes
[bokun_fetch_button] Displays a primary button that triggers the AJAX importer plus the shared progress UI. None.
[bokun_booking_history] Outputs the responsive, filterable booking-history DataTable anywhere. limit (default 100), capability (default manage_options), export (CSV filename slug).
[bokun_booking_dashboard] Renders the dashboard cards, filters, and KPIs for team members and partners. None.

Booking history UI

The built-in Booking History submenu and shortcode both query wp_bokun_booking_history and render a responsive DataTable with collapsible filters, column search, CSV export, and capability checks. The view handles missing tables gracefully—for example when the plugin has been uploaded but not activated yet.

Hooks & filters

Development workflow

  1. Install the plugin in a local WordPress environment for testing.
  2. Run npm install and npm run dev inside assets/ if you extend the CSS/JS helpers (current build is plain CSS/JS).
  3. Use wp i18n make-pot to refresh translation catalogs whenever you edit user-facing strings.
  4. Follow WordPress coding standards, escape output, and lint PHP with tools such as wp coding standards.

Troubleshooting

Need help?

Email lab@websagesolutions.com with deployment questions, feature requests, or support needs.