UltimaTour Operator

Description

UltimaTour Operator is an operations plugin for tour operators who want to manage bookable departures directly inside WordPress.

Base includes the practical workflows needed to operate without a separate booking platform:

  • Tours and public tour information.
  • Departures and sessions.
  • Public booking calendar and booking form.
  • Booking pipeline and customer records.
  • Manual/offline payments, Stripe Checkout, and PayPal Checkout.
  • Participant tickets, QR access, and pre-check-in.
  • Customer Experience Timeline with automatic upgrade backfill from provable Operator history.
  • Availability requests and temporary holds.
  • Coupons, reviews, and review request workflows.
  • Incident reporting and operational notes.
  • Printable day sheets and departure sheets.
  • Optional one-way Google Calendar export.

Base also includes the reusable OTA Connector Framework for future separately approved adapters. The framework provides connector registration, canonical booking intake, field provenance, immutable dual references, policy decisions, communication classification, and operational-truth boundaries. It does not include live OTA API connectivity by itself.

UltimaTour Operator stores booking and operational data in this WordPress installation. This package contains the complete Operator core and no product storefront, paid feature gate, contact-forms add-on, historical-review-recovery add-on, or planned-closures add-on. Other plugins can integrate through Operator’s documented hooks and interfaces; Operator does not acquire or install their code.

External Services

Operator displays a required-registration explanation after activation but sends no UltimaTour Ecosystem registration request until an administrator intentionally selects Create / Verify Ecosystem Records. Reviews and TrustEmporium are free but remain disabled until an administrator enables them in Integrations. Other optional services connect only after configuration or when a visitor chooses the configured payment or anti-spam flow.

UltimaTour Reviews

Purpose: Create or verify the operator’s free UltimaTour Reviews listing for public discovery and review collection.

Data sent: Operator/business profile data such as business name, site URL/domain, public website URL, public contact email/phone when configured, logo URL, location/geography fields, public description/story, public tour profile summaries, opening hours, social links, and review/discovery settings. Booking, customer, participant, payment, and operational records are not sent by this setup step.

When data is sent: During free ecosystem record creation/verification, a manual re-check, and later profile or review sync while UltimaTour Reviews remains enabled. Before each outgoing exchange, Operator verifies its signed core-integrity manifest and protected file hashes; exchange is paused if integrity is not clean. The administrator can turn Reviews off independently in Integrations.

Service URL: https://ultimatour.com/wp-json/ultimatour-review/v1/.

UltimaTour Ecosystem / Partner Registry

Purpose: Administrator-authorized, free integrity registration of this Operator installation; signed Operator-core integrity protection; connection-health monitoring; and authentication context for administrator-enabled Reviews and TrustEmporium exchanges. This is an integrity and trust-service connection, not a commercial licensing or payment service.

Data sent during initial registration or a manual registration refresh: Operator/site name, WordPress administrator email, site URL and canonical domain, Operator REST API base URL, generated installation identifier, plugin slug/type/version, WordPress version, PHP version, registry URL, registration mode, and connection-health status. The registry returns a signed registration credential. Some internal compatibility fields retain “license” names, but that credential authenticates integrity and trust-service requests only; it does not represent a purchase or commercial entitlement.

Data sent in the twice-daily integrity heartbeat: plugin slug/type/version, installation identifier, site URL and canonical domain, registry URL, report time, WordPress version, PHP version, connection health, and Operator-core integrity results. Core integrity results contain the signed-manifest payload hash and signature status, scan time, clean/tampered state, counts of official/scanned/mismatched/missing/unexpected protected files, and the relative paths of affected files. The heartbeat does not send WordPress administrator URLs, server fingerprints, file contents, booking or tour records, customer or participant data, payment data, or unrelated plugin inventory.

