=== Tourtify – Tour & Activity Booking ===
Contributors: tourtify
Tags: tour booking, booking system, tour operator, travel, booking calendar
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Take tour and activity bookings on your WordPress site with 0% commission: tour cards, a Book now window with live availability, and reviews.

== Description ==

**Tourtify** is booking software for tour and activity companies. This plugin puts your Tourtify tours on the WordPress site you already have: travellers see your tours, prices and reviews on your own pages, pick a date in a booking window that opens over the page, and pay on your secure checkout. You keep your theme, your pages and your SEO, and Tourtify takes **0% commission** on bookings.

https://www.youtube.com/watch?v=NnVrhspUUJs

= Why tour operators choose Tourtify =

* **No commission, ever.** A monthly plan and nothing per booking. Payments go straight into your own Stripe, PayPal or regional payment account.
* **Your website stays yours.** Tour cards are real HTML on your own domain, styled by your theme, so they help your SEO.
* **Booking without leaving the page.** The booking window opens over your page with live availability, so travellers don't bounce to another site to book.
* **One system behind it.** Bookings, departures, guides, manifests, waivers, reviews and reports are in one place, not spread across spreadsheets.
* **Set up in minutes.** Click Connect with Tourtify, choose your business, and add your tours with one click.

= What the plugin adds to WordPress =

**Tour cards (block and shortcode)**
Show all your tours, or only one destination, activity or category, or hand-picked tours. Each card shows the photo, duration, rating, a short description, the "from" price and a Book now button. Grid or list layout, one to four columns, sorted by price, duration, rating, name or next departure. Cards stack on phones and use your theme's fonts, colours and button style.

**Book now buttons (block and shortcode)**
Put a Book now button for any tour anywhere: in a hero, a sidebar, a blog post or a pricing table. Clicking it opens the tour's [booking window](https://tourtify.com/features/online-checkout/) over your page: dates with live seats, travellers, pricing options, extras and deposits. On phones it opens full screen.

