Overview
The Streamline Travel Booking Manager adds a dedicated Trip product type to WooCommerce, purpose-built for dive operators and similar travel businesses. It handles the complete booking lifecycle from the moment a customer adds a trip to their cart through deposit collection, installment payment tracking, traveler form collection, digital waiver signing, and trip manifest generation.
Custom WooCommerce product type with departure dates, capacity limits, and per-trip payment settings.
Secure, token-authenticated forms collecting passport, flight, and dive certification details.
Configurable deposit at checkout with installment schedules and automatic reminder emails.
Send, track, and bulk-download digital liability waivers with webhook auto-completion.
Central admin dashboard with per-traveler status, quick payment recording, and bulk exports.
Generate and print traveler manifests directly from the WordPress admin.
Requirements
| Component | Minimum | Notes |
|---|---|---|
| WordPress | 5.8 | – |
| WooCommerce | 5.0 | Tested up to 8.0 |
| PHP | 7.4 | PHP 8.x compatible |
| MySQL | 5.6 | MariaDB 10.1+ also supported |
| SSL Certificate | Required | Needed for secure token links |
Installation
- In WordPress Admin, go to Plugins → Add New → Upload Plugin.
- Click Choose File, select
streamline-wc-travel-trips.zip, and click Install Now. - After installation completes, click Activate Plugin.
- A new Travel Trips ✈️ menu appears in the WordPress admin sidebar.
- Proceed to Initial Setup before creating trips.
Initial Setup
Complete the following steps in order after activation.
Step 1 — General Settings
Navigate to Travel Trips → Settings and configure:
- Default deposit percentage — applied at checkout unless overridden per trip.
- Check mailing address — shown to customers paying by check or wire.
- Email notifications — addresses for booking confirmations and payment reminders.
- Traveler form page — select the page where you placed the
[trip_traveler_form]shortcode (create this page first).
Step 2 — Create Required Pages
Create WordPress pages and add the shortcode to each. The traveler form page is required; the others are recommended.
| Page | Shortcode | Required? |
|---|---|---|
| Traveler Form | [trip_traveler_form] | Required |
| Customer Payment Portal | [trip_customer_portal] | Recommended |
| Payment Schedule | [trip_payment_schedule] | Optional |
Step 3 — Terms & Conditions
Go to Settings → Travel Form Terms & Conditions. Write your terms in the editor or upload a PDF. Once saved, travelers must accept the terms before submitting their form. See the Terms & Conditions section for full details.
Step 4 — Smartwaiver (Optional)
If using digital waivers, go to Settings → Smartwaiver Integration, enter your API key, and copy the webhook URL for setup in Smartwaiver. See the Smartwaiver Integration section.
Creating & Managing Trips
Add a New Trip
- Go to Travel Trips → Add New Trip.
- Enter the trip title (e.g., "Cozumel Reef Expedition — March 2026").
- Add a full description and any images in the standard product fields.
- In the Product Data panel, the product type is locked to "Trip".
- Open the Trip tab and fill in departure date, return date, minimum and maximum traveler capacity.
- Set the Regular Price (per-person trip cost).
- Configure the Payment Schedule tab — deposit percentage and installment dates/amounts.
- Optionally add Add-Ons (fixed-price upgrades or linked WooCommerce products).
- In the Smartwaiver meta box, enter the Smartwaiver Template ID for this trip's waiver.
- In the Traveler Form Configuration meta box, choose which fields to collect for this trip.
- Click Publish.
Trip Product Meta Boxes
In addition to the standard WooCommerce product tabs, each trip product has two dedicated meta boxes below the editor:
- Smartwaiver Configuration — link a specific waiver template to this trip.
- Traveler Form Configuration — choose which form fields appear for this specific trip's travelers.
Multi-Traveler Bookings
When a customer sets quantity to 2 or more, each traveler is added as a separate order line item. Each line item has its own add-ons selection, traveler information form, and payment record. This allows per-person tracking throughout the trip lifecycle.
Traveler Forms
After booking, each traveler receives a secure, unique link to complete their traveler information form. Forms are hosted on your site using the [trip_traveler_form] shortcode page.
Fields Collected
- Full name, date of birth, nationality
- Passport number, country of issue, issue and expiry dates
- Emergency contact name and phone
- Inbound and outbound flight details
- Diving certification level and certifying agency
- Equipment preferences and special requests
Field selection is configurable per trip via the Traveler Form Configuration meta box.
Token Security
Each form link contains a secure access token stored using dual storage for reliability across sessions. If a token is invalid or expired, the traveler sees a clear message and should contact you to request a new link.
Resending Form Links
From Travel Overview, click the link icon (🔗) next to any traveler to resend their form access email.
Completion Tracking
Travel Overview shows the form completion date for each traveler (or "Not completed" with a warning icon). Completed forms can be opened and printed directly from the dashboard.
Terms & Conditions
Admin Setup
Navigate to Travel Trips → Settings → Travel Form Terms & Conditions.
Option 1 — Text
- Select Text (write terms below).
- Use the rich-text editor to write or paste your terms. Headings, bold, bullet lists, and links are all supported.
- Click Save Settings.
Option 2 — PDF Upload
- Select PDF Document (upload below).
- Click Choose File and select your terms PDF.
- Click Upload, then Save Settings.
What Travelers See
— Near the bottom of the Traveler Form —
Clicking the link opens a full-screen popup modal displaying the complete terms (text or embedded PDF), a Print button, and an Accept & Close button that automatically checks the checkbox. The form cannot be submitted without the checkbox being checked.
Payment Plans & Schedules
How Payment Plans Work
- The customer pays the deposit at checkout (percentage set per trip or in global settings).
- A payment schedule is attached to the order showing all remaining installments with due dates.
- Automated reminder emails are sent as due dates approach.
- The customer pays installments via the Customer Payment Portal or the admin records payments manually.
Configuring a Payment Schedule
On each trip product, open the Payment Schedule tab in Product Data and set:
- Deposit percentage (overrides global default for this trip)
- Number of installments
- Installment due dates and amounts
Supported Payment Methods
| Method | Notes |
|---|---|
| Credit Card | Via WooCommerce payment gateway. Processing fees may apply. |
| Check | Mailing address displayed at checkout (configured in Settings). |
| Wire Transfer | Wire instructions displayed at checkout. |
| Cash | No card processing fee applied. |
Cost of Goods Tracking
Each trip product has a Cost field representing the operator's cost per traveler. This is automatically stored as order metadata and integrates with the WooCommerce Cost of Goods plugin for accurate profit-and-loss reporting.
Travel Overview Dashboard
Navigate to Travel Trips → Travel Overview. This is the primary day-to-day management screen for active bookings.
Using the Dashboard
- Select a trip from the Trip dropdown at the top of the page.
- The traveler table loads all bookings for that trip.
- Review status columns: Payment Status, Waiver, Traveler Form.
- Use the action icons per row to view the reservation, open the traveler form, record a payment, or view the waiver.
- Use bulk action buttons at the top to download forms, download waivers, or export to CSV.
Quick Payment Recording
Click the Record Payment icon next to any traveler to log a received payment (amount, date, method) without leaving the overview page. This marks the next outstanding installment as paid.
Waiver Status Checkboxes
The waiver status column shows a checkbox for each traveler. If webhook auto-tracking is configured, this is updated automatically when a waiver is completed. You can also click the checkbox to manually override the status.
Manifest Management
Trip manifests provide a consolidated list of all confirmed travelers for a given departure.
- Access the admin manifest view via Travel Trips → Manifests.
- The enhanced manifest view supports sorting by name, status, and custom filters.
- Print directly from the browser using the on-screen Print Manifest button.
- Embed a manifest on any page using the
[trip_manifest]shortcode.
Smartwaiver Integration
One-Time Setup
- Log into app.smartwaiver.com → Settings → API and copy your API key.
- In WordPress, go to Travel Trips → Settings → Smartwaiver Integration.
- Paste the API key and click Test Connection to verify it works.
- Click Save Settings. Note the Webhook URL displayed on the page.
- Back in Smartwaiver, go to Settings → Webhooks.
- Paste the webhook URL, set the trigger to After Email Validation, and enable webhooks. Save.
Per-Trip Configuration
On each trip product, enter the Smartwaiver Template ID in the Smartwaiver meta box. This links that trip to the correct waiver form in Smartwaiver.
Sending Waivers
From Travel Overview, click the waiver icon next to a traveler to send them a waiver link by email.
Viewing Signed Waivers
Click View Waiver to open the signed waiver at app.smartwaiver.com.
Webhook Auto-Tracking
When a traveler completes and submits their waiver, Smartwaiver sends a real-time webhook to your site. The plugin automatically marks that traveler's waiver status as complete in Travel Overview — no manual checking required.
Manual Bookings
Create bookings without customer interaction via Travel Trips → Manual Booking. This is useful for walk-in customers, phone bookings, or correcting booking errors.
Creating a Manual Booking
- Select the trip from the dropdown. Add-ons load automatically.
- Search for an existing customer or enable Guest Order mode and enter name/email.
- Set the quantity (number of travelers) and select any add-ons.
- Enter a partial payment amount (e.g., deposit only) if the customer is paying now. Leave at 0 to create the order unpaid.
- Click Create Booking.
The system automatically generates traveler forms for each traveler, creates the correct payment schedule, assigns Cost of Goods, and sends confirmation emails.
Customer Payment Portal
Customers access their trip bookings and installment schedules from My Account → Trip Payments.
Customer Capabilities
- View all trip bookings and their payment schedules
- See which installments are paid, pending, or overdue
- Pay an individual installment online (via any active WooCommerce payment gateway)
- Download payment receipts
The portal is also accessible via the [trip_customer_portal] shortcode on any page, allowing you to link to it from custom menus or your booking confirmation email.
Archive Management
Navigate to Travel Trips → Archive Management to bulk archive or unarchive trips.
Archiving hides trips from the active admin views without deleting them or their associated orders. This keeps the Travel Overview and manual booking dropdowns clean for operators who run many trips annually. Archived trips can be restored at any time.
Bulk Actions
Download Traveler Forms
- In Travel Overview, select your trip.
- Click Download Traveler Forms.
- A modal lists all travelers with completion status: ✓ Completed (selectable) and ⚠️ Not completed (view-only reference).
- The modal header shows a count: "✓ 12 completed · ⚠️ 3 not completed."
- Select the travelers you want and click Download Selected.
- Each completed form opens in a new browser tab. Print each with Ctrl+P / Cmd+P.
Download Waivers
- Click Download Waivers in Travel Overview.
- Ensure you are already logged into
app.smartwaiver.comin another browser tab. - Select travelers in the modal and click Download Selected.
- Each waiver opens in a new tab at Smartwaiver.
Export to CSV
Click Export to CSV in Travel Overview to download a spreadsheet containing all traveler data for the selected trip — contact info, booking details, payment status, form completion, and waiver status.
Shortcodes
| Shortcode | Description |
|---|---|
[trip_traveler_form] |
Renders the traveler information form. Must be placed on the page selected in Settings. |
[trip_customer_portal] |
Customer-facing view of trip bookings, payment schedules, and installment payment. |
[trip_payment_schedule] |
Displays the payment schedule for an order (used in confirmation pages/emails). |
[trip_manifest] |
Displays the trip manifest for admin or front-end use. |
[trip_addons] |
Renders the trip add-ons selector on product pages (used internally). |
[trip_cash_checkout] |
Renders the custom checkout page for cash, check, and wire payments. |
REST API (POS Integration)
The plugin exposes REST API endpoints under the streamline/v1 namespace for point-of-sale system integration. All endpoints require WooCommerce API authentication.
| Method | Endpoint | Description |
|---|---|---|
GET |
/streamline/v1/trip-products |
List all trip products with extended booking data. |
POST |
/streamline/v1/manual-booking |
Create a manual booking from the POS system. |
Troubleshooting
"Invalid Access Token" on Traveler Form
The traveler's secure link token has expired or is invalid. In Travel Overview, click the link icon (🔗) next to the traveler to resend a fresh form access email.
Waiver Opens a Login Screen
You are not currently logged into Smartwaiver in your browser. Open app.smartwaiver.com in a new tab, log in, then return and retry the waiver link.
Bulk Download Only Opens One Tab
Your browser is blocking popup windows. Open your browser settings, find the popup/redirect blocker, and add your WordPress admin URL as an allowed site. Then retry the bulk download.
Terms & Conditions Not Showing on Form
No terms have been configured. Go to Travel Trips → Settings → Travel Form Terms & Conditions, add text or upload a PDF, and save.
Webhook Not Updating Waiver Status
- Verify the webhook URL is correctly pasted into the Smartwaiver dashboard (no trailing spaces).
- Confirm "Send Webhooks" is enabled in Smartwaiver → Settings → Webhooks.
- Check your WordPress debug log (
wp-content/debug.log) for webhook errors ifWP_DEBUG_LOGis enabled.
Trip Total Calculating Incorrectly on Manual Booking
Ensure the trip product has a Regular Price set and that either the trip's own deposit percentage or the global default is configured in Settings.
Duplicate Payment Schedule Entries
This was a known bug fixed in v1.0.3. Ensure you are running the latest version. If duplicates exist on older orders, they can be manually removed from the order's meta data.
Changelog
Version 1.0.3 — February 7, 2026
- Fixed: Manual booking trip total now correctly calculated from product price (was erroneously using deposit amount, resulting in inflated totals).
- Fixed: Partial payment on manual bookings is no longer multiplied by traveler quantity.
- Fixed: Eliminated duplicate payment schedule entries on manually created orders.
- Fixed: Cost of Goods assigned correctly for all manual booking scenarios.
- Added: Guest order mode on the manual booking form.
- Improved: Minor stability improvements and internal code cleanup.
Copyright © 2026 Streamline Diving. All Rights Reserved. Proprietary Software.
streamlinediving.com