When data is sent: Only after an administrator selects the disclosed Create / Verify Ecosystem Records action. Registration may then be retried manually and the integrity heartbeat runs twice daily. An administrator can also select “Run Integrity Heartbeat Now” to send the same disclosed payload on demand. Operator stores the last heartbeat attempt, last successful heartbeat, result, HTTP code, error, next scheduled run, and current local integrity summary so they remain visible on the Ecosystem Participation screen. Operator also performs the same local core-integrity scan before outgoing UltimaTour Reviews or TrustEmporium exchange, but those exchanges remain off unless an administrator enables them in Integrations. A failed scan pauses only those optional trust-service exchanges and reports the failure on the next heartbeat; it does not disable local Operator pages, administration, bookings, tours, customers, calendars, check-in, closures, or stored records. A registry outage likewise never blocks local functionality. Registration and heartbeat never check payment, a subscription, a purchase, or a commercial entitlement and never unlock a paid Operator-core feature.

Service URL: https://partner.ultimatour.com/.

Privacy policy and terms: https://trustemporium.com/privacy-terms/

Google Calendar API

Purpose: Optional one-way export of future departures to an administrator-selected Google Calendar.

Data sent: OAuth client credentials supplied by the administrator, OAuth authorization data, departure title, date/time, capacity, booked count, status, location, public booking link when configured, and Operator admin deep links.

When data is sent: During OAuth authorization, when the administrator lists calendars, when the administrator manually syncs future departures, and when enabled departure changes are mirrored.

Service URLs: https://accounts.google.com/, https://oauth2.googleapis.com/, and https://www.googleapis.com/calendar/v3/.

Privacy policy: https://policies.google.com/privacy

Terms: https://policies.google.com/terms

Stripe

Purpose: Optional Stripe Checkout payment processing.

Data sent: Booking reference, amount, currency, selected tour/departure description, customer contact details needed for checkout, and booking metadata.

When data is sent: Only when Stripe is enabled and a guest selects Stripe Checkout, or when Stripe webhooks notify this site about payment status changes.

Service URLs: https://api.stripe.com/ and https://checkout.stripe.com/.

Privacy policy: https://stripe.com/privacy

Terms: https://stripe.com/legal

PayPal

Purpose: Optional PayPal Checkout payment processing.

Data sent: Booking reference, amount, currency, selected tour/departure description, customer contact details needed for checkout, and booking metadata.

When data is sent: Only when PayPal is enabled and a guest selects PayPal Checkout, or when PayPal return/webhook flows notify this site about payment status changes.

Service URLs: https://api-m.paypal.com/, https://api-m.sandbox.paypal.com/, and https://www.paypal.com/.

Privacy policy: https://www.paypal.com/privacy

Terms: https://www.paypal.com/legalhub/useragreement-full

OpenStreetMap Nominatim

Purpose: Optional reverse geocoding for derived geography from operator coordinates.

Data sent: Coordinates entered or saved by the administrator.

When data is sent: Only when the administrator uses geography derivation features.

Service URL: https://nominatim.openstreetmap.org/.

Privacy policy: https://osmfoundation.org/wiki/Privacy_Policy

Usage policy: https://operations.osmfoundation.org/policies/nominatim/

OpenStreetMap Map Tiles

Purpose: Optional administrator-facing location picker map display for Operator Profile coordinates.

Data sent: Browser requests for map tiles around the viewed coordinates or map viewport, plus ordinary request metadata handled by the tile provider such as IP address and browser headers.

When data is sent: Only when an administrator opens the location picker map in Operator Profile/settings and the browser loads the map tiles.

Service URL: https://tile.openstreetmap.org/.

Privacy policy: https://osmfoundation.org/wiki/Privacy_Policy

Tile usage policy: https://operations.osmfoundation.org/policies/tiles/

Cloudflare Turnstile

Purpose: Optional anti-spam protection for public booking, availability request, notify-me, request-departure, and local customer submission forms.

Data sent: Visitor browser verification data handled by Cloudflare and the site key configured by the administrator.

When data is sent: Only when Turnstile is enabled, configured, and displayed on a protected public form before that form is submitted.

Service URL: https://challenges.cloudflare.com/.

Privacy policy: https://www.cloudflare.com/privacypolicy/

Terms: https://www.cloudflare.com/website-terms/

Google reCAPTCHA

Purpose: Optional anti-spam protection for public booking, availability request, notify-me, request-departure, and local customer submission forms. Operator supports Google reCAPTCHA v3 score checks and Google reCAPTCHA v2 checkbox challenges.

Data sent: Visitor browser verification data handled by Google and the site key configured by the administrator.