**Reviews (block and shortcode)**
Your rating badge or your latest [verified traveller reviews](https://tourtify.com/features/verified-reviews/), for all tours or one tour, in a light or dark style.

**Ready-made layouts**
A tours section, a featured tour and a reviews band, under Patterns › Tourtify in the block inserter. Or click **Create a Tours page** and get a finished draft page with your tours and reviews.

**Display settings with a live preview**
Under WP Admin › Tourtify › Display, choose the layout, columns, which parts each card shows, the button text and the currency, and see the result as you change it. Every block and shortcode can override these for itself.

**A dashboard in WP Admin**
The connection's status, a getting-started checklist, all your published tours with ready-to-copy shortcodes and booking previews, and a Site Health check that tells you if your Tourtify website can't be reached.

**Fast and dependable**
Tours are rendered on your server and cached for ten minutes, so pages stay fast. If Tourtify can't be reached, the last good copy is shown for up to a day, and your pages never break. The booking script loads only on pages with a Book now button, and asynchronously.

= Works with every editor =

Use the **Tourtify tours**, **Tourtify Book now button** and **Tourtify reviews** blocks in the block editor and the Site Editor, or the shortcodes in Elementor, Divi, Beaver Builder, Bricks, the classic editor and widgets:

* `[tourtify_tours limit="6" columns="3" destination="nepal"]`
* `[tourtify_book tour="your-tour" label="Book now"]`
* `[tourtify_reviews layout="list" limit="3"]`

= Everything Tourtify does for tour operators =

The plugin is the front door; [Tourtify](https://tourtify.com/) is the booking software behind it. One system runs the whole business, so the bookings taken on your WordPress site land straight in your departures, manifests, emails and reports.

**Sell online**

* [Online checkout](https://tourtify.com/features/online-checkout/): live prices for every date, seats held while travellers pay, guest checkout, deposits and promo codes.
* [Booking modes](https://tourtify.com/features/booking-modes/): instant booking with payment, request to book with your confirmation, or enquiry only for tailor-made trips.
* [Pricing options](https://tourtify.com/features/pricing-options/): traveller types with age rules, group and private prices, minimum group sizes and taxes per country.
* [Departures and availability](https://tourtify.com/features/departures-availability/): recurring dates, seats per departure, blocked dates, booking cut-offs and stop sales.
* [Online payments](https://tourtify.com/features/online-payments/): Stripe, PayPal, Mollie, Razorpay, Mercado Pago, Paystack, Khalti, eSewa and Fonepay, paid into your own account, plus payment links.
* [Rentals, passes and memberships](https://tourtify.com/features/rentals-passes-memberships/): rent bikes, kayaks and gear by the hour or day, and sell passes, punch cards and memberships.
* [Manual bookings](https://tourtify.com/features/manual-bookings/) for phone and walk-in customers, and a [point of sale](https://tourtify.com/features/tour-pos-system/) with card readers and cash drawers.

**Your website and SEO**

* [Website builder](https://tourtify.com/features/website-builder/) with [ten themes](https://tourtify.com/themes/), one visual editor and page templates for every tour, if you ever want a Tourtify-hosted site next to or instead of WordPress.
* [Destination, activity and category pages](https://tourtify.com/features/destinations-landing-pages/) with nested destinations, filters and structured data.
* [SEO tools](https://tourtify.com/features/seo-tools/): structured data for tours and reviews, sitemaps, canonical URLs and an SEO score for every page.
* [Custom permalinks and 301 redirects](https://tourtify.com/features/url-redirects/), [custom domains](https://tourtify.com/features/custom-domains/) with free HTTPS, and [pages and a blog](https://tourtify.com/features/pages-and-blog/).
* An [AI website assistant](https://tourtify.com/features/ai-website-assistant/) that answers visitors from your own tours, availability and prices.
* [Cookie consent](https://tourtify.com/features/cookie-consent/) with Google Consent Mode v2, and a [media library](https://tourtify.com/features/media-library/) for images, video and PDFs.

**Bookings and operations**

* [Booking management](https://tourtify.com/features/booking-management/): upcoming trips, balances due, statuses, payments, refunds and notes in one place.
* [Booking changes](https://tourtify.com/features/booking-adjustments/): add extras, charges or discounts and send a payment link for the difference.
* [Refunds and cancellations](https://tourtify.com/features/refunds-cancellations/) through the original payment, with your cancellation policy applied.
* [Booking emails](https://tourtify.com/features/booking-emails/): confirmations with PDFs, balance and trip reminders, review requests and cancellations.
* [Manifests and check-in](https://tourtify.com/features/manifests-check-in/) from a phone, and an offline [field staff app](https://tourtify.com/features/field-staff-app/) for guides.
* [Trip builder](https://tourtify.com/features/trip-builder/): day-by-day itineraries with maps, altitude checks and a branded PDF.
* [Trekking operations](https://tourtify.com/features/trekking-operations/): permit fees by nationality, document and insurance checks, crew and safety.
* A [traveller portal](https://tourtify.com/features/traveller-portal/) where travellers pay balances, add details, sign waivers and download confirmations.

**Customers and marketing**

* [Customer CRM](https://tourtify.com/features/customer-crm/) with lifetime value, repeat traveller segments and booking history.
* [Email campaigns](https://tourtify.com/features/email-campaigns/) to a consent-based list, with live tour prices.
* [Verified reviews](https://tourtify.com/features/verified-reviews/) requested by email, SMS or WhatsApp, with links to Google and Tripadvisor.
* An [enquiries inbox](https://tourtify.com/features/enquiries-inbox/) and a [shared inbox](https://tourtify.com/features/shared-inbox/) for email, WhatsApp, SMS and website chat.

**Money, tax and reports**

* [Reports and analytics](https://tourtify.com/features/reports-analytics/): revenue booked, earned and collected, conversion, cancellations and balances due.
* [Payout reconciliation](https://tourtify.com/features/payment-reconciliation/): every Stripe payout split into payments, fees and refunds.
* [Tax invoices and e-invoicing](https://tourtify.com/features/e-invoicing/): credit notes, Peppol, Italy SdI, Spain VERI*FACTU, Mexico CFDI, Saudi ZATCA and [Nepal IRD e-billing](https://tourtify.com/features/ird-e-billing-nepal/).

**Team, security and switching**

* [Team roles](https://tourtify.com/features/team-roles/) for owners, admins, sales agents and guides, [two-factor sign-in](https://tourtify.com/features/two-factor-authentication/) and a [console in 15 languages](https://tourtify.com/features/multilingual-console/).
* [Tour import](https://tourtify.com/features/tour-import/) from your current website or a WordPress export, and [customer and booking import](https://tourtify.com/features/customer-booking-import/) from FareHarbor, Rezdy, Bókun, Peek Pro or Checkfront.
* [Integrations](https://tourtify.com/integrations/) for payments, accounting, marketing, messaging and distribution, and [security](https://tourtify.com/security/) built in: isolated data per business, encryption and backups.

See [all features](https://tourtify.com/features/), [pricing](https://tourtify.com/pricing/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=pricing), how Tourtify [compares with FareHarbor, Rezdy, Bókun and others](https://tourtify.com/compare/), and [how to switch to Tourtify](https://tourtify.com/switch-to-tourtify/).

= You need a Tourtify account =

The plugin shows the tours you manage in Tourtify and opens their booking windows, so it needs a Tourtify account. New accounts start with a **30-day free trial, no card needed**: [create your Tourtify account](https://app.tourtify.com/register?utm_source=wordpress.org&utm_medium=readme&utm_campaign=signup).

= External services =

This plugin connects to the Tourtify service, which runs the bookings. Nothing is sent to Tourtify until you connect in **WP Admin › Tourtify**.

* **Connect with Tourtify**: when you click it, your browser goes to `https://app.tourtify.com/connect/wordpress` with the address of this site's Tourtify settings page, your site's name, a one-time state and a PKCE challenge. You sign in to Tourtify and choose your business (only people who may publish its website can). Tourtify sends your browser back with a one-time code, and your WordPress server swaps it at `https://app.tourtify.com/api/wordpress/v1/token`, sending the code, the PKCE verifier and this site's address, for a key that only this site can use. The key is stored in this site's settings. Tourtify then lets this site's address show your booking window. This is the only way to connect, so nobody can show another business's tours.
* **Your tours**: your WordPress server fetches `<your Tourtify website>/embed/tours.json` with the key (your published tours, prices and filters) when a page with a Tourtify block or shortcode is shown, at most every ten minutes. The request contains the currency and language to show; no visitor data is sent.
* **Disconnecting**: Disconnect (and deleting the plugin) sends the key to `<your Tourtify website>/embed/disconnect` so it stops working. You can also disconnect the site in Tourtify under Tours › Add to another website.
* **Booking window**: pages with a Book now button load `<your Tourtify website>/embed/booking.js` in the visitor's browser. When a visitor clicks the button, the tour's booking page opens from your Tourtify website in a window over your page, and what they enter there is sent to Tourtify to make the booking. The booking records the path of your page and any campaign tags (utm_*) on it, so you can see where bookings come from.
* **Reviews**: pages with a Tourtify reviews block load `<your Tourtify website>/embed/reviews.js`, which shows your reviews from Tourtify.

The plugin suggests text for your privacy policy under Settings › Privacy. Tourtify's [Terms of Service](https://tourtify.com/legal/terms/) and [Privacy Policy](https://tourtify.com/legal/privacy/).

== Installation ==

1. In WP Admin, go to Plugins › Add New, search for **Tourtify**, then install and activate it.
2. Go to **Tourtify** in the admin menu and click **Connect with Tourtify**. Sign in, choose your business and confirm. No Tourtify account yet? Click **Create a free account** first.
3. Click **Create a Tours page**, or add the Tourtify blocks or shortcodes to any page.
4. Click Book now on your page to make a test booking. It appears in Tourtify under Bookings, with your website as its source.

== Frequently Asked Questions ==

= Do I need a Tourtify account? =

Yes. The plugin shows the tours you manage in Tourtify. You can [start a 30-day free trial](https://app.tourtify.com/register?utm_source=wordpress.org&utm_medium=readme&utm_campaign=faq), no card needed.

= Does Tourtify take a commission? =

No. Tourtify charges a monthly plan and takes 0% commission on bookings. Your payment provider's own fees apply. See [pricing](https://tourtify.com/pricing/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=faq).

= Where does the money go? =

Into your own payment account (Stripe, PayPal or a regional gateway). Tourtify never holds your money.

= Where does payment happen? =

On your secure Tourtify checkout, as a full page, because payment providers don't allow their pages inside a window. Travellers then get their confirmation by email.

= Will it match my theme? =

Yes. Tour cards use your theme's fonts and colours, and the buttons use your theme's button style. You can turn the plugin's card styles off entirely and style them from your theme.

= Can I keep my current theme and pages? =

Yes. That is what the plugin is for: your WordPress site stays your website, and Tourtify runs the bookings.

= Does it slow my site down? =

No. Tour cards are cached on your server for ten minutes, and the booking script loads only on pages with a Book now button, asynchronously. If Tourtify can't be reached, your pages show the last good copy of your tours.

= Is it good for SEO? =

Tour cards are plain HTML on your own domain, rendered on your server, so search engines see your tours, prices and links like the rest of your page.

= Does it work in my language and currency? =

Tour cards follow your WordPress site's language when your Tourtify website offers it, and you can choose any currency your Tourtify website sells in. The plugin itself is translation-ready.

= Does it work with page builders? =

Yes. Use the shortcodes in Elementor, Divi, Beaver Builder, Bricks, the classic editor or widgets, and the blocks in the block editor.

= Does it work on multisite? =

Yes. Each site connects to its own Tourtify business.

= I use WP Travel Engine, WP Travel or Yatra. =

You can run the Tourtify plugin next to them while you move. Tourtify can [import your tours](https://tourtify.com/features/tour-import/) from a WordPress export file or from your website.

= Can I change how the cards look? =

Yes, without code: WP Admin › Tourtify › Display sets the layout (grid or list), columns, which parts each card shows and the button text, with a live preview. Every block and shortcode can override those for itself, pick specific tours and sort them by price, duration, rating, name or next departure.

= Can developers customise it? =

Yes, without editing the plugin, so updates never undo your changes:

* **Template**: copy `templates/card.php` to `your-theme/tourtify/card.php` and edit it.
* **Styles**: CSS custom properties (`--tourtify-gap`, `--tourtify-radius`, `--tourtify-image-ratio`, `--tourtify-card-min`, `--tourtify-card-bg`, `--tourtify-border`), or turn the plugin's styles off.
* **Filters**: `tourtify_tour_list_args`, `tourtify_tours`, `tourtify_card_html`, `tourtify_template`, `tourtify_button_attributes`, `tourtify_button_label`, `tourtify_button_html`, `tourtify_load_styles`, `tourtify_feed`, `tourtify_cache_ttl`, `tourtify_request_args`.
* **Actions**: `tourtify_before_tours`, `tourtify_after_tours`, `tourtify_card_start`, `tourtify_card_end`.
* **Functions**: `tourtify_get_tours()`, `tourtify_get_tour()`, `tourtify_book_button()`, `tourtify_tours()`, `tourtify_site_url()`.
* **Browser events**: `tourtify:open`, `tourtify:close` and `tourtify:checkout` for your analytics, and `Tourtify.open( slug )` to open a booking window from your own code.

WP Admin › Tourtify › Developers lists them all with examples.

= Where can I get help? =

In the [Tourtify help centre](https://docs.tourtify.com/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=faq), from [Tourtify support](https://tourtify.com/contact/?utm_source=wordpress.org&utm_medium=readme&utm_campaign=faq), or in this plugin's support forum.

== Screenshots ==

1. Tour cards on a WordPress page, in the theme's own style.
2. The booking window over the page: dates with live seats, travellers, extras and checkout.
3. On phones the booking window opens full screen.
4. The Tourtify tours block in the block editor, with filters, sorting and a live preview.
5. WP Admin › Tourtify › Display: layout, what each card shows and the button text, with a live preview.
6. WP Admin › Tourtify › Tours: every published tour with a ready-to-copy shortcode.
7. Connect with Tourtify: choose your business and confirm.

== Changelog ==

= 1.2.0 =
* First release on WordPress.org.
* Tour cards, Book now buttons and reviews, as blocks and shortcodes, with ready-made patterns and a one-click Tours page.
* Connect with Tourtify: sign in and choose your business; this site gets its own key (one-time code with PKCE), and Disconnect revokes it at once.
* Display settings with a live preview: grid or list, columns, card parts, button text and currency.
* Tour lists by destination, activity, category or hand-picked tours, sorted by price, duration, rating, name or next departure.
* For developers: an overridable card template, filters, actions, template functions, CSS custom properties and browser events.
* Fast and dependable: tours cached for ten minutes, the last good copy shown if Tourtify can't be reached, and a one-minute back-off after a failed request.
* A Site Health check, suggested privacy policy text, and clean removal on single sites and multisite.
