{"id":343294,"date":"2026-08-13T02:09:48","date_gmt":"2026-08-13T02:09:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-shuttle-booking\/"},"modified":"2026-09-29T08:31:23","modified_gmt":"2026-09-29T08:31:23","slug":"magepeople-shuttle-booking","status":"publish","type":"plugin","link":"https:\/\/zgh.wordpress.org\/plugins\/magepeople-shuttle-booking\/","author":15377419,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.1","stable_tag":"1.3.1","tested":"7.0.6","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"MagePeople Shuttle Booking","header_author":"MagePeople Team","header_description":"A simple shuttle booking plugin for managing routes, schedules, and passenger reservations in WordPress.","assets_banners_color":"eff5fe","last_updated":"2026-09-29 08:31:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/magepeople-shuttle-booking","header_author_uri":"https:\/\/mage-people.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":303,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"magepeopleteam","date":"2026-08-13 02:09:35","revision":3644130},"1.3.1":{"tag":"1.3.1","author":"magepeopleteam","date":"2026-09-29 08:31:23","revision":3718554}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpeg":{"filename":"icon-128x128.jpeg","revision":3644130,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-772x250.jpeg":{"filename":"banner-772x250.jpeg","revision":3644130,"resolution":"772x250","location":"assets","locale":"","width":772,"height":308}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.3.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3668238,"resolution":"1","location":"assets","locale":"","width":1696,"height":1061},"screenshot-10.jpg":{"filename":"screenshot-10.jpg","revision":3668238,"resolution":"10","location":"assets","locale":"","width":1696,"height":1061},"screenshot-11.jpg":{"filename":"screenshot-11.jpg","revision":3668238,"resolution":"11","location":"assets","locale":"","width":1696,"height":1061},"screenshot-12.jpg":{"filename":"screenshot-12.jpg","revision":3668238,"resolution":"12","location":"assets","locale":"","width":1696,"height":1061},"screenshot-13.jpg":{"filename":"screenshot-13.jpg","revision":3668238,"resolution":"13","location":"assets","locale":"","width":1696,"height":1061},"screenshot-14.jpg":{"filename":"screenshot-14.jpg","revision":3668238,"resolution":"14","location":"assets","locale":"","width":1696,"height":1061},"screenshot-15.jpg":{"filename":"screenshot-15.jpg","revision":3668238,"resolution":"15","location":"assets","locale":"","width":1696,"height":1061},"screenshot-16.jpg":{"filename":"screenshot-16.jpg","revision":3668238,"resolution":"16","location":"assets","locale":"","width":1696,"height":1061},"screenshot-17.jpg":{"filename":"screenshot-17.jpg","revision":3668238,"resolution":"17","location":"assets","locale":"","width":1696,"height":1061},"screenshot-18.jpg":{"filename":"screenshot-18.jpg","revision":3668238,"resolution":"18","location":"assets","locale":"","width":1696,"height":1061},"screenshot-19.jpg":{"filename":"screenshot-19.jpg","revision":3668238,"resolution":"19","location":"assets","locale":"","width":1696,"height":1061},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3668238,"resolution":"2","location":"assets","locale":"","width":1696,"height":1061},"screenshot-20.jpg":{"filename":"screenshot-20.jpg","revision":3668238,"resolution":"20","location":"assets","locale":"","width":1696,"height":1061},"screenshot-21.jpg":{"filename":"screenshot-21.jpg","revision":3668238,"resolution":"21","location":"assets","locale":"","width":1696,"height":1061},"screenshot-22.jpg":{"filename":"screenshot-22.jpg","revision":3668238,"resolution":"22","location":"assets","locale":"","width":1696,"height":1061},"screenshot-23.jpg":{"filename":"screenshot-23.jpg","revision":3668238,"resolution":"23","location":"assets","locale":"","width":1696,"height":1061},"screenshot-24.jpg":{"filename":"screenshot-24.jpg","revision":3668238,"resolution":"24","location":"assets","locale":"","width":1696,"height":1061},"screenshot-25.jpg":{"filename":"screenshot-25.jpg","revision":3668238,"resolution":"25","location":"assets","locale":"","width":1696,"height":1061},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3668238,"resolution":"3","location":"assets","locale":"","width":1696,"height":1061},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3668238,"resolution":"4","location":"assets","locale":"","width":1696,"height":1061},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3668238,"resolution":"5","location":"assets","locale":"","width":1696,"height":1061},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3668238,"resolution":"6","location":"assets","locale":"","width":1696,"height":1061},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3668238,"resolution":"7","location":"assets","locale":"","width":1696,"height":1061},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3668238,"resolution":"8","location":"assets","locale":"","width":1696,"height":1061},"screenshot-9.jpg":{"filename":"screenshot-9.jpg","revision":3668238,"resolution":"9","location":"assets","locale":"","width":1696,"height":1061}},"screenshots":{"1":"Shuttle search form with route, pickup, date, time and passengers","2":"Multi-stop route with per-segment fare","3":"One-way and round-trip toggle with automatic return time","4":"4-step shuttle editor in wp-admin","5":"Stop-to-stop pricing matrix","6":"Bookings dashboard with filters and one-click status changes"}},"plugin_section":[262246],"plugin_tags":[229753,283367,60207,275726,51225],"plugin_category":[40,45],"plugin_contributors":[142531],"plugin_business_model":[],"class_list":["post-343294","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-airport-transfer","plugin_tags-hotel-transfer","plugin_tags-shuttle-booking","plugin_tags-transport-booking","plugin_tags-woocommerce-booking","plugin_category-calendar-and-events","plugin_category-ecommerce","plugin_contributors-magepeopleteam","plugin_committers-magepeopleteam"],"banners":{"banner":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/banner-772x250.jpeg?rev=3644130","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/icon-128x128.jpeg?rev=3644130","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-1.jpg?rev=3668238","caption":"Shuttle search form with route, pickup, date, time and passengers"},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-2.jpg?rev=3668238","caption":"Multi-stop route with per-segment fare"},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-3.jpg?rev=3668238","caption":"One-way and round-trip toggle with automatic return time"},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-4.jpg?rev=3668238","caption":"4-step shuttle editor in wp-admin"},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-5.jpg?rev=3668238","caption":"Stop-to-stop pricing matrix"},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-6.jpg?rev=3668238","caption":"Bookings dashboard with filters and one-click status changes"},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-7.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-8.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-9.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-10.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-11.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-12.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-13.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-14.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-15.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-16.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-17.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-18.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-19.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-20.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-21.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-22.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-23.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-24.jpg?rev=3668238","caption":""},{"src":"https:\/\/ps.w.org\/magepeople-shuttle-booking\/assets\/screenshot-25.jpg?rev=3668238","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>MagePeople Shuttle Booking<\/strong> turns any WordPress + WooCommerce site into a complete shuttle booking and transportation reservation system. Build multi-stop routes, set stop-to-stop pricing, publish departure schedules, and let customers book airport shuttles, hotel transfers, corporate shuttle rides and scheduled shuttle services entirely online, with real WooCommerce checkout and real-time seat availability.<\/p>\n\n<p>Whether you run an airport shuttle service, a hotel transfer desk, a corporate or employee transport program, a tour or resort transfer operation, or a city-to-city shuttle route, this plugin gives you a route builder, a live pricing matrix, a schedule manager and a WooCommerce-powered checkout, without touching a line of code.<\/p>\n\n<h4>Try the live demo<\/h4>\n\n<p><strong><a href=\"https:\/\/wpshuttlebooking.com\/\">Live demo: wpshuttlebooking.com<\/a><\/strong> \u2013 a fully configured shuttle booking website you can use right now. No signup, no install, nothing to set up.<\/p>\n\n<p>The demo runs this exact plugin with the same one-click demo data the importer installs, so what you try there is what your own shuttle booking site will do after setup. In the demo you can:<\/p>\n\n<ul>\n<li>Search a live airport shuttle route and see that only the days the shuttle actually operates are selectable<\/li>\n<li>Choose a pickup point and a drop-off point on a multi-stop route and watch the fare update per segment<\/li>\n<li>Switch between one-way and round-trip booking and see the return departure time calculated automatically from the turnaround time<\/li>\n<li>Check real-time seat availability, tracked separately for the outbound and return leg<\/li>\n<li>Go through a complete WooCommerce checkout and end up with a real shuttle booking attached to a real order<\/li>\n<\/ul>\n\n<p>If you are comparing shuttle booking, airport transfer or hotel transfer plugins for WordPress, the demo is the fastest way to see the full booking flow before you install anything.<\/p>\n\n<h4>Why choose MagePeople Shuttle Booking?<\/h4>\n\n<ul>\n<li><strong>Built on WooCommerce<\/strong> \u2013 no separate payment system to learn. Every shuttle booking is a real WooCommerce order, so you keep every gateway, tax rule and reporting tool you already use.<\/li>\n<li><strong>True round-trip logic<\/strong> \u2013 set a turnaround time once and the plugin calculates the return departure time from the forward journey's arrival, then adds a correctly priced, correctly directed return leg to the cart.<\/li>\n<li><strong>Direction-aware seat availability<\/strong> \u2013 outbound and return seats are tracked independently, so a full outbound trip never blocks an available return trip on the same route.<\/li>\n<li><strong>Stop-to-stop pricing matrix<\/strong> \u2013 price every valid origin \u2192 destination combination individually, with an automatic fallback to the one-way fare for the return direction.<\/li>\n<li><strong>Guided route setup<\/strong> \u2013 add stops in order, set the time offset and distance from the first stop, and the plugin works out arrival times, drop-off options and schedules for you.<\/li>\n<li><strong>One-click professional demo data<\/strong> \u2013 import or sync 30 ready-made U.S. services (ten Shared, ten Private and ten Airport) with one-way and round-trip routes, fares, discounts, schedules, Travel Pass plans, location badges and local featured images.<\/li>\n<\/ul>\n\n<h4>Who is this plugin for?<\/h4>\n\n<ul>\n<li>Airport shuttle and airport transfer operators<\/li>\n<li>Hotels and resorts offering guest shuttle or transfer services<\/li>\n<li>Corporate and employee transport programs<\/li>\n<li>Campus and staff shuttle services<\/li>\n<li>Tour operators offering pickup and drop-off transfers<\/li>\n<li>City-to-city and intercity shuttle route operators<\/li>\n<li>Van, minibus and small coach transport businesses<\/li>\n<\/ul>\n\n<h4>How the booking flow works<\/h4>\n\n<ol>\n<li>A visitor searches by route, picks a pickup point, a date (only days the shuttle runs are selectable), a time and the number of passengers.<\/li>\n<li>The plugin shows the correct drop-off stops and points for that route and direction, live seat availability and the fare.<\/li>\n<li>On a round-trip route, the customer can toggle between one-way and round-trip pricing before booking.<\/li>\n<li>The booking is added to the WooCommerce cart (round trip automatically adds the return leg) and checkout is handled entirely by WooCommerce.<\/li>\n<li>After checkout, a shuttle booking record is created and linked to the order, ready for you to manage.<\/li>\n<\/ol>\n\n<h4>Features<\/h4>\n\n<p><strong>Routes, stops &amp; schedules<\/strong><\/p>\n\n<ul>\n<li>Custom shuttle post type with route builder<\/li>\n<li>Ordered, multi-stop route configuration<\/li>\n<li>Time-offset and distance data per stop (from the first stop)<\/li>\n<li>Pickup point and drop-off point support per stop<\/li>\n<li>Schedule manager with multiple departure times per route<\/li>\n<li>Per-route operating days (weekday availability)<\/li>\n<li>Turnaround-time setting with automatically calculated return departure time<\/li>\n<\/ul>\n\n<p><strong>Pricing<\/strong><\/p>\n\n<ul>\n<li>Stop-to-stop pricing matrix for every valid route segment<\/li>\n<li>Independent return-direction pricing with automatic one-way fallback<\/li>\n<li>Live fare and subtotal display before checkout<\/li>\n<li>Server-side price and availability re-validation on add-to-cart (never trusts the browser)<\/li>\n<\/ul>\n\n<p><strong>Booking &amp; availability<\/strong><\/p>\n\n<ul>\n<li>Real-time, direction-aware seat availability per date, route and segment<\/li>\n<li>Automatic calendar graying-out of fully booked dates, per direction<\/li>\n<li>Round-trip booking with automatic return-leg cart handling<\/li>\n<li>Standalone reverse-direction (return-only) booking support<\/li>\n<\/ul>\n\n<p><strong>WooCommerce integration<\/strong><\/p>\n\n<ul>\n<li>Every shuttle booking becomes a real WooCommerce order<\/li>\n<li>Works with your existing payment gateways, taxes and order emails<\/li>\n<li>Shuttle products are managed automatically, with no manual product setup<\/li>\n<\/ul>\n\n<p><strong>Admin &amp; management<\/strong><\/p>\n\n<ul>\n<li>Modern 4-step shuttle editor (Basic Info \u2192 Route \u2192 Pricing \u2192 Schedule) with AJAX autosave<\/li>\n<li>Searchable, filterable, paginated shuttle list with instant AJAX filtering<\/li>\n<li>Bookings dashboard with shuttle, route and date filters<\/li>\n<li>One-click booking status changes (processing, completed, pending, on-hold, cancelled, refunded, failed) with no page reload<\/li>\n<li>CSV export of all bookings<\/li>\n<li>One-click demo data importer to explore the plugin instantly<\/li>\n<li>Built-in environment status page (WordPress, WooCommerce and PHP checks)<\/li>\n<\/ul>\n\n<p><strong>Developer-friendly<\/strong><\/p>\n\n<ul>\n<li>Translation-ready (all strings use the <code>magepeople-shuttle-booking<\/code> text domain)<\/li>\n<li>Clean action and filter hooks for extending settings<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<p><strong>Shuttle search form:<\/strong> <code>[mpsb_shuttle_search]<\/code><\/p>\n\n<p>Displays the full booking search form (route, pickup point, date, time, passengers, drop-off stop\/point) and the trip-review screen that follows it. Travel Pass purchasing appears inside this same form automatically once weekly or monthly pass pricing is configured. There is no separate pass shortcode.<\/p>\n\n<p>Attributes:<\/p>\n\n<ul>\n<li><code>shuttle_id<\/code> \u2013 lock the form to a single shuttle (used automatically on a single shuttle page). This also removes the shuttle-type tab bar.<\/li>\n<li><code>target_page<\/code> \u2013 URL the search form should submit to.<\/li>\n<li><code>form_title<\/code> \u2013 heading text above the form (default: \"Book a Shuttle\").<\/li>\n<li><code>form_subtitle<\/code> \u2013 supporting text under the heading.<\/li>\n<li><code>passes<\/code> \u2013 controls the Travel Pass tab. Default <code>auto<\/code> shows it whenever pass pricing is on; <code>no<\/code> hides it on this form only.<\/li>\n<li><code>disable<\/code> \u2013 comma-separated shuttle-type slugs to remove from the tab bar on this form. Accepts <code>shared-city-shuttle<\/code>, <code>private-shuttle<\/code>, <code>airport-transfer<\/code>.<\/li>\n<\/ul>\n\n<p>The shuttle-type tab bar (Shared City Shuttle \/ Private Shuttle \/ Airport Transfer) builds itself from the types that currently have published routes. A type with no routes never gets a tab, and if only one type qualifies the bar is skipped. <code>disable<\/code> only affects that one form and does not unpublish routes elsewhere. No attribute sets the default tab, renames a tab or reorders tabs.<\/p>\n\n<p>Examples:<\/p>\n\n<pre><code>[mpsb_shuttle_search shuttle_id=\"123\"]\n[mpsb_shuttle_search disable=\"private-shuttle,airport-transfer\"]\n[mpsb_shuttle_search passes=\"no\"]\n<\/code><\/pre>\n\n<p><strong>Shuttle catalog \/ list:<\/strong> <code>[mpsb_shuttle_list]<\/code><\/p>\n\n<p>Displays a responsive grid or list of published shuttles with a built-in Grid\/List toggle.<\/p>\n\n<p>Attributes:<\/p>\n\n<ul>\n<li><code>columns<\/code> \u2013 number of grid columns (default 3)<\/li>\n<li><code>posts_per_page<\/code> \u2013 number of shuttles to show (default -1 for all)<\/li>\n<li><code>category<\/code> \u2013 filter by vehicle category slug (e.g. <code>van<\/code>)<\/li>\n<li><code>type<\/code> \u2013 filter by shuttle type slug (e.g. <code>airport<\/code>)<\/li>\n<li><code>stop<\/code> \u2013 filter by stop slug or stop ID<\/li>\n<li><code>orderby<\/code> \u2013 <code>date<\/code> (default), <code>title<\/code>, <code>menu_order<\/code>, <code>rand<\/code>, <code>modified<\/code> or <code>ID<\/code><\/li>\n<li><code>order<\/code> \u2013 <code>ASC<\/code> or <code>DESC<\/code> (default <code>DESC<\/code>)<\/li>\n<li><code>ids<\/code> \u2013 comma-separated shuttle IDs to show, in that order<\/li>\n<li><code>exclude<\/code> \u2013 comma-separated shuttle IDs to leave out<\/li>\n<\/ul>\n\n<p>Example: <code>[mpsb_shuttle_list columns=\"3\" posts_per_page=\"6\" category=\"luxury-van\"]<\/code><\/p>\n\n<p><strong>Customer bookings dashboard:<\/strong> <code>[mpsb_my_bookings]<\/code><\/p>\n\n<p>Shows the signed-in customer's Upcoming, Past, Cancelled and All bookings plus any travel passes. The tabs are automatic (the dashboard opens on the first tab that has bookings) and are not configurable.<\/p>\n\n<p>Attribute: <code>title<\/code> \u2013 heading above the dashboard (default: \"My bookings\").<\/p>\n\n<p><strong>Guest booking lookup:<\/strong> <code>[mpsb_find_booking]<\/code><\/p>\n\n<p>Lets a guest look up a booking using its reference and booking email.<\/p>\n\n<p>Attribute: <code>title<\/code> \u2013 heading above the form (default: \"Find my booking\").<\/p>\n\n<p><strong>Route map:<\/strong> <code>[mpsb_route_map]<\/code><\/p>\n\n<p>Displays a map of one saved shuttle route.<\/p>\n\n<p>Attributes:<\/p>\n\n<ul>\n<li><code>shuttle_id<\/code> \u2013 the shuttle whose route to map (defaults to the current shuttle on its own page)<\/li>\n<li><code>route_id<\/code> \u2013 which of that shuttle's saved routes to display<\/li>\n<\/ul>\n\n<p>Example: <code>[mpsb_route_map shuttle_id=\"123\" route_id=\"your-route\"]<\/code><\/p>\n\n<h4>Developer hooks &amp; filters<\/h4>\n\n<ul>\n<li><code>do_action( 'mpsb_before_add_cart_btn' )<\/code> \u2013 fires immediately before the add-to-cart button, useful for injecting custom content into the booking form.<\/li>\n<li><code>apply_filters( 'mpsb_filter_settings', $pages )<\/code> \u2013 register additional settings pages or sections in the plugin's settings framework.<\/li>\n<\/ul>\n\n<p>The plugin also integrates through standard WooCommerce hooks (<code>woocommerce_add_to_cart<\/code>, <code>woocommerce_checkout_order_processed<\/code>, <code>woocommerce_order_status_changed<\/code> and others) so booking records always stay in sync with the linked WooCommerce order.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>WooCommerce (required \u2013 shuttle tickets are sold through the WooCommerce cart and checkout)<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to the third-party services listed below. None of them require an account with MagePeople, and the plugin never sends your customers' personal details or booking data to any of them.<\/p>\n\n<h4>Google Fonts<\/h4>\n\n<p>Loads the \"Inter\" and \"Plus Jakarta Sans\" web fonts that style the shuttle search form and shuttle list on the front end, and the Shuttle list and Shuttle edit screens in wp-admin. The stylesheet is requested from https:\/\/fonts.googleapis.com\/css2 by the visitor's or administrator's own browser, so that browser's IP address and user agent reach Google. No booking, order or account data is sent.<\/p>\n\n<p>Provided by Google: <a href=\"https:\/\/policies.google.com\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h4>OpenStreetMap map tiles<\/h4>\n\n<p>Used by the route map (the <code>[mpsb_route_map]<\/code> shortcode and the route-map editor in wp-admin) to draw the map background. Map images are requested from https:\/\/{s}.tile.openstreetmap.org by the browser displaying the map, which passes that browser's IP address and the coordinates being viewed to the OpenStreetMap tile servers. The map library (Leaflet) ships with the plugin and is not loaded from a CDN. The tile URL is configurable if you prefer a different tile provider.<\/p>\n\n<p>Provided by the OpenStreetMap Foundation: <a href=\"https:\/\/operations.osmfoundation.org\/policies\/tiles\/\">Tile Usage Policy<\/a>, <a href=\"https:\/\/osmfoundation.org\/wiki\/Privacy_Policy\">Privacy Policy<\/a>.<\/p>\n\n<h4>Nominatim (OpenStreetMap place search)<\/h4>\n\n<p>Used only in wp-admin, and only when an administrator types a place name into the route-map editor's search box, to turn it into map coordinates. The typed search text is sent from your server to https:\/\/nominatim.openstreetmap.org\/search. Nothing is sent unless an administrator actively searches, and the endpoint can be changed with the <code>mpsb_nominatim_search_endpoint<\/code> filter.<\/p>\n\n<p>Provided by the OpenStreetMap Foundation: <a href=\"https:\/\/operations.osmfoundation.org\/policies\/nominatim\/\">Nominatim Usage Policy<\/a>, <a href=\"https:\/\/osmfoundation.org\/wiki\/Privacy_Policy\">Privacy Policy<\/a>.<\/p>\n\n<p>The plugin's shared settings and field-rendering framework can also connect to the following services, depending on which field types a configuration uses:<\/p>\n\n<h4>Google Maps JavaScript API<\/h4>\n\n<p>Used to render an interactive map preview for \"Google Map\" type settings fields. When such a field is displayed with a preview enabled, the plugin loads https:\/\/maps.googleapis.com\/maps\/api\/js using the API key configured for that field, and the browser's request for that script (including the key) is sent to Google. No user location or personal data is transmitted by the plugin itself.<\/p>\n\n<p>Provided by Google: <a href=\"https:\/\/cloud.google.com\/maps-platform\/terms\">Maps Platform Terms of Service<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h4>Google reCAPTCHA<\/h4>\n\n<p>Used to render a reCAPTCHA (v2 checkbox or v3) challenge for \"Google reCAPTCHA\" type settings fields, to help protect forms from spam. When displayed, the plugin loads https:\/\/www.google.com\/recaptcha\/api.js using the site key configured for that field. Google's script may collect information about the visitor's browser and interactions to assess whether the visitor is human, per Google's own reCAPTCHA terms.<\/p>\n\n<p>Provided by Google: <a href=\"https:\/\/policies.google.com\/terms\">reCAPTCHA Terms<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h4>Gravatar<\/h4>\n\n<p>Used by the \"User select\" settings field type to show a preview image next to each selected WordPress user, via WordPress core's <code>get_avatar_url()<\/code>. This requests an avatar image from Gravatar.com based on the selected user's email address, as WordPress core does by default for any user avatar.<\/p>\n\n<p>Provided by Automattic: <a href=\"https:\/\/automattic.com\/tos\/\">Terms of Service<\/a>, <a href=\"https:\/\/automattic.com\/privacy\/\">Privacy Policy<\/a>.<\/p>\n\n<h4>Appneck<\/h4>\n\n<p>Used to collect some telemetry data upon your confirmation, to troubleshoot problems faster and make product improvements. Appneck does not gather any data by default; the SDK only starts gathering basic telemetry data when you allow it via the admin notice.<\/p>\n\n<p>Provided by Appneck: <a href=\"https:\/\/appneck.com\/privacy-policy\/\">Privacy Policy<\/a>.<\/p>\n\n<h4>Payments<\/h4>\n\n<p>Checkout and payment processing, including any communication with gateways such as Stripe or PayPal, is handled entirely by WooCommerce and the gateway's own plugin, not by MagePeople Shuttle Booking. Refer to the documentation of WooCommerce and your chosen gateway for details of what data they transmit.<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial release of MagePeople Shuttle Booking.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>In your WordPress dashboard go to <strong>Plugins \u2192 Add New<\/strong> and search for \"MagePeople Shuttle Booking\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Import the one-click demo data to explore the plugin, or create your first shuttle with the 4-step editor (Basic Info \u2192 Route \u2192 Pricing \u2192 Schedule).<\/li>\n<li>Add the <code>[mpsb_shuttle_search]<\/code> shortcode to any page to show the booking form.<\/li>\n<li>Optional: add <code>[mpsb_shuttle_list]<\/code>, <code>[mpsb_my_bookings]<\/code> and <code>[mpsb_find_booking]<\/code> to give customers a catalog, a bookings dashboard and a guest lookup.<\/li>\n<\/ol>\n\n<p>You can also upload the plugin ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, or unzip it into <code>\/wp-content\/plugins\/<\/code> and activate it from the Plugins screen.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20need%20woocommerce%3F\"><h3>Does this plugin need WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Every shuttle booking is sold through the WooCommerce cart and checkout and becomes a real WooCommerce order.<\/p><\/dd>\n<dt id=\"which%20payment%20methods%20are%20supported%3F\"><h3>Which payment methods are supported?<\/h3><\/dt>\n<dd><p>Any payment gateway that works with your WooCommerce store, such as Stripe or PayPal. Payments, taxes and order emails are handled entirely by WooCommerce and your gateway plugin.<\/p><\/dd>\n<dt id=\"can%20i%20set%20a%20different%20price%20for%20each%20stop-to-stop%20segment%3F\"><h3>Can I set a different price for each stop-to-stop segment?<\/h3><\/dt>\n<dd><p>Yes. The pricing matrix lets you price every valid origin \u2192 destination combination on a route. The return direction can have its own prices, or automatically fall back to the one-way fare.<\/p><\/dd>\n<dt id=\"how%20do%20round%20trips%20work%3F\"><h3>How do round trips work?<\/h3><\/dt>\n<dd><p>Set a turnaround time once. The plugin calculates the return departure time from the outbound arrival and adds a correctly priced return leg to the cart when the customer books round trip.<\/p><\/dd>\n<dt id=\"will%20a%20full%20outbound%20trip%20block%20the%20return%20trip%3F\"><h3>Will a full outbound trip block the return trip?<\/h3><\/dt>\n<dd><p>No. Seat availability is tracked separately for each direction, so a sold-out outbound trip never blocks an available return trip.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20for%20airport%20transfers%20and%20hotel%20shuttles%3F\"><h3>Can I use it for airport transfers and hotel shuttles?<\/h3><\/dt>\n<dd><p>Yes. It is built for airport shuttles, hotel and resort transfers, corporate and campus shuttles, tour transfers and city-to-city routes.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20which%20days%20a%20shuttle%20runs%3F\"><h3>Can I limit which days a shuttle runs?<\/h3><\/dt>\n<dd><p>Yes. Set operating days per route and add multiple departure times. Only days the shuttle actually operates are selectable, and fully booked dates are grayed out per direction.<\/p><\/dd>\n<dt id=\"can%20guests%20check%20their%20booking%20without%20an%20account%3F\"><h3>Can guests check their booking without an account?<\/h3><\/dt>\n<dd><p>Yes. Use <code>[mpsb_find_booking]<\/code> so guests can look up a booking with its reference and booking email.<\/p><\/dd>\n<dt id=\"can%20i%20show%20only%20one%20type%20of%20shuttle%20on%20a%20page%3F\"><h3>Can I show only one type of shuttle on a page?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>disable<\/code> attribute of <code>[mpsb_shuttle_search]<\/code> to hide Shared City Shuttle, Private Shuttle or Airport Transfer tabs, or use <code>shuttle_id<\/code> to lock the form to one shuttle.<\/p><\/dd>\n<dt id=\"can%20i%20export%20my%20bookings%3F\"><h3>Can I export my bookings?<\/h3><\/dt>\n<dd><p>Yes. The bookings dashboard has a CSV export of all bookings, plus filters by shuttle, route and date.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All strings use the <code>magepeople-shuttle-booking<\/code> text domain.<\/p><\/dd>\n<dt id=\"where%20can%20i%20try%20it%20before%20installing%3F\"><h3>Where can I try it before installing?<\/h3><\/dt>\n<dd><p>Visit the live demo at <a href=\"https:\/\/wpshuttlebooking.com\">wpshuttlebooking.com<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>New: added the Appneck SDK for opt-in telemetry and update tracking. It does not collect any data by default; it only starts after you confirm via the admin notice. See External services in this readme.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Turn WooCommerce into a shuttle booking system. Multi-stop routes, stop-to-stop pricing, round trips, live seat availability and real WooCommerce chec &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343294"}],"author":[{"embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/magepeopleteam"}],"wp:attachment":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343294"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343294"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343294"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343294"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343294"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}