When data is sent: Only when reCAPTCHA is enabled and configured for a protected public form. reCAPTCHA v3 executes before submission to obtain a verification score; reCAPTCHA v2 sends data when the visitor completes the checkbox challenge.

Service URL: https://www.google.com/recaptcha/.

Privacy policy: https://policies.google.com/privacy

Terms: https://policies.google.com/terms

UltimaTour Partner Information

Purpose: Provide the mandatory free UltimaTour Ecosystem registration, installation-integrity, and ecosystem connection services described above.

Data sent: The site, installation, version, connection-health, and Operator-core integrity information listed in the UltimaTour Ecosystem disclosure above. Operator does not inventory, authorize, download, install, update, repair, or activate add-on plugins.

When data is sent: After the administrator authorizes the required free registration, during manual registration retries, and during the twice-daily operational heartbeat. Reviews and TrustEmporium exchanges require their own administrator-enabled settings.

Service URL: https://partner.ultimatour.com/.

Privacy policy and terms: https://trustemporium.com/privacy-terms/

TrustEmporium

Purpose: Create or verify the operator’s free TrustEmporium business record for verified business, incident, and post-tour event infrastructure. Background customer lookups, operational TrustEmporium lookups, and intentional post-tour customer record submissions remain controlled by their own settings or administrator actions.

Data sent: Operator/business identity such as business name, site URL/domain, public contact email/phone where available, and registration identifiers needed to match, link, or create the business record. When TrustEmporium is configured, customer submissions such as bookings, availability requests, notify-me requests, and request-departure requests may queue a background lookup using the customer name, email, phone, request context, booking reference, tour/departure, date/time, and guest count where available. Intentional post-tour customer record submissions may send customer name, email, phone, tour name, departure date/time, booking reference, record type, and the operator-entered note. Payment card or funding-source data is never sent.

When data is sent: TrustEmporium remains disabled until an administrator enables it in Integrations. Data is then sent during free ecosystem record creation/verification, a manual re-check, configured background enrichment after a customer submission, an operator-requested lookup retry, or an intentional post-tour customer-record submission. Before each exchange, Operator verifies its signed core-integrity manifest and protected file hashes; exchange is paused if integrity is not clean. Background results are operator-only and never block booking, payment, availability-request, or notify-me submission.

Service URL: https://trustemporium.com/.

Data and responsibility: https://trustemporium.com/data-responsibility/

Privacy policy and terms: https://trustemporium.com/privacy-terms/

Installation

  1. Upload the plugin folder to /wp-content/plugins/ or install the plugin zip through WordPress.
  2. Activate “UltimaTour Operator” from the Plugins screen.
  3. Open Operator in the WordPress admin menu.
  4. Configure Operator Profile, tours, departures, payment settings, and public booking pages.

FAQ

Does UltimaTour Operator use UltimaTour’s hosted ecosystem?

Operator asks an administrator to register free of charge with the UltimaTour Ecosystem for installation identity, integrity, and connection health. Registration starts only after the administrator uses the disclosed Create / Verify Ecosystem Records action. Until then, Operator remains fully usable for local tours, bookings, customers, calendars, closures, check-in, and administration. UltimaTour Reviews and TrustEmporium exchanges remain off until an administrator enables them in Integrations. None of these services sells, unlocks, meters, blocks, or disables the Operator core.

How does Operator protect Reviews and TrustEmporium from altered Operator code?

The official package contains a signed integrity manifest with SHA-256 checksums for Operator’s protected core files. Operator verifies the manifest signature and re-hashes those files locally before trust-service data exchange and during its heartbeat. Modified, missing, or unexpected protected files cause a visible integrity warning, are reported to the UltimaTour Ecosystem, and pause outgoing UltimaTour Reviews and TrustEmporium exchanges. Bookings and other local operational data remain available and are never deleted by an integrity failure. Reinstalling the official package restores the protected files; the next successful scan and heartbeat restores trusted exchange.

Does the plugin store credit card data?

No. Stripe and PayPal payments use provider-hosted checkout flows. Operator stores payment status, amount, gateway, and provider reference data only.

Can I use manual or offline payments only?

Yes. Manual/offline payments can be used without Stripe or PayPal.

Does Google Calendar update Operator records?

