{"id":376185,"date":"2026-10-05T19:47:18","date_gmt":"2026-10-05T19:47:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tripwise-itinerary-planner\/"},"modified":"2026-10-05T19:47:10","modified_gmt":"2026-10-05T19:47:10","slug":"mytsys-travel-itinerary-planner","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mytsys-travel-itinerary-planner\/","author":23461108,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.9.5","stable_tag":"1.9.5","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Mytsys Travel Itinerary Planner","header_author":"Mytsys Software Solutions","header_description":"Full-featured travel booking: trips, day-by-day itineraries, availability, per-traveler-type pricing, extras, deposits, enquiries, reviews, wishlists, vendors, and Stripe\/PayPal payments.","assets_banners_color":"c9cebe","last_updated":"2026-10-05 19:47:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mytsys.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":293,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.9.5":{"tag":"1.9.5","author":"mytsyssoftwaresolutions","date":"2026-10-05 19:47:10","revision":3729588}},"upgrade_notice":{"1.9.5":"<p>Fixes the Availability Manager calendar, shows the trip title on most themes, and styles the review form.<\/p>","1.9.4":"<p>Unpriced trips get the full estimator, which ends in a quote request instead of a payment.<\/p>","1.9.3":"<p>Styling for the vendor dashboard and account pages, and &quot;Price on request&quot; for unpriced trips.<\/p>","1.9.2":"<p>Cover image and photo gallery controls for every trip, and the full gallery on the trip page.<\/p>","1.9.1":"<p>Security and standards fixes from the plugin review.<\/p>","1.9.0":"<p>New name and prefixes, and a security and standards review of the whole plugin.<\/p>","1.8.3":"<p>Security and reliability release. Upload over the existing plugin; your trips, bookings and settings are kept.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3729588,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3729588,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3729588,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3729588,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.9.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3729588,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3729588,"resolution":"10","location":"assets","locale":"","width":1440,"height":900},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3729588,"resolution":"11","location":"assets","locale":"","width":1440,"height":900},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3729588,"resolution":"12","location":"assets","locale":"","width":1440,"height":900},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3729588,"resolution":"13","location":"assets","locale":"","width":1440,"height":900},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3729588,"resolution":"14","location":"assets","locale":"","width":1440,"height":900},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3729588,"resolution":"15","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3729588,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3729588,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3729588,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3729588,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3729588,"resolution":"6","location":"assets","locale":"","width":1440,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3729588,"resolution":"7","location":"assets","locale":"","width":1440,"height":900},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3729588,"resolution":"8","location":"assets","locale":"","width":1440,"height":900},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3729588,"resolution":"9","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Trip page: photo gallery, key facts and the three-step Trip Cost Estimator.","2":"Day-by-day itinerary shown as a route timeline on the trip page.","3":"Trips without a price use the same estimator to collect a quote request.","4":"The dark colour scheme, set for the whole site or for a single trip.","5":"Traveller reviews with a rating summary and a star-rating review form.","6":"Trip listing with search, filters and sorting.","7":"Front-end dashboard for vendors (partner operators).","8":"Admin dashboard with booking totals and recent bookings.","9":"Bookings list with filters, payment status and bulk actions.","10":"Trip editor: build the itinerary day by day, with locations and meals.","11":"Trip editor: departures, each with its own length, price and seats.","12":"Trip editor: cover image, sortable photo gallery and map settings.","13":"Availability Manager calendar with seats left per date.","14":"Enquiries and quote requests, with status and internal notes.","15":"Design settings: match your theme, choose a preset or set your own colours."}},"plugin_section":[],"plugin_tags":[269,125417,11956,249,183778],"plugin_category":[39,40],"plugin_contributors":[282704],"plugin_business_model":[],"class_list":["post-376185","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-itinerary","plugin_tags-tour","plugin_tags-travel","plugin_tags-trip-planner","plugin_category-business","plugin_category-calendar-and-events","plugin_contributors-mytsyssoftwaresolutions","plugin_committers-mytsyssoftwaresolutions"],"banners":{"banner":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/banner-772x250.png?rev=3729588","banner_2x":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/banner-1544x500.png?rev=3729588","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/icon-128x128.png?rev=3729588","icon_2x":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/icon-256x256.png?rev=3729588","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-1.png?rev=3729588","caption":"Trip page: photo gallery, key facts and the three-step Trip Cost Estimator."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-2.png?rev=3729588","caption":"Day-by-day itinerary shown as a route timeline on the trip page."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-3.png?rev=3729588","caption":"Trips without a price use the same estimator to collect a quote request."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-4.png?rev=3729588","caption":"The dark colour scheme, set for the whole site or for a single trip."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-5.png?rev=3729588","caption":"Traveller reviews with a rating summary and a star-rating review form."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-6.png?rev=3729588","caption":"Trip listing with search, filters and sorting."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-7.png?rev=3729588","caption":"Front-end dashboard for vendors (partner operators)."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-8.png?rev=3729588","caption":"Admin dashboard with booking totals and recent bookings."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-9.png?rev=3729588","caption":"Bookings list with filters, payment status and bulk actions."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-10.png?rev=3729588","caption":"Trip editor: build the itinerary day by day, with locations and meals."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-11.png?rev=3729588","caption":"Trip editor: departures, each with its own length, price and seats."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-12.png?rev=3729588","caption":"Trip editor: cover image, sortable photo gallery and map settings."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-13.png?rev=3729588","caption":"Availability Manager calendar with seats left per date."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-14.png?rev=3729588","caption":"Enquiries and quote requests, with status and internal notes."},{"src":"https:\/\/ps.w.org\/mytsys-travel-itinerary-planner\/assets\/screenshot-15.png?rev=3729588","caption":"Design settings: match your theme, choose a preset or set your own colours."}],"raw_content":"<!--section=description-->\n<p><strong>Mytsys Travel Itinerary Planner<\/strong> lets you build and sell travel packages directly from WordPress \u2014 no third-party booking platform required.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Trip Builder<\/strong> \u2014 Create trips with featured images, rich descriptions, destinations, difficulty, trip type, and duration<\/li>\n<li><strong>Day-by-Day Itinerary<\/strong> \u2014 Drag-and-drop itinerary builder with location, meals, accommodation, and GPS coordinates per day<\/li>\n<li><strong>Photo Gallery<\/strong> \u2014 Multi-image gallery using the WordPress media library<\/li>\n<li><strong>Interactive Map<\/strong> \u2014 Google Maps integration with a route drawn through all day locations<\/li>\n<li><strong>Included \/ Excluded Lists<\/strong> \u2014 Clear visual breakdown for travelers<\/li>\n<li><strong>Availability Calendar<\/strong> \u2014 Per-date seat management with open \/ closed \/ sold-out states<\/li>\n<li><strong>Flexible Pricing<\/strong> \u2014 Per-person, fixed package, or both; sale price support<\/li>\n<li><strong>Payments<\/strong> \u2014 Stripe Checkout (card) and PayPal Orders API, plus pay-later (cash) option<\/li>\n<li><strong>Vendor \/ Multi-operator Support<\/strong> \u2014 Approve travel agents as vendors; each sees only their own trips<\/li>\n<li><strong>Admin Dashboard<\/strong> \u2014 Booking management, bulk actions, status updates, revenue reports<\/li>\n<li><strong>Frontend Search<\/strong> \u2014 AJAX-powered search with keyword, destination, type, difficulty, duration, and price filters<\/li>\n<li><strong>Email Notifications<\/strong> \u2014 HTML confirmation and cancellation emails to traveler and admin<\/li>\n<li><strong>Shortcodes<\/strong> \u2014 Drop search, booking form, confirmation page, or My Bookings anywhere<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[mtipl_search]<\/code> \u2014 Trip search page<\/li>\n<li><code>[mtipl_booking_form]<\/code> \u2014 Booking form (auto-detects trip or pass <code>trip_id=\"123\"<\/code>)<\/li>\n<li><code>[mtipl_confirmation]<\/code> \u2014 Post-payment confirmation page<\/li>\n<li><code>[mtipl_my_bookings]<\/code> \u2014 Logged-in user's booking history<\/li>\n<li><code>[mtipl_vendor_dashboard]<\/code> \u2014 Frontend vendor dashboard (trips, bookings, profile, stats)<\/li>\n<\/ul>\n\n<h4>External Services<\/h4>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<p><strong>Stripe<\/strong> (https:\/\/stripe.com)\nUsed for card payment processing. Booking amount, currency, and customer email are sent to Stripe's servers.\n- Terms: https:\/\/stripe.com\/legal\n- Privacy: https:\/\/stripe.com\/privacy<\/p>\n\n<p><strong>PayPal<\/strong> (https:\/\/www.paypal.com)\nUsed for PayPal payment processing. Booking amount, currency, and customer info are sent to PayPal's servers.\n- Terms: https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full\n- Privacy: https:\/\/www.paypal.com\/us\/legalhub\/privacy-full<\/p>\n\n<p><strong>Google Maps JavaScript API<\/strong> (https:\/\/maps.googleapis.com)\nLoaded only on trip pages, and only when you enter a Maps API key under Settings. Your API key and the visitor's browser request go to Google; no traveller or booking data is sent.\n- Terms: https:\/\/cloud.google.com\/maps-platform\/terms\n- Privacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Calendar sync (iCal import)<\/strong> \u2014 addresses you enter\nOff until you add a calendar address to a trip. The plugin then fetches that address on a schedule (for example an Airbnb or Booking.com export) to mark dates as unavailable. Only a plain request for the calendar file is sent; no booking or traveller data leaves your site. The terms and privacy policy that apply are those of whichever service hosts the calendar you entered.<\/p>\n\n<p><strong>Outgoing webhooks<\/strong> \u2014 addresses you enter\nOff until you add a webhook endpoint. When a booking is created, paid or cancelled, the plugin sends that booking to your endpoint, including the lead traveller's name, email, phone number, travel date and amounts. Each request is signed with a secret you control. Data goes only to the addresses you configure (for example Zapier, Make or your own CRM), and their terms and privacy policies apply.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mytsys-travel-itinerary-planner<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Go to <strong>Mytsys Travel \u2192 Settings<\/strong> to configure Stripe, PayPal, Google Maps, and page assignments<\/li>\n<li>Create a <strong>Confirmation<\/strong> page and add the <code>[mtipl_confirmation]<\/code> shortcode<\/li>\n<li>Create a <strong>My Bookings<\/strong> page and add the <code>[mtipl_my_bookings]<\/code> shortcode<\/li>\n<li>Create a <strong>Search<\/strong> page and add the <code>[mtipl_search]<\/code> shortcode<\/li>\n<li>Start adding trips under <strong>Trips \u2192 Add New Trip<\/strong><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20stripe%20account%3F\"><h3>Do I need a Stripe account?<\/h3><\/dt>\n<dd><p>Only if you want to accept card payments. PayPal and cash options are available without Stripe.<\/p><\/dd>\n<dt id=\"can%20vendors%20add%20their%20own%20trips%3F\"><h3>Can vendors add their own trips?<\/h3><\/dt>\n<dd><p>Yes. Assign the <strong>Travel Vendor<\/strong> role to any user. They can create and manage their own trips in the WordPress admin.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20single%20trip%20template%3F\"><h3>Can I customize the single trip template?<\/h3><\/dt>\n<dd><p>Copy <code>templates\/single-mtipl_trip.php<\/code> from the plugin folder into a <code>mytsys-travel-itinerary-planner<\/code> folder inside your theme. WordPress will use your theme's version automatically.<\/p><\/dd>\n<dt id=\"is%20the%20booking%20data%20stored%20in%20my%20database%3F\"><h3>Is the booking data stored in my database?<\/h3><\/dt>\n<dd><p>Yes. All bookings, availability data, itinerary days, and vendor profiles are stored in your own WordPress database.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.9.5<\/h4>\n\n<ul>\n<li>Fix: the Availability Manager calendar stayed on \"Loading\u2026\". Its request was refused because it carried the admin security token, which the calendar endpoint did not accept.<\/li>\n<li>Fix: the trip title was missing from trip pages on most themes. It is now shown, except on Avada, whose page title bar already prints it. The <code>mtipl_show_trip_title<\/code> filter still overrides this.<\/li>\n<li>Fix: with four photos, the gallery strip on the trip page left an empty gap.<\/li>\n<li>The review form on trip pages is now styled to match the trip page in light and dark schemes, with a clickable star rating.<\/li>\n<li>Admin dashboard cards use WordPress Dashicons instead of emoji, and dates without a set departure no longer read \"- left\" in the calendar.<\/li>\n<\/ul>\n\n<h4>1.9.4<\/h4>\n\n<ul>\n<li>Trips with no price set keep the full Trip Cost Estimator. Visitors choose a date, length and travellers, then enter their details, as on a priced trip. Every amount reads \"On request\", and the last step, \"Send request\", sends a quote request instead of taking a payment.<\/li>\n<li>The quote request is stored as an enquiry with the date, travellers, length, contact details and notes already filled in, and the usual enquiry email goes to the site. No booking is created and nothing is charged.<\/li>\n<li>The spam trap and the one-request-per-minute limit are shared with the enquiry form. The new <code>mtipl_quote_requested<\/code> action fires after each request.<\/li>\n<li>The trip length in the booking summary now reads \"1 day\" \/ \"7 days\" correctly.<\/li>\n<li>A failed security check on the booking, enquiry or balance form now returns 403 Forbidden instead of 500.<\/li>\n<\/ul>\n\n<h4>1.9.3<\/h4>\n\n<ul>\n<li>Fix: the vendor dashboard, booking confirmation, My Bookings, balance payment, reviews, wishlist, enquiry form and promo code field had no styling of their own and showed as plain text on many themes. They are now fully styled from the site's design colours, in light and dark.<\/li>\n<li>Vendor dashboard redesigned: summary cards, tabbed navigation, trip cards with cover photos, bookings tables and a two-column profile form; revenue is shown in the trips' own currency.<\/li>\n<li>Trips with no price set now show \"Price on request\" with the quote form open, instead of a 0.00 estimator. A booking at 0.00 is refused.<\/li>\n<\/ul>\n\n<h4>1.9.2<\/h4>\n\n<ul>\n<li>New: Photos tab in the trip editor, second after General: choose the cover image and add, remove and drag to reorder gallery photos.<\/li>\n<li>Fix: trips always have a featured (cover) image box, even with themes that switch featured images on only for posts and pages.<\/li>\n<li>Fix: the trip page showed only the first gallery photo. It now shows the cover image and every gallery photo, in the order you set, and clicking a photo opens a full-screen viewer with arrow-key navigation.<\/li>\n<li>Trip cards use the first gallery photo when a trip has no cover image.<\/li>\n<li>Trips open in the classic editor so the whole Trip Data panel is in view. Return true from the mtipl_trip_block_editor filter to keep the block editor.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>The bundled FPDF library is renamed MTIPL_FPDF and declared only when absent, so it cannot clash with another plugin's copy.<\/li>\n<li>Every posted array (itinerary days, pricing, departures, extras, FAQs, travellers) is sanitised where it is read; enquiry fields are read and sanitised one by one.<\/li>\n<li>Payment returns from Stripe and PayPal must carry a WordPress nonce and a signature bound to the booking before anything is read or changed.<\/li>\n<li>Stripe webhook events are verified against the Stripe-Signature header, then sanitised in full before any field is used.<\/li>\n<li>The vendor dashboard refuses submissions without a valid nonce or the vendor role with HTTP 403.<\/li>\n<li>Every review, signed in or not, must come from the site's own form.<\/li>\n<li>Custom font families and colours are validated before they are printed in CSS.<\/li>\n<li>Trip lists are printed through wp_kses(); block-theme headers and footers through core's block_template_part().<\/li>\n<li>Database queries name their tables directly instead of through an ignore annotation; the calendar feed is plain text escaped with esc_html().<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Renamed to Mytsys Travel Itinerary Planner (slug mytsys-travel-itinerary-planner). Every function, class, constant, option, hook, post type, taxonomy, table, shortcode, nonce and script handle now uses the mtipl_ \/ MTIPL_ prefix.<\/li>\n<li>All admin JavaScript is loaded through wp_enqueue_script(); no inline script tags or inline event handlers remain.<\/li>\n<li>Structured data is printed through wp_print_inline_script_tag() with tag-safe JSON encoding.<\/li>\n<li>Every registered setting has its own explicit sanitize callback.<\/li>\n<li>Stripe and PayPal responses are validated field by field before use.<\/li>\n<li>Page templates are rendered inside a method, so none of their variables are global.<\/li>\n<li>Translations load through WordPress.org language packs; load_plugin_textdomain() is no longer called.<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Fix: card and PayPal checkout sent customers to wp-admin instead of Stripe or PayPal. The payment hosts are now allowed redirect targets.<\/li>\n<li>Fix: the itinerary PDF download works (bundled FPDF 1.9, accented names, page numbers, site colours).<\/li>\n<li>Fix: fresh installs no longer return 404 on trip pages until permalinks are re-saved.<\/li>\n<li>Fix: updates take effect on the next request of any kind, not only after someone opens wp-admin.<\/li>\n<li>Fix: \"Remove demo data\" no longer deletes the Booking Confirmation and My Bookings pages or any page of your own; missing pages are recreated on update.<\/li>\n<li>Fix: trip pages keep the site header and footer on block themes.<\/li>\n<li>Fix: apostrophes are stored without added backslashes (itinerary, extras, vendor profiles, enquiries, bookings).<\/li>\n<li>Fix: the Bookings link in the trip list opens that trip's bookings.<\/li>\n<li>Fix: reviews have a form again, with a nonce for logged-in reviewers.<\/li>\n<li>Fix: promo code dates are stored correctly, duplicates are reported, and negative values are refused.<\/li>\n<li>Security: payment return and cancel links are signed, so a cancel link cannot release another booking's seats.<\/li>\n<li>Security: Stripe webhooks accept rotated secrets, reject replays, and record each payment once even under concurrent delivery.<\/li>\n<li>Security: promo code checks are rate limited; traveller rows are capped at the booking's party size.<\/li>\n<li>Security: draft and private trips cannot be booked, reviewed or wishlisted by editing a form.<\/li>\n<li>Security: itinerary days and extras can only be edited on the trip they belong to.<\/li>\n<li>Security: every public AJAX endpoint answers only for published trips; email templates are rendered from a fixed list, without extract().<\/li>\n<li>Security: deleting the plugin always removes stored payment keys and secrets; everything else is removed only if you tick Trips \u2192 Booking &amp; Tax \u2192 Delete all data.<\/li>\n<li>Fix: activation brings every table to the current structure; cancelling returns seats exactly once, atomically.<\/li>\n<li>Tested on WordPress 5.8 and 7.1 with PHP 8.4, on block and classic themes.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Trip pages are prefetched on hover, so the flight transition lands on a page that is already loading.<\/li>\n<li>Boarding-pass overlay during the transition.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Trips listing rebuilt: cards render on the server, with nine layouts (Grid, List, Timeline, Masonry, Magazine, Carousel, Compact, Postcard, Mosaic).<\/li>\n<li>Listing prices come from the quote engine, so category and sale pricing show correctly.<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>Wine palette, and a Design screen that shows the colours actually reaching the front end.<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Trips without fixed departures can be booked on any date; travel dates are validated on the server.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Departures with their own length and price; three-step booking form.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Traveller categories, extras, deposits, enquiries, reviews, FAQ, iCal sync, webhooks, structured data.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Sell tours and trips: day-by-day itineraries, departures, per-traveller pricing, deposits, and Stripe or PayPal checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=376185"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mytsyssoftwaresolutions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376185"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376185"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376185"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376185"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376185"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}