=== Yatra - Travel Booking & Tour Management === Contributors: MantraBrain Tags: tour-booking, tour-operator, travel, travel-booking, travel-agency Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 3.0.3 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Tours & activities: trips, departures, PayPal, Pay Later, guests, email, reports. [Yatra Pro](https://wpyatra.com/pricing/): cards, deposits, modules. == Description == **✈️ Yatra** is a WordPress plugin built for **tour operators, activity providers, and travel brands** that need real trip inventory—not a generic shop. The free version includes a full booking office: trips, availability, checkout, customer records, and essential emails. **[Yatra Pro](https://wpyatra.com/pricing/)** unlocks [premium payment methods](https://wpyatra.com/pricing/) and a suite of [Pro modules](https://wpyatra.com/pricing/) you can turn on as your business grows. **Official site:** 🌐 [wpyatra.com](https://wpyatra.com/) · 📖 [docs.wpyatra.com](https://docs.wpyatra.com) · 💬 [WordPress.org forum](https://wordpress.org/support/plugin/yatra/) = 🎬 See Yatra in action = 🎥 Watch the Yatra 3.0 walkthrough on YouTube — trips, bookings, checkout, and traveler accounts in a few minutes. For release highlights and upgrade notes, see **[Yatra 3.0 on wpyatra.com](https://wpyatra.com/yatra-3-0/)**. More tutorials: **[MantraBrain on YouTube](https://www.youtube.com/@MantraBrain)**. [youtube https://www.youtube.com/watch?v=cHmC-x7y0TQ] = ✈️ Why teams pick Yatra = * 🗺️ **Travel-first data model** — Departures, capacity, traveler types, and itineraries match how tours are actually sold. * 🧭 **One admin workspace** — Modern Yatra dashboard inside wp-admin; less tab-hopping than bolting travel onto a generic commerce stack. * ⚖️ **Honest Free vs [Pro](https://wpyatra.com/pricing/)** — Core booking, CRM-style records, reviews, and PayPal / Pay Later are in the free plugin. Card gateways and advanced modules are in [Pro](https://wpyatra.com/pricing/)—no surprise paywalls on basics like “save a trip” (saved trips / wishlist are a **[Pro](https://wpyatra.com/pricing/)** feature when enabled in settings). * 🔒 **Your site, your data** — Bookings and customer data stay in your WordPress database; payments go through the gateways you configure. = 🎁 Free plugin — what you get = **Trips and catalog** * Unlimited trips with rich descriptions, gallery, difficulty, duration, meeting points, included/excluded lists * Itinerary builder (day-by-day) * Per-trip FAQs and custom attributes * Destinations, activities, categories, and archives visitors can browse **Bookings and customers** * Booking lifecycle (e.g. pending, confirmed, completed, cancelled) with references * Traveler details, notes, and operational views your staff use daily * Customer accounts: booking history, payments, profile, and document access (e.g. invoices, vouchers, itineraries) where you enable them * Guest checkout and registered users **Pricing and availability** * Sale and regular pricing, traveler-based pricing (adults, children, custom types) * Departures, capacity, and recurring availability rules * Discounts and coupons **Payments (free)** * **PayPal** * **Pay Later** (book now, confirm or pay offline—ideal for bank transfer, cash on arrival, or invoice workflows) **Email** * Core delivery settings and essential traveler templates (e.g. booking, payment, cancellation, reminder) **Front end** * Templates for trip listings, single trip, booking flow, checkout, and account * Blocks and shortcodes to place trips, search, login, and account on any page * Responsive layouts; works with well-coded block and classic themes **Reviews and reporting** * Reviews with moderation and trip-level display * Admin reports for bookings, revenue, and trends **Quality and extensibility** * PHP 7.4 or newer, structured codebase * Hooks and filters for customization; template overrides in your theme * REST-oriented flows for booking and account experiences in 3.x = 💎 Yatra Pro — when you are ready to scale = **[Compare plans and buy Yatra Pro](https://wpyatra.com/pricing/)** — same [Pro](https://wpyatra.com/pricing/) software on every tier; plans differ by **site activations** and **support level**. **Premium gateways (examples)** * [Stripe](https://wpyatra.com/pricing/), [Razorpay](https://wpyatra.com/pricing/), [Mollie](https://wpyatra.com/pricing/), [Paystack](https://wpyatra.com/pricing/), [Square](https://wpyatra.com/pricing/), [Authorize.Net](https://wpyatra.com/pricing/), [bank transfer](https://wpyatra.com/pricing/) (region and account dependent) **[Pro modules](https://wpyatra.com/pricing/)** (enable under Yatra → Modules) * [Flexible Payments](https://wpyatra.com/pricing/) — deposits and partial payments * [Dynamic Pricing](https://wpyatra.com/pricing/) — rules for seasonality, demand, early bird, last minute * [Advanced Discount](https://wpyatra.com/pricing/) — group-style discounts alongside coupons * [Google Calendar sync](https://wpyatra.com/pricing/) * [Additional Services](https://wpyatra.com/pricing/) — sell extras with the trip * [Trip Consent](https://wpyatra.com/pricing/) — digital waivers and signatures * [Email Automation](https://wpyatra.com/pricing/) — extended templates, sequences, logs * [Custom booking questions](https://wpyatra.com/pricing/) — drag-and-drop extra fields * [Mailchimp](https://wpyatra.com/pricing/), [Facebook Pixel](https://wpyatra.com/pricing/), [Google Analytics 4 Enhanced](https://wpyatra.com/pricing/) * [Abandoned Booking Recovery](https://wpyatra.com/pricing/) **Traveler experience** * [Saved trips / wishlist](https://wpyatra.com/pricing/) when [Yatra Pro](https://wpyatra.com/pricing/) is active and wishlist is enabled in settings **Support** * [Premium or priority support](https://wpyatra.com/pricing/) depending on plan; see [wpyatra.com](https://wpyatra.com/) for current terms and **money-back window** for paid licenses. = 🧩 Blocks and shortcodes = Use the **block editor** or **classic shortcodes** to drop catalog widgets, search, and account UI into any page. **Blocks** (search the inserter for “Yatra” or the block name): * **Tour** — block name `yatra/tour` (trip grid; same data options as the **`[yatra_trip]`** shortcode). * **Activity** — `yatra/activity`. * **Destination** — `yatra/destination`. * **Trip categories** — `yatra/trip-category` (same card layout as destinations; links use your trip category base from Settings). **Shortcodes** (attributes shown are the main filters; all accept string values as in the plugin defaults—use `yes` / `no` or `0` / `1` where noted): * **`[yatra_trip]`** — Trip listing. Alias: **`[yatra_tour]`** (same output; kept for backward compatibility). Useful attributes include `order` (asc or desc), `featured` (0 or 1), `per_page`, `category`, `destination`, `activity`, `difficulty`, `price_min`, `price_max`, `duration_min`, `duration_max`, `search`, `columns`, `show_pagination` (yes or no), `title`. Example: `[yatra_trip featured="1" per_page="6" columns="3"]` * **`[yatra_activity]`** — Activity archive-style listing. Attributes include `order`, `per_page`, `columns`, `activity` (slug or comma-separated slugs), `show_trip_count`, `show_description`, `show_image`, `show_pagination`, `hide_empty` (yes or no), `title`. * **`[yatra_destination]`** — Destination showcase. Attributes include `order`, `per_page`, `columns`, `destination` (slug or comma-separated slugs), `show_trip_count`, `show_description`, `show_image`, `show_pagination`, `hide_empty`, `featured_only` (yes or no), `title`. * **`[yatra_trip_category]`** — **Trip category showcase** (same card layout and grid behavior as **`[yatra_destination]`**). Attributes include `order`, `per_page`, `columns`, `category` (slug or comma-separated slugs — omit to list all), `show_trip_count`, `show_description`, `show_image`, `show_pagination`, `hide_empty` (yes or no), `featured_only` (yes or no), `title`. When pagination is on, page changes use the `trip_category_page` query argument. Example: `[yatra_trip_category per_page="9" columns="3" hide_empty="yes" title="Browse by style"]` * **`[yatra_search]`** — Advanced tour search form. Toggle parts with `show_filters`, `show_categories`, `show_destinations`, `show_activities`, `show_price_range`, `show_duration`, `show_difficulty` (yes or no), plus `placeholder` and `button_text`. * **`[yatra_login]`** — Customer login form. Attributes include `show_register`, `show_forgot_password`, `remember_me` (yes or no), `redirect_url`, `title`, `subtitle`. * **`[yatra_my_account]`** — Account dashboard for logged-in users (same React experience as the virtual account URL). Legacy attributes are accepted for backward compatibility but do not change the 3.x UI. * **`[yatra_discount_and_deals]`** — Discounted trips. Attributes include `order`, `per_page`, `columns`, `discount_type` (all, percentage, fixed, or group), `min_discount`, `max_discount`, `category`, `destination`, `show_original_price`, `show_percentage`, `show_time_left`, `show_pagination`, `show_filters`, `title`. **Note:** Older Yatra 2.x docs sometimes mentioned **`[yatra_cart]`**, **`[yatra_checkout]`**, or **`[yatra_mini_cart]`**. Those shortcodes are **not registered in Yatra 3.x**—checkout and booking flow use the plugin’s front-end routes and templates instead. See **[docs.wpyatra.com](https://docs.wpyatra.com)** for URLs and page setup. = 🎨 Compatible with popular themes = Yatra works with most well-coded block themes, classic themes, and major page builders. **Recommended themes** (optional—not required): * 🧳 **[Resa](https://wordpress.org/themes/resa/?ref=yatrapluginorg)** — official Yatra travel theme by MantraBrain * 🧱 **[Blocksy](https://wordpress.org/themes/blocksy/?ref=yatrapluginorg)** — modern block theme * ⚡ **[Kadence](https://wordpress.org/themes/kadence/?ref=yatrapluginorg)** — fast, flexible theme = 🔗 Quick links = * 📖 **[Documentation](https://docs.wpyatra.com/)** — installation, blocks, shortcodes, and operations * ✨ **[All features](https://wpyatra.com/features/)** — full capability list with Free vs [Pro](https://wpyatra.com/pricing/) labels (use this instead of a separate “extensions” catalog; [Pro modules](https://wpyatra.com/pricing/) are summarized there and on 💳 **[Pricing](https://wpyatra.com/pricing/)**) * 🎯 **[Live demo](https://demo.wpyatra.com/)** — see Yatra on a real WordPress demo * 🆘 **[Support portal / contact](https://mantrabrain.com/contact)** — help and commercial support routing = 💙 Join the community = * ⭐ **[Rate Yatra five stars](https://wordpress.org/support/plugin/yatra/reviews/?filter=5)** — helps other operators find the plugin * 💬 **[Facebook community](https://www.facebook.com/groups/yatrawordpressplugin)** — connect with other Yatra users * 📧 **[Email support](mailto:mantrabrain@gmail.com)** — direct email for product questions * 🐛 **[GitHub — issues & contributions](https://github.com/MantraBrain/yatra)** — bug reports and pull requests = 🚀 Try Yatra risk-free = * 🧪 **[Create a free demo site (WordPress Playground)](https://try.new/plugins/yatra)** — spin up a temporary WordPress with Yatra pre-installed; no local setup required == Installation == 🛠️ **Quick setup** 1. Install and activate **Yatra** from this screen or upload the ZIP under Plugins → Add New → Upload. 2. Complete the setup wizard (currency, basics, permalinks as prompted). 3. Add destinations and activities, then create your first trip under **Yatra → Trips**. 4. Configure **PayPal** and/or **Pay Later** under Yatra payment settings (free). Add **[Yatra Pro](https://wpyatra.com/pricing/)** when you need card gateways or [Pro modules](https://wpyatra.com/pricing/). 5. Place the booking experience on your site using Yatra templates, **blocks**, or **shortcodes** (see **🧩 Blocks and shortcodes** in the description above and [docs.wpyatra.com](https://docs.wpyatra.com)). == Frequently Asked Questions == = Is Yatra free? = Yes. The plugin on WordPress.org is free and includes the core booking stack for many operators. **[Yatra Pro](https://wpyatra.com/pricing/)** is a paid upgrade for [premium gateways](https://wpyatra.com/pricing/) and [Pro modules](https://wpyatra.com/pricing/). = Do I need code skills? = No for day-to-day operation. Developers can override templates and use hooks for custom workflows. = Which payments are free vs Pro? = **Free:** PayPal and Pay Later. **[Pro](https://wpyatra.com/pricing/):** [Stripe](https://wpyatra.com/pricing/), [Razorpay](https://wpyatra.com/pricing/), [Mollie](https://wpyatra.com/pricing/), [Paystack](https://wpyatra.com/pricing/), [Square](https://wpyatra.com/pricing/), [Authorize.Net](https://wpyatra.com/pricing/), [bank transfer](https://wpyatra.com/pricing/) (as supported for your account and region). = Can I take bookings without charging a card immediately? = Yes. Use **Pay Later** for offline confirmation, invoices, or pay-on-arrival flows. = Does Yatra work with my theme? = It works with most modern WordPress themes. Yatra ships front-end templates; your theme controls global layout and typography. For suggested pairings, see **🎨 Compatible with popular themes** in the description above. = Are invoices and vouchers only in Pro? = Travelers can access invoices, vouchers, and itineraries from the account area on the free plugin when your site is configured for it. [Pro](https://wpyatra.com/pricing/) expands payment choices and business modules—it does not remove core documents by default. = How do saved trips / wishlist work? = Saved trips appear when **[Yatra Pro](https://wpyatra.com/pricing/)** is active and **wishlist** is enabled in Yatra settings. = Is Yatra GDPR-friendly? = Use WordPress privacy tools together with Yatra: export or delete user-related data as required by your policy. Payment data is handled by your chosen gateways under their terms. = Where is documentation? = See **[docs.wpyatra.com](https://docs.wpyatra.com)** and **[wpyatra.com](https://wpyatra.com/)** for features, **[Pro](https://wpyatra.com/pricing/)**, and updates. = Where are shortcodes and blocks documented? = See **🧩 Blocks and shortcodes** in the description above. Full walkthroughs (pages, permalinks, checkout URLs) are in the documentation. = Does Yatra provide cart or checkout shortcodes? = **Not in 3.x.** Use the plugin’s booking and checkout routes and templates. Catalog, search, login, and account still have shortcodes and blocks as listed in the description. == Screenshots == 📷 **Screenshots** (as shown on WordPress.org) 1. Yatra dashboard inside WordPress — bookings, revenue, and quick access to daily tasks 2. Trip Creation Process — content, pricing, media, and settings in one workspace 3. Trip list & All listing page — search, filters, and status at a glance 4. Trip Booking Process — hero, itinerary, and book flow 5. Global Settings - Payment Gateways etc. 6. Traveler account — bookings, payments, and documents == Changelog == = 3.0.3 = * **Shortcodes:** **`[yatra_trip_category]`** — lists trip categories in the same card layout as destinations, with optional filters, pagination (`trip_category_page`), and AJAX-friendly behavior (see `TripCategoryShortcode` + `TripCategoryShortcodeAjax`). * **Upgrades:** version-gated Free upgrade runner; legacy payment tokens table dropped when applicable (see `Upgrade_3_0_3`). * **Discounts:** REST and repository hardening (writable column whitelist; safer updates). * **Single trip:** group discount discoverability in the sidebar; **Similar trips** links respect plain permalinks via `yatra_get_trip_permalink()`; enquiry modal **Send Enquiry** uses `yatra-booking-button` so primary color matches **Check Availability** and global `--yatra-primary` tokens. * **Admin / i18n:** Trip Builder meal plan strings use shared labels; attribute icon picker preserves Font Awesome `provider` after save; front-end Important Info shows translated meal plan labels (`yatra_meal_plan_label()`). * Safe to update from 3.0.2.x. = 3.0.2.9 = * **Mobile booking bar:** Improved sticky booking UI on small screens (date + travelers layout, full-width travelers dropdown opening upward, and reliable click targets). * **Admin caching:** Fixed service cache invalidation so updates (including SEO fields) reflect immediately when cache is enabled. * Safe to update from 3.0.2.8. = 3.0.2.8 = * **Booking UI:** Added Advanced settings to select **Terms & Conditions** and **Privacy Policy** pages; booking form now links to these pages (Privacy falls back to WordPress Settings → Privacy when unset). * **Fix (Usage Tracking):** Moved `StatsUsage` into `app/Services` and updated references to avoid case-sensitive autoload issues on Linux hosts. * **Fix (Gallery Modal):** Hardened gallery modal image URL resolution against LiteSpeed Cache lazy-load placeholders. * Safe to update from 3.0.2.7. = 3.0.2.7 = * **Fix (Gallery Modal):** Improved compatibility with LiteSpeed Cache lazy-load placeholders (base64 `src`) so the modal always opens the real image URLs. * **Compat (LiteSpeed Cache):** Excluded Yatra hero/gallery selectors from LiteSpeed lazy-load and excluded Yatra trip assets from optimisation where needed. * Safe to update from 3.0.2.6. = 3.0.2.6 = * **Fix:** Composer autoload path was declared as `includes/Admin/` (uppercase) but the directory on disk is `includes/admin/` (lowercase); caused fatal `include` warnings on Linux/cPanel servers (case-sensitive filesystems). * **License:** Removed stub `LicenseController` from the free plugin — all `/yatra/v1/license/*` routes are now registered exclusively by Yatra Pro's own controller, eliminating any route conflicts. * **Admin UI (Additional Services):** Added missing **Add New Service** button via the `PageHeader` component on the Additional Services screen. * Safe to update from 3.0.2.5. = 3.0.2.5 = * Admin: add Review + Upgrade notices (React UI + WordPress notices) with smart dismiss scheduling. * Setup wizard: save step settings when navigating between steps. = 3.0.2.4 = * **REST:** implemented **`TripService::permanentDelete()`** so **`DELETE /yatra/v1/trips/{id}/permanent-delete`** no longer fatals (fixes permanent delete from trash and bulk actions). * **Admin (React):** bulk trip actions rely on **`BulkActionToolbar`** confirmation only (removed duplicate **`window.confirm`**); improved bulk dialog copy for **`mark_*`** actions. * Safe to update from 3.0.2.3. = 3.0.2.3 = * **Admin (React):** moved fullscreen shell CSS into the document **head** to reduce wp-admin chrome flicker; added HTML/CSS **boot splash** and **`modulepreload`** for the admin bundle; primary **sidebar navigation** uses client-side URL updates so the PHP loading state does not repeat on every screen change. * **REST:** registered **License** routes in the API registry so **`GET /yatra/v1/license`** works on the free plugin (License screen and scripts that probe it). * **Admin UI:** hardened **Departures** and **Availability** trip dropdowns against **TanStack Query** cache shapes and `/trips` list payloads (fixes `map` / `find` errors when navigating without a full reload). * Safe to update from 3.0.2.2. = 3.0.2.2 = * Maintenance / patch release. Safe to update from 3.0.2.1. = 3.0.2.1 = * **Readme (WordPress.org):** linked **Pro** gateways, modules, traveler features, and related mentions to **[wpyatra.com/pricing](https://wpyatra.com/pricing/)** throughout the long description, FAQ, and quick links. * Patch release; safe to update from 3.0.2. = 3.0.2 = * **Readme (WordPress.org):** reorganized the long description — the **Yatra Pro** section now appears **before** **Blocks and shortcodes** for a clearer Free → Pro → integration flow. * Documentation-only release for the plugin directory listing; no code changes required for existing 3.0.x sites. = 3.0.1 = * Maintenance release: updated WordPress.org **banner** and directory **assets** (including screenshots) for the 3.x listing. * **Readme:** shortened the plugin short description to meet WordPress.org’s **150-character** limit so imports are no longer truncated. * Minor fixes and polish; see [wpyatra.com](https://wpyatra.com/) for release notes. = 3.0.0 = * Major 3.0 release: redesigned admin experience, streamlined booking and traveler account flows, expanded gateway and module architecture for Pro, and ongoing hardening for production travel sites. * See the plugin’s release notes and [wpyatra.com](https://wpyatra.com/yatra-3-0/) for highlights. **Always back up** before upgrading from 2.x; follow migration guidance in documentation. = Earlier versions = * For 2.x changelog entries, see the plugin’s GitHub releases or historical notes on the vendor site. == Upgrade Notice == = 3.0.3 = Release **3.0.3** (`[yatra_trip_category]` shortcode, versioned upgrades, discounts, single-trip and admin polish). Safe to update from 3.0.2.x. = 3.0.2.5 = Maintenance release (setup wizard autosave, admin notices). Safe to update from 3.0.2.4. = 3.0.2.4 = Bugfix release (trip permanent-delete REST endpoint, bulk trip confirmation UX). Safe to update from 3.0.2.3. = 3.0.2.3 = Maintenance update (admin UX, REST license route, trip list stability in Departures/Availability). Safe to update from 3.0.2.2. = 3.0.2.2 = Patch release. Safe to update from 3.0.2.1. = 3.0.2.1 = Readme update (Pro feature links to pricing). Safe to update from 3.0.2. = 3.0.2 = Readme / documentation listing update only. Safe to update from 3.0.1. = 3.0.1 = Maintenance update (banner, WordPress.org readme/assets, and small fixes). Safe to update from 3.0.0. = 3.0.0 = Major release. Back up your site and database before upgrading from 2.x. Update free Yatra from WordPress.org first; then align **[Yatra Pro](https://wpyatra.com/pricing/)** with a version compatible with 3.0. == Additional Information == = Privacy = Booking and customer data are stored in your WordPress database. Payment processing is performed by the gateways you enable; review each provider’s privacy and PCI documentation. = Credits = Yatra is developed by **MantraBrain**. Third-party libraries include components such as React (admin UI), Vite, TanStack Query, and others as shipped in the plugin package. = Contributing = Issues and contributions: [GitHub — Yatra](https://github.com/MantraBrain/yatra) If Yatra helps your business, a ⭐ **five-star review** on WordPress.org and considering **💎 [Yatra Pro](https://wpyatra.com/pricing/)** when you need paid features both help sustain development. Thank you for using Yatra.