No. Base provides one-way export from Operator to Google Calendar. Operator remains the editable source of operational records.

Does this plugin acquire other plugins?

No. Operator does not download, purchase, install, update, repair, or activate other plugins. Separately installed modules can attach to Operator later through its integration interfaces.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“UltimaTour Operator” is open source software. The following people have contributed to this plugin.

Contributors

Translate “UltimaTour Operator” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.1.4

  • Fix AJAX-loaded public booking form initialization so calendar-launched bookings preserve the complete validation, pricing, participant, document, and Stripe checkout path.
  • Add a governed Smart Commerce communication insertion point that renders empty unless a commerce module supplies eligible content.

1.1.3

  • Final WordPress.org review remediation: removed remaining raw public script output, moved adoption snapshots into private WordPress storage, clarified calendar REST authorization, and tightened inline asset handling.

1.1.1

  • WordPress.org review remediation: corrected contributor metadata, hardened enqueue/path/request handling, and expanded compliance documentation.

1.1.0

  • Presents Operator as a complete standalone operational plugin without a product-sales menu, upgrade page, storefront, paid feature gate, or remote plugin delivery surface.
  • Retains all native booking, payment, Maps/geography, anti-spam, UltimaTour Ecosystem integrity, Reviews, TrustEmporium, communications, calendar, and operational workflows.
  • Confirms this package contains Operator core only and no add-on plugin delivery surface.
  • Clarifies that UltimaTour Ecosystem, UltimaTour Reviews, and TrustEmporium participation is free and does not sell or unlock Operator functionality.

1.0.4

  • Completely removed Free Operator’s former extension sales listing and all plugin download, install, update, repair, and activation functionality.
  • Retained documented action/filter interfaces for normal WordPress integrations.

1.0.2

  • Historical maintenance release; the former external-plugin delivery experiment is not present in this package.

1.0.0

  • Established the standalone Operator administration and operational workflow surface.
  • Rebuilt the WordPress.org compliance package from the current Operator source so the submitted ZIP matches the closure-stubbed Base implementation.
  • Preserved neutral closure extension points and documentation references so the separate Closures add-on can restore planned-closure behavior on top of Operator.

0.2.24.353

  • Completed WordPress.org compliance hardening for the Operator Base release package.
  • Removed remaining Base runtime coupling to the legacy operation-closure implementation; the separate Closures add-on restores closure behavior through Operator extension hooks.
  • Corrected readme/package metadata and final Plugin Check cleanup items.

0.2.24.338

  • Added a neutral departure availability capacity filter and effective/original capacity metadata so compliant extensions can reduce bookable capacity without mutating Operator departures or bookings.

0.2.24.337

  • Added a neutral Google Calendar departure-export state filter so extensions can suppress exported departure events without deleting Operator records.
  • Updated public calendar closed-day interactions so extension-supplied closed days can show selectable closure markers without invoking availability request actions.

0.2.24.336

  • Added neutral extension hooks for closure-window checks and public calendar metadata so external modules can supply calendar closures without changing Operator’s WordPress.org-safe base behavior.

0.2.24.335

  • Corrected lifecycle reminder/final-warning/no-show email placeholders so meeting and departure times render in the configured Operator timezone instead of leaking UTC-style stored timestamps.
  • Enforced inbox-obvious lifecycle subject prefixes for reminder, final warning, and no-show messages, including existing saved Communications Center subjects.
  • Reworked lifecycle timeline text so reminder emails show only the current reminder, final-warning emails show prior reminder plus current warning, and no-show emails show only occurred/current no-show history.

0.2.24.334

  • Added the Base Automation Engine Health monitor to Diagnostics & Tools so operators can see scheduler health, heartbeat age, lifecycle execution timing, next checkpoint, and reminder trust at a glance.
  • Added server-cron detection guidance, WP-Cron-only warnings, and copyable PHP CLI / HTTP fallback cron commands generated from the current WordPress installation path.
  • Added lifecycle scheduler run history and trigger-source tracking so Operator can distinguish WP-Cron callbacks from request fallback executions.

