| 开发者 | abourri |
|---|---|
| 更新时间 | 2026年10月5日 05:03 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
[wptm_tours] shortcode for a grid of tours anywhere, and [wptm_activities] for a grid of activities — each activity can carry its own price and take booking requests directly through the same request system as a tour; a homepage template assembled from your tours, destinations, activities and trust details; and a car hire template for the driving side of the business — the fleet, the services, the routes you cover and the prices you quote.
Multilingual
Tripvance uses the WordPress translation system throughout and is ready for community language packs from translate.wordpress.org. It also includes built-in French, Spanish and Arabic front-end fallbacks, with right-to-left layouts for Arabic.
Polylang is supported properly, not nominally. Tours, activities and every taxonomy the plugin owns are registered as translatable. Tours, terms and the pages the plugin generates are given their language and linked to their translations, so a language switcher lands on the right page. A generated page is written in its own language, not in the language of whoever pressed the button. Booking requests record the language the traveller was reading, and the confirmation, the voucher and the reminder are all written in it. Wording you type yourself — the homepage, the car-hire page, the default inclusions — appears under Languages > String translations so it can differ per language.
Addresses can be translated too, and are not by default. Switch on "Addresses per language" in the settings and a French page becomes /fr/circuits/ rather than /fr/tours/, with the destination, category, departure and trip length sections following it; the words come from the same translation catalogue. The addresses you already have keep working and redirect to the new ones. Leave it off and no address on the site changes, whatever language packs are installed.
A site that generated its pages before adding a language can put them right from the settings screen: each page's title, starting wording and address go back into its own language, a page you have edited is left alone, and the previous address redirects.
An optional language switcher goes into the theme's own menus — desktop header, mobile menu, footer, or a shortcode wherever you like — and each language links to the translation of the page the visitor is on: a French reader on an English tour lands on the French tour. Polylang decides which page that is and keeps printing the hreflang tags; Tripvance only draws the control, in the menu's own typography, with no flags, no external assets and no second translation system.
Without Polylang the plugin runs unchanged.
Search engines
Tripvance prints no canonical tag, meta description or Open Graph markup, and no site-wide schema. Those belong to an SEO plugin, and two sources for one signal is worse than one.
Tripvance provides limited Product structured data for eligible Tour and Activity pages, including accurate pricing and genuine on-site review aggregates. When Rank Math is active, Tripvance integrates with its structured-data graph to avoid duplicate Product entities. General SEO and site-wide Schema remain under the control of the site's SEO plugin.
In practice: a price is included only when it is the price the page shows and a traveller can book (one Offer at the public "From" price — the fixed price, or the lowest valid Group Rate; nothing for a tour on request), and a rating only from approved reviews of that tour, when the page shows the same average and count. Nothing is added to the homepage, archives, taxonomy pages, FAQs or private views such as booking confirmations and Guest Passes. The setting is under Tripvance > Settings > Search result product data. Structured data makes a page eligible for rich results; search engines decide whether prices or review stars are shown, and it does not affect ranking.
It also emits clean semantic markup, keeps taxonomy archives crawlable, marks empty ones as noindex, and keeps them out of the sitemap.
Import
Existing WooCommerce products can be imported as tours, with a dry run first that reports exactly what would happen and creates nothing.
/wp-content/plugins/, or install it through Plugins → Add New.Yes. Tripvance → Tailor-Made Requests → Settings has a "Create Trip Builder Page" button, or lets you choose an existing page; nothing is created until you press it. The page shows a step-by-step wizard (dates, length, interests, destinations, travel style, accommodation, travellers, budget, contact) whose steps and answers you manage on the same screen. Requests are private records with a TMR reference, separate from bookings, and "Create Draft Tour" starts a draft tour from one. The [tripvance_trip_builder] shortcode and the Trip Builder block place the wizard anywhere. An optional "Plan your own trip" call to action on tour pages is off by default.
Yes. After activation a dismissible welcome offers a step-by-step guide (Tripvance → Settings → Setup guide): tours, homepage and its preset, tour design, booking. Every step reads your site as it is and only offers what is missing; nothing is created or changed without a button pressed for it. The guide also offers demo content — sample tours, activities and destinations, every item marked as demo — with a one-click removal that never touches your own content. The guide can be restarted from Tripvance → Settings.
Yes. Tripvance → Site pages → Homepage creates a page on the "Tripvance homepage" template and fills it from what the site already has. Its hero can be a classic image cover, a muted looping video with accessible playback and optional sound controls, a split featured-tour spotlight, layered floating image stories, or an animated travel-colour mesh. The same buttons, optional reassurance points and five tour-search designs adapt to every hero; search can be hidden entirely. The rest includes featured tours, destinations and tour types with their counts, a signature tour, activities, trust, "why choose us", articles and a final call to action. Sections can be switched off and reordered; a section with nothing to show is not printed. Setting the page as the site's front page is a separate, explicit button.
Yes. Tours → Car hire creates a page on the "Tripvance car hire page" template, built the same way as the homepage: sections you tick and order, a preset to arrange them, a preview before anything goes live. It holds a hero, a fleet with a filter by kind of vehicle, the services a driver is hired for, a table of routes with journey times and prices, your destinations and tours, the booking steps, trust details, a gallery, testimonials and questions. Only the vehicle's name is required; a cell left empty prints nothing and a section with nothing in it is not printed at all. Publishing the page is a separate, explicit button, and it is a normal page, so you add it to your menu yourself.
Through the form plugin you already use. Paste its shortcode — Contact Form 7, WPForms, Forminator, whichever it is — into the Request form group on Tours → Car hire, and the form is printed in its own section, styled to match the page. Tripvance does not add a second enquiry system for cars: your form plugin already holds the fields, the address the mail goes to, the spam protection and the export, and duplicating that would only give you two places to check. Leave the shortcode empty and the section is not printed at all. The section answers to #wptm-cars-request, so a hero or call-to-action button can scroll straight to it.
No. Activation only registers the post types and prepares the database. A notice then offers a starter kit, and nothing is created until you press the button. The starter kit's sample destinations are Moroccan examples; rename or delete any of them.
Tripvance cannot make stars appear; Google decides that. What it does is make a tour eligible: turn on reviews under Tripvance → Settings and let travellers leave rated reviews, and keep "Search result product data" switched on. Once the tour has approved rated reviews, their average and count — the same figures printed on the page — are added to the tour's Product data. With Rank Math active they go into the Product Rank Math already builds for the tour, or into one Product added to Rank Math's graph if it has none: Tripvance does not add a second Product when Rank Math already provides one for the current Tour or Activity. Ratings can be left out separately with "Include the average rating from approved reviews"; a site that had switched the earlier rating option off keeps it off. Ratings from other websites are never included, and activity pages, which do not display reviews, carry no rating.
Optionally. Activities are pages of their own from the start; the listing at /activities/ and a page per activity type are switched on under Tripvance → Settings (activity archive). With it on, the plugin draws both — title, description, a row of type links, the activity cards with their prices, pagination — and a theme can replace either with archive-wptm_activity.php or taxonomy-wptm_activity_type.php. The [wptm_activities] shortcode and the Activities block put the same cards on any page.
On Automatic this should not happen: a tour is drawn day by day only when it says it lasts more than one day — more than one day, at least one night, a multi-day duration preset, or an overnight written on one of its days. Check those four first, because one of them is what is claiming the days. Otherwise set Itinerary format to "Single day / Timeline" on that tour and the choice is final. Fill in the Time field at the top of each stop's card if you have one and it leads the stop on the page; a stop with no time still reads perfectly by its title.
No. Automatic only decides for tours that have not chosen, and a tour that has chosen keeps that choice whatever its duration says.
The readable files sit beside the minified ones (assets/css/tour.css next to tour.min.css). Define SCRIPT_DEBUG as true in wp-config.php and the readable files are served instead, as WordPress does for its own. The minified copies are built with esbuild 0.25.9. To rebuild a file, run npx --yes esbuild@0.25.9 assets/css/tour.css --minify --outfile=assets/css/tour.min.css (use the corresponding paths for other CSS or JavaScript files); until then the edited file is served as it is, because a minified copy older than its source is never used.
No. It records booking requests and the agency confirms them. No payment gateway is included and none is required.
Yes. Open a booking, set its price under Price & services if needed, and use the Documents panel: Preview gives a draft without a number, Issue gives the numbered document and keeps an unchangeable copy. PDFs are produced on your own server. Tripvance prints the details you give it; check that your invoices carry what the rules where you trade require.
No. The plugin has its own fields and works without it. If ACF is installed the same fields are shown through ACF instead. The free version is enough; no premium field type is used.
It should not. The plugin outputs no canonical, meta description or Open Graph markup and no site-wide schema, leaving those to Rank Math, Yoast or whichever you use. Its only structured data is one Product on eligible Tour and Activity pages; with Rank Math it is merged into Rank Math's own graph, and with Rank Math the page builder no longer writes Rank Math's title, description or focus keyword. If another SEO plugin already publishes a Product for your tours, switch off "Search result product data" or use the wptm_product_schema_print filter.
Yes, with the free version. Tours, activities, taxonomy terms and generated pages are assigned a language and linked to their translations, and each generated page is written in its own language. The homepage and the car hire page are created in every language at once and linked, so the language switcher and the hreflang tags are right from the start. The homepage's own wording gets a language tab per language in Tripvance > Site pages > Homepage: the same form, the source text above every box, and a box left empty falls back to the source language rather than leaving a hole. Booking mails, vouchers and reminders answer in the language the traveller booked in. Your other wording is still exposed in Languages > String translations. A language switcher can be switched on in Settings and printed in the theme's menus or through [wptm_language_switcher]; each language links to the real translation of the current page and never to a guessed address. Without Polylang nothing changes.
If seat-capacity enforcement is enabled, no. Tripvance obtains a departure lock and performs the capacity test as part of the reservation write, so only one request can take the final seat. Capacity enforcement is off by default because many agencies use the form as an enquiry system.