=== Charter Booking Schema Bridge ===
Contributors: kitmobley
Tags: charter, tour, fareharbor, schema, seo, structured data, touristtrip
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Your FareHarbor widget hides your trip catalog from Google. This exposes it. TouristTrip + Offer schema per trip, with an automatic sync from FareHarbor.

== Description ==

Charter operators, fishing guides, tour operators, and adventure services embed FareHarbor / Bookeo / Rezdy widgets on their sites. The widgets are iframes — Google can't see the trip data through them. Rich results for tour listings never render. Google's local pack + travel results ignore your trip catalog entirely.

This plugin fixes that by pulling trip data out of the booking provider and emitting it as native TouristTrip + Offer JSON-LD schema on your own pages.

= Free =

* Manual Trip CPT with editor for name, duration, price, availability, group size, includes/excludes, departure location, booking URL
* Full TouristTrip + Offer JSON-LD schema on singular Trip pages
* Operator Organization node linked via @id
* Auto-injected in wp_head

= Solo Pro — $99/yr, 1 site =

* **FareHarbor auto-sync** — configure your FareHarbor shortname (and optionally API keys) and the plugin pulls your entire item catalog automatically
* Hourly cron refresh + manual "Sync now" button
* Per-item image sideloading (once) — no repeated hotlinking
* Manual-lock protection — fields the operator hand-edits stay put across syncs
* Automatic plugin updates

= Fleet Pro — $249/yr, 25 sites =

* Everything in Solo across a fleet or agency's book of charter clients
* One license across your entire portfolio

Buy at [https://kitmobley.com/plugins/charter-booking-schema-bridge/](https://kitmobley.com/plugins/charter-booking-schema-bridge/)

== Installation ==

1. Upload the ZIP via **Plugins → Add New → Upload Plugin** and activate.
2. Under **Trips → Connection**, either leave the provider on "manual" (free tier) or paste your FareHarbor shortname + optional API keys (Pro).
3. **Trips → Settings**: set your Operator name, URL, phone, and default departure location.
4. Free tier: create Trip posts manually. Pro tier: click "Sync now" to import your entire FareHarbor catalog as drafts, then publish the ones you want indexable.

== Frequently Asked Questions ==

= What if I don't use FareHarbor? =

Free tier works with any operator — you enter trips manually. Bookeo and Rezdy adapters are on the v1.1 roadmap.

= Where do I find my FareHarbor shortname and API keys? =

Shortname is the subdomain from your FareHarbor URL (e.g. `dirtyboat` from `fareharbor.com/dirtyboat`). API keys are optional — request them from FareHarbor support. Without keys you still get basic item data; with keys you get full item metadata (prices, capacities, images).

= Will this conflict with my SEO plugin's product schema? =

TouristTrip / Product schema on the Trip CPT is unique — SEO plugins don't typically emit it. If yours does, use the coexistence mode (default) which uses @id-namespaced nodes so they don't collide.

== Changelog ==

= 1.0.0 =
* Initial release
* Trip CPT with full TouristTrip + Offer schema
* Manual entry (free tier) + FareHarbor auto-sync (Pro)
* Hourly cron refresh, manual-lock protection on synced fields
* Admin: Connection, Settings, License submenus under Trips CPT