0.2.24.333

  • Restored unattended check-in lifecycle automation with a scheduled Base cron hook and a throttled request fallback for hosts where WP-Cron writes temporarily fail.
  • Added Diagnostics & Tools lifecycle visibility for scheduler state, current operator/server time, next run, last run summary, and per-booking checkpoint status.
  • Reconciled automatic no-show processing so booking, participant readiness, staff manifest, and booking-list attendance all reflect the no-show state.
  • Added an Operator No-Show Alert template to Communications Center and lifecycle no-show processing so operators can be notified when automation marks a booking no-show.

0.2.24.332

  • Modernized the public booking payment selector into accessible selectable payment cards using bundled Stripe and PayPal artwork, while preserving existing gateway values and checkout processing.

0.2.24.329

  • Fixed the public pre-check-in completion state so completed customer QR/token reopens show a terminal completed/status screen instead of reopening the editable pre-check-in form.
  • Added booking reference, participant, tour, date, meeting time, bring-ticket/QR guidance, and onsite-only staff item guidance to the completed pre-check-in screen.
  • Preserved Staff Mobile separation: completed customer pre-check-in appears as ready for onsite check-in, while staff still completes headshot/signature onsite.
  • Documented the QR routing rule for public customer pre-check-in/status versus authorized staff check-in context.
  • Added a universal public Need help? contact path across customer-facing booking, availability, hold recovery, payment return, confirmation, post-tour, and mobile check-in surfaces.
  • Implemented the help path as a safe mailto link using Communications Center and public branding contact settings without exposing nonces, CAPTCHA tokens, hold tokens, payment session data, serialized payloads, or private customer contact fields.
  • Completed final WordPress.org compliance cleanup for Base package submission: strict Plugin Check, PHP lint, classmap verification, package verification, and lifecycle regression now pass.
  • Cleared prefix, nonce verification, input sanitization, wp_unslash, and offloaded-content Plugin Check buckets without intentional runtime behavior changes.
  • Added Base and Optional Module runtime manifests so bootstrap registers Base routes/migrations by default and optional module routes, admin actions, cron handlers, and clearly optional migrations only when enabled.
  • Added a null-service boundary for departure lifecycle recording so Base departure/check-in workflows no longer instantiate Compliance Pack snapshots unless the Compliance module is enabled.
  • Preserved existing Base booking, payment, temporary hold, waitlist, QR, pre-check-in, staff mobile, reviews, Google Calendar, TrustEmporium, and public booking behavior while documenting remaining coupling for future extraction.

0.2.24.327

  • Added a shared RequestInput support helper for typed, unslashed, field-specific request reads.
  • Migrated low-risk read-only admin GET parameters for calendar navigation, tabs, filters, pagination, search, and selected edit IDs.
  • Deferred mutation, public booking, payment, QR, pre-check-in, review, hold, AJAX, and REST request paths to future validation waves.

0.2.24.326

  • Reduced Plugin Check findings safely by fixing the remaining SQL/direct DB findings, translator-comment findings, unordered placeholder finding, mixed line endings, and one unprefixed helper function.
  • Preserved Operator booking, payment, calendar, review, QR, pre-check-in, and settings behavior.

0.2.24.325

  • Renamed the plugin i18n text domain to ultimatour-operator across runtime source, README metadata, and the bundled POT reference so Plugin Check no longer reports text-domain mismatches.

0.2.24.324

  • Added a shared branded HTML email shell for public/customer-facing Communications Center templates.
  • Booking, payment, hold, waitlist, availability, pre-check-in, and review test emails now render with an Operator-branded header, accent color, content card, and branded footer instead of bare template text.
  • Preserved Communications Center template ownership: services still decide when to send, while template wording remains editable in Communications Center.

0.2.24.323

  • Added canonical Communications Center sender identity for customer-facing emails.
  • Customer emails now use the configured From Name, Sender Email, Reply-To Email, and Operator Profile business name instead of falling back to WordPress sender branding.
  • Updated booking, payment, hold, waitlist, pre-check-in, demand, and review email send paths to pass branded From/Reply-To headers through the shared mail service.

0.2.24.319

  • Preserved the selected public booking payment gateway after validation failures.
  • Expanded public booking form-state preservation so valid customer-entered values survive server-side rerenders.
  • Added automatic smooth scrolling and highlight behavior for the first invalid booking field.

0.2.24.318

  • Replaced expired Temporary Hold dead-ends with a recovery flow.
  • Automatically creates a new Temporary Hold from a valid expired hold link when the original departure still has enough capacity.
  • Shows waitlist, nearby departure, and request-this-date recovery options when the original departure no longer has enough capacity.
  • Preserves expired-hold traceability with previous hold/request metadata in operational logs.

0.2.24.316

  • Improved public booking selection UX so selecting a departure smoothly scrolls the booking form into view and briefly highlights it.
  • Improved Temporary Hold resume forms so known customer details are pre-filled, the held departure is locked, and the held guest count is the minimum selectable quantity.
  • Allowed hold-resume customers to increase guest count when immediately available capacity remains, while preventing reductions below the held amount.

0.2.24.315

  • Added generic Shared versus Private Exclusive booking policy support for tours.
  • Added private-tour pricing strategies, including flat premium and revenue-equalization preview pricing.
  • Updated public availability, booking pricing, calendar states, and temporary holds so private-exclusive departures become unavailable to unrelated customers once booked or held.
  • Reconfigured the existing Four VIP SNUBA tour as Private Exclusive with 4 guest minimum, 8 guest maximum, 50% premium, and revenue-equalization pricing.

0.2.24.314

  • Added exact-departure waitlist holds for full or too-small-capacity public calendar departures.
  • Added automatic oldest-first waitlist processing that creates a normal Temporary Hold only when enough seats become available.
  • Added waitlist lifecycle states, admin skip/cancel/manual-close actions with reasons, and waitlist-aware Temporary Hold email wording.
  • Kept Notify Me and Request This Date separate for general no-date/no-departure requests.

0.2.24.313

  • Fixed Temporary Hold payment continuation so validated hold-resume submissions are authenticated by hold ID and secure token instead of public CAPTCHA.
  • Suppressed public anti-spam widgets on validated hold-resume forms and preserved normal CAPTCHA enforcement for fresh anonymous booking and request forms.
  • Added safe hold-resume diagnostics showing trusted hold validation result, hold ID, departure ID, guest count, and exact rejection reason without exposing tokens.

0.2.24.312

  • Corrected temporary-hold availability states so active holds no longer appear as confirmed fully booked departures.
  • Added separate calendar display states for booking fully on hold, booking partially on hold, and limited availability.
  • Updated public and operator calendar details to show confirmed bookings, temporary holds, immediately available seats, and hold expiry where available.

0.2.24.297

  • Added customer review-reminder opt-out links that stop reminder emails while leaving operational emails enabled.
  • Centralized Communications placeholders through one registry and registered {review_reminder_opt_out_link} for picker, preview, validation, and test rendering.
  • Added review communication status/analytics visibility in Bookings and Reviews.

0.2.24.296

  • Added the trusted completed-booking review fast path for Operator review request and reminder emails.
  • Review request tokens now render booking-aware secure review links and QR data tied to the completed booking, participant, tour, departure, and operator profile.
  • Generic public review requests remain on the existing public identity/security-challenge workflow.

0.2.24.295

  • Added automatic Communications Preview & Testing refresh when the template type or template selection changes.
  • Filtered the template selector to the active template type and kept the Preview Template button as a manual fallback.
  • Added a small rendering state while the preview refreshes without changing template content, defaults, placeholders, signatures, or email workflows.

0.2.24.294

  • Converted the Communications Center section buttons into real nested tabs inside Settings -> Communications.
  • Added section URLs such as section=email_templates, section=sender_settings, and section=preview_testing.
  • Preserved the selected Communications section through save/reset/test redirects while leaving communication storage and send workflows unchanged.

0.2.24.293

  • Restored the Communications tab across every Operator Settings surface, including the default Installed Extensions landing page.
  • Added Communications to the Included with Operator Base capability list.
  • Kept the Communications Center route under Settings -> Communications while preserving existing template, sender, signature, preview, and test-send workflows.

0.2.24.289

  • Converted Temporary Holds into Active, Create Manual Hold, and Past tabs with readable summary metrics and reason-required release/archive/sanitize/delete-test actions.
  • Standardized Bookings, Customers, Availability Requests, and Temporary Holds action columns around compact primary actions plus inward-opening More menus.
  • Normalized TrustEmporium status display so list buttons and detail modals use the same Badge Holder, Positive History, No Record, Lookup Pending, Lookup Failed, and Negative Events states.

0.2.24.288

  • Renamed the operator-facing Booking Pipeline menu to Bookings while preserving the existing route/slug for compatibility.
  • Added booking list filters for search, past bookings, and cancelled/deleted visibility, plus reason-required cancellation with payment-history preservation.
  • Added departures list search, clearer calendar closure labels, customer list/create tabs, safe customer archive, compact TrustEmporium customer states, and a corrected TrustEmporium dashboard link.

0.2.24.287

  • Removed Pro-only maintenance tools from Diagnostics & Tools so Operator Base exposes only Base-owned cleanup, scan, seed, backup, and data-management categories.
  • Removed Staff, Compliance, Pickup/Meetings, Demand, connector, channel, and advanced-module repair surfaces from Base diagnostics.
  • Kept future Pro diagnostics out of Base-visible UI unless the owning module is installed and registers its own tools.

0.2.24.286

  • Added guided configuration panels with official dashboard and documentation links for Google Calendar, Stripe, PayPal, Google reCAPTCHA v3/v2, Cloudflare Turnstile, TrustEmporium, and UltimaTour Reviews.
  • Added information icons to critical integration fields so operators know where keys/secrets come from and how Operator uses them.
  • Kept all external links informational, official, and opened in new tabs with no affiliate, tracking, or remote-loading behavior.

0.2.24.285

  • Added Settings -> Diagnostics & Tools as the permanent administrative maintenance center.
  • Upgraded Operator Data Management with scoped operational-data categories, factory-reset detection, preserved-data guardrails, dependency previews, backup decision workflow, random confirmation codes, and audit logging.
  • Removed settings and integration configuration from removable data groups so business settings, payment gateway configuration, Google Calendar configuration, ecosystem identity, and external systems remain untouched.

0.2.24.284

  • Required Activity, preferred date/time, guest count, name, email, and phone before public availability/request submissions can be sent.
  • Added matching frontend and server-side validation with customer-safe field messages and valid email / guest-count checks.
  • Kept reCAPTCHA v3 background verification internal while improving operator-visible diagnostics and neutral public button copy.

0.2.24.282

  • Canonicalized adopted CONNECT review-entry links so Operator shows the current UltimaTour Reviews operator slug and regenerates the QR image from the repaired URL.
  • Kept /revc/ continuity emails aligned with the canonical Reviews profile URL so stale adopted slugs no longer send guests to a dead homepage redirect.

0.2.24.281

  • Hardened the Operator Departures list action column so Edit / More controls stay visible at normal admin widths.
  • Made the More menu open back into the table instead of toward the browser edge, while preserving collapsed blocker/status details.

0.2.24.280

  • Added operator-local timezone fields to the UltimaTour Reviews sync payload so discovery calendars mirror Operator departure times.
  • Kept public Reviews availability qualitative while preserving Operator as the booking source of truth.

0.2.24.279

  • Regenerated the Operator module icon library so module symbols are centered and fitted into the supplied UT Operator logo template instead of appearing as small pasted-on glyphs.
  • Preserved the established 60×120 runtime footprint for every module icon.

0.2.24.278

  • Cleaned up the Operator Departures list table so capacity, booked, remaining, and minimum details share one compact column.
  • Reworked departure row actions into a visible Edit button plus compact More menu to reduce tall rows and keep actions inside the admin viewport.

0.2.24.277

  • Corrected the TrustEmporium lookup gate so UltimaTour Ecosystem-enabled Operator installs can run tier-aware TrustEmporium lookups without requiring obsolete direct bridge credentials.
  • Updated background TrustEmporium enrichment to use the same UltimaTour Ecosystem-enabled availability rule.

0.2.24.276

  • Changed the Availability Requests Retry TE Check action to refresh the TrustEmporium lookup immediately through the UltimaTour Ecosystem bridge instead of only placing another background queue job.
  • Added a completed lookup notice so operators can tell the retry action actually ran.

0.2.24.275

  • Fixed TrustEmporium lookup normalization so mediated UltimaTour Ecosystem lookups preserve matched badge state, positive event counts, and open negative counts in Operator availability-request summaries.
  • Added Positive Events to the operator-facing TrustEmporium summary card while preserving the UltimaTour Ecosystem tier/check boundary.

0.2.24.274

  • Added an Operator-first synchronization marker so tour, departure, and business operating-rule changes queue UltimaTour Reviews profile sync.
  • Existing UltimaTour Reviews sync remains non-blocking; Operator stays authoritative and continues working if the discovery mirror is unavailable.
  • Added sync-state metadata for the last queued change reason, record type, record ID, and timestamp.

0.2.24.272

  • Added an internal Operator icon experiment that was later removed from the WordPress.org package.

0.2.24.271

  • Moved customer-submission TrustEmporium enrichment behind a non-blocking background queue for bookings, customers, and availability/notify/request-departure records.
  • Added availability-request TrustEmporium lookup status storage, admin summary display, and Retry TE Check action.
  • Removed customer-facing TrustEmporium badge/status displays from the public booking form and pre-check-in portal.
  • Updated TrustEmporium external-service disclosure for operator-only background enrichment.

0.2.24.270

  • Added Base post-tour customer action tooling for completed departures, including review request resend actions and intentional TrustEmporium customer record submission.
  • Added local TrustEmporium customer record audit storage with Submitted, Failed, Needs attention, and Not submitted statuses.
  • Added configurable automatic Post-Tour Review Request follow-up settings under Reviews -> Templates, separate from later reminder emails.
  • Updated TrustEmporium external-service disclosure to cover administrator-submitted post-tour customer records.

0.2.24.269

  • Improved Google reCAPTCHA v3 pre-verification UX so protected public submit buttons show a spinner and clear checking/failure labels while background verification runs.

0.2.24.268

  • Promoted Anti-Spam to a first-class Operator capability with status on Installed Extensions and the Dashboard.
  • Added provider-specific configuration buckets for Google reCAPTCHA v3, Google reCAPTCHA v2 Checkbox, and Cloudflare Turnstile.
  • Preserved existing saved anti-spam credentials during migration and masked-secret saves; clearing a saved secret now requires an explicit Clear Saved Secret action.

0.2.24.267

  • Added a direct reCAPTCHA v3 execution fallback inside the public booking calendar request flow so Notify Me and availability requests generate tokens before AJAX submission even if the shared loader hook is unavailable.

0.2.24.266

  • Added a guarded inline anti-spam loader fallback so public reCAPTCHA v3 tokens are generated even when the external loader script is not printed by the page theme.

0.2.24.265

  • Added compatibility detection for previously saved anti-spam settings so older CAPTCHA option keys and secret field names are adopted by the canonical Operator Anti-Spam service.

0.2.24.264

  • Fixed Anti-Spam settings persistence and saved-secret detection.
  • Changed Security / Anti-Spam saves to a dedicated nonce-protected Operator action and preserved saved secrets when the secret field is left blank.

0.2.24.263

  • Completed anti-spam provider support for Google reCAPTCHA v3, Google reCAPTCHA v2 Checkbox, and Cloudflare Turnstile.
  • Added server-enforced reCAPTCHA v3 score threshold presets and safe last-verification diagnostics.
  • Updated the public CAPTCHA loader so reCAPTCHA v3 tokens are generated before booking and availability/request submissions.

0.2.24.257

  • Added transparent setup for creating or verifying the free UltimaTour Reviews listing and TrustEmporium business record after administrator explanation.
  • Added separate Integrations status cards for UltimaTour Reviews and TrustEmporium with status, remote ID, last checked timestamp, public link, and re-check action.
  • Added Dashboard and Operator Profile linked-record status summaries.
  • Updated external-service disclosures for UltimaTour Reviews, UltimaTour Ecosystem/Partner Registry, and TrustEmporium setup.

0.2.24.252

  • Prepared Operator Base for WordPress.org release-candidate review.
  • Added clean release packaging that excludes internal Markdown, logs, zips, temporary files, and development artifacts.
  • Hardened public and admin output, direct file access checks, redirects, upload handling, and download annotations based on Plugin Check results.
  • Replaced build-state style readme content with a WordPress.org readme structure and external-service disclosures.