Travelmanager – Tours, Tickets & Bookings

Description

Turn website visitors into your next guests. Travelmanager brings tours, tickets and events straight to WordPress, helping customers discover their next experience and start booking.

Connect your booking system to WordPress. Showcase departures, guide visitors with Tour finder and calendars, and present experiences with inviting event cards. Add products and gift vouchers, and combine shortcode blocks with your own page design.

Manage schedules, products and bookings in your existing Travelmanager account. Compatible Gastrozack services retain their integrations. This plugin connects to an external service; it is not a standalone booking engine. An account is required. Charges, availability, privacy terms and service conditions depend on your provider.

Settings and languages

Settings Travelmanager offers an optional default account, language selection and connection test. Explicit shortcode accounts always override the saved account. Existing pages work without new settings or tokens. The test checks the Travelmanager endpoint over HTTPS without creating a booking.

WordPress token (optional): copy the value from Travelmanager. With no stored token, existing unauthenticated requests continue. A configured token is stored encrypted and sent only server-side to xwordpress_endpoint.php on the saved account: GET uses the wordpress_token query parameter; POST uses an application/x-www-form-urlencoded body field. Existing call parameters and the historical XML/shortcode token parameter remain unchanged.

Travelmanager requires this token only when set.wordpress_token is configured; tenant ent_tm is exempt on the server. The plugin does not infer or bypass tenant rules. Missing/invalid credentials produce a clear authentication error (HTTP 403, INVALID_WORDPRESS_TOKEN). There is no automatic retry without the token and errors are not cached as successful data. The connection test uses the same endpoint and token; success on an exempt account does not prove token enforcement.

The saved token is never displayed in the form, shortcodes or browser code. A blank password input keeps a saved token; use Remove the stored token to return to an empty setting. Replace or remove it before changing the saved account. Explicit shortcodes for other accounts never receive that account’s private token.

Keep existing behavior is the default. Opt into Automatic to follow the page/site language, or select a fixed language. Supported codes: de (German), en (English), pl (Polish), cs (Czech), fr (French), es (Spanish), it (Italian), da (Danish), nl (Dutch). A supported lang overrides the new mode; regional locales are normalized and cz maps to cs.

In the new mode, backend-generated eventcalendar content uses German for de and English for all other languages, including AJAX. Plugin controls retain the selected language. Other calls request their selected language. Backend descriptions and hosted interfaces need the provider’s translations.

Shortcode basics

Use a WordPress Shortcode block. Replace example IDs with IDs from your account. Every call needs an explicit or saved account:

[travelmanager call="timetable" account="example.travelmanager.software" station_id="2" max="12"]

With a saved account, omit account. Empty/omitted call selects timetable; existing technical aliases remain supported. Do not translate attribute names: use linie_id and linie_typ_id.

Attribute reference

Most attributes default to empty. They affect only calls that implement them. Use literal true/false, not 1/0.

  • account: backend hostname; explicit value overrides settings.
  • call: view identifier; default timetable.
  • lang: language override in the opt-in mode; legacy precedence stays unchanged.
  • vermittler_id: numeric referral; existing URL/session referral handling remains.
  • cache: false bypasses the plugin’s API read cache, not page/CDN caches.
  • station_id: station filter; timetable accepts comma-separated IDs.
  • linie_id: timetable/route-calendar route ID; timetable also accepts ID lists.
  • linien_ids: Tour finder route IDs, comma-separated; not a universal filter.
  • linie_typ_id: route category/type IDs, comma-separated where supported.
  • category_id: shop category, distinct from route type.
  • product_id: catalog product ID or event relation key, depending on the call.
  • mandant_id, ressource_id: timetable tenant/resource filters.
  • start, stop: call-specific start date and duration; see each call below.
  • max: positive result limit; defaults differ by call.
  • newwindow: true opens supported booking links in a new window/tab.
  • show_station: event-calendar selector with true; finder hides departure with false.
  • show_category: event-calendar category selector with true.
  • current_date: finder true initializes today through noon, tomorrow after noon (server time).
  • signets: configured finder signet filter with automatic results.
  • view: call-specific presentation; see below.
  • target: call-specific destination/container; see below.
  • godirect: timetable direct-booking switch or finder destination URL; event calendar uses a URL query instead.
  • title: custom chatbot trigger text or flat-view heading; not automatically translated.
  • exact: accepted historical attribute with no implemented effect.

All calls below accept the shared account/language/referral/cache context where applicable. Only additional attributes are listed.

timetable / timetablev2

Upcoming departures; both names use the same dispatch. The timetablev2 alias is deprecated for new integrations; use timetable instead. Existing timetablev2 shortcodes remain fully supported. Its name is unrelated to the V2 stylesheet. Unlike Tour finder, this call displays a chronological departure list instead of a departure/destination/date search.

[travelmanager call="timetable" station_id="2" linie_id="146" start="today" stop="3 months" max="12"]

Filters: station_id, linie_id, linie_typ_id, mandant_id, ressource_id. A nonempty linie_typ_id takes precedence over linie_id. Optional: start, stop, max, target, godirect, newwindow, view.

Start defaults to today; accepts DD.MM.YYYY or expressions such as next month. Starts older than one month are clamped to today. Stop is a duration from start, e.g. 3 months, without a leading plus; default three months. An invalid/earlier stop falls back to one month. Max defaults to 250; values above 500 also become 250.

Target changes the booking destination; nonempty godirect selects the direct-booking branch. newwindow="true" opens supported links separately. view="ldjson" outputs structured event data without the visible timetable.

Tour finder (fahrtfinder2)

Tour finder with AJAX departure/destination/date results.

[travelmanager call="fahrtfinder2" station_id="2" linien_ids="146" current_date="true"]

Optional: station_id, linien_ids, linie_typ_id, signets, max, show_station, current_date, target, godirect. Target is the results element ID; godirect is the result-link destination URL. Max applies to signet results. Signets require backend configuration. Without signets, URL station_id/stop_station_id can preselect stations; URL linien_ids precedes its attribute. Shortcode linie_typ_id precedes URL category_id. No shortcode start-date attribute is implemented here.

calendar

Backend route calendar. Requires linie_id or linie_typ_id.

[travelmanager call="calendar" linie_id="146" station_id="2" start="next month"]

Optional: station_id, start (default this month), newwindow. Dates and booking links come from the backend.

eventcalendar

Event calendar with optional filters. Supply a valid linie_typ_id from your account and the desired station_id. The current backend requires a route type; a station alone can return HTTP 400 (missing route type). The example uses the sandbox IDs 23 and 1: replace them with your own account IDs. Existing plugin validation still accepts either attribute for compatibility with older backends.

[travelmanager call="eventcalendar" linie_typ_id="23" station_id="1" show_station="true" show_category="true"]

Optional: start, show_station, show_category, target, newwindow. Selectors require true; the category selector does not replace the initial linie_typ_id. target="internal" selects internal links. The page query ?godirect=true controls direct navigation. URL station_id/linie_typ_id can override filters. The DE/EN fallback described above applies in opt-in language mode.

eventinfo

Event details, availability and embedded ticket configuration. Requires product_id or a supported relation URL. Include basket on the same page:

[travelmanager call="basket"]
[travelmanager call="eventinfo" product_id="YOUR_RELATION_KEY" view="list" max="10"]

Optional: view, max. view="list" shows departures for one-way products when dated details exist and the number of available days is within max (default 10); otherwise a calendar appears. Route configuration determines return-trip options. The external service supplies ticket configuration and checkout.

eventcard

Compact event preview with image, teaser, location, optional duration and scheduled departures. Requires product_id as a relation key.

[travelmanager call="eventcard" product_id="YOUR_RELATION_KEY" max="3" newwindow="true"]

Optional: max (default 3, capped at 50), newwindow. Links directly to the account’s shop with language/referral context. Referral precedence: URL ref, shortcode vermittler_id, session referral. No prices, reservation or basket insertion. Scheduled dates do not guarantee remaining seats.

basket

Current session’s basket indicator and hosted basket link.

[travelmanager call="basket"]

Optional: target="blank" for the count link. Empty baskets have no count. Existing callbacks/session identifiers remain in use. Exclude session-dependent booking/basket pages from shared full-page caches.

shop

Catalog, vouchers and product details.

[travelmanager call="shop" category_id="7"]

Optional: category_id, view, target. Empty category uses the backend catalog. ?item=ID selects details and purchase controls; submitting continues to the hosted basket with the session reference. view="netto" selects net-price presentation. Page query ?view=csv exports the catalog feed; target supplies its link host. It is not a general shortcode CSV mode.

artikel

Single product details, images, amount and hosted shop link. Requires catalog product_id.

[travelmanager call="artikel" product_id="591"]

No additional functional attributes. For the catalog purchase form, use shop with its item URL.

contingent

Dated ticket quotas and booking links. Requires product_id and configured backend quota data.

[travelmanager call="contingent" product_id="YOUR_RELATION_KEY" start="today" stop="3 months" max="10"]

Optional: start, stop, max, view. Values use this endpoint’s existing pass-through behavior, not timetable defaults. view="calendar" is retained; its legacy month-navigation handler needs backend-specific validation. Prefer the standard list for a new integration until verified.

listcategories

AJAX category/month departure search. Requires station_id.

[travelmanager call="listcategories" station_id="2" linie_typ_id="1"]

Optional: linie_typ_id. Categories are provided by the backend.

V2 displays alternating departure rows with right-aligned arrow actions. The original booking/details action remains available to screen readers and as a tooltip. Month names follow the instance language. Navigation below the list shows the destination month and selects it in the same month filter.

list

Date/category search with AJAX results.

[travelmanager call="list" station_id="2"]

Optional: station_id. URL start (DD.MM.YYYY) initializes the date; otherwise today. URL linientyp_id preselects the category. These are query parameters, not equivalent shortcode filters.

find

Existing tabbed category/route search.

[travelmanager call="find"]

No additional functional attributes. URL linientyp_id can preselect a category. For departure/destination/date search, use fahrtfinder2.

sitemap

Route index and generated tm-sitemap.xml in WordPress uploads.

[travelmanager call="sitemap" linie_typ_id="1"]

Optional: linie_typ_id (comma-separated IDs). Requires writable uploads. Verify generated relation links against your permalink structure. The historical linien_ids branch is inconsistent and is not a reliable filter.

alert

Account-provided service notice; empty if none exists.

[travelmanager call="alert"]

Optional: view="none" suppresses notice text.

chatbot

Account-hosted travel assistant; requires that service.

[travelmanager call="chatbot" view="button" title="Plan your visit"]

Optional: view="flat" embeds the assistant directly in the page; omitted view and existing button/link values keep the hosted launcher. title sets the launcher text or the flat-view heading. Custom title translations belong to the page author.

[travelmanager call="chatbot" view="flat" title="Plan your visit"]

Flat view reuses the account-hosted chat client in a separate frame for each instance. V2 colors and the page font are applied to the embedded interface. The account must provide the chatbot service and allow requests from your website. The service assets and chat session load with the embedded view; messages are sent only after the visitor submits them. The optional WordPress token is never included in this browser interface.

demo

[travelmanager call="demo"]

Static developer layout sample with no additional functional attributes; not a booking feature.

URL context and callbacks

  • relation and supported pretty relation URLs select event details, potentially replacing an overview.
  • item selects shop details; view=csv selects the shop feed.
  • ref carries referral context; search URL filters are described per call above.
  • insertIntoBasket, insertIntoBasketEV and return are existing workflow callbacks. Preserve generated values; never invent them to simulate a successful booking/payment.

External services and data

The configured account receives server requests for schedules, descriptions, availability, products and basket data. Hosted booking frames, shop links, images and chatbot assets contact provider services in the browser, sharing ordinary connection data such as IP addresses. Booking actions pass session references, selections, referrals and return URLs. Information entered in hosted forms is processed by that provider.

V1 retains its jQuery UI stylesheet request to code.jquery.com; V2 uses the bundled, plugin-scoped stylesheet. The plugin uses WordPress transients and may cache images in uploads. Configure your site’s privacy notice with your provider’s terms. Never put private tokens in frontend code, URLs or shortcodes.

Screenshots

Installation

  1. Install travelmanager-buchungssoftware and activate it.
  2. Keep existing shortcodes or save an optional default account in Settings Travelmanager.
  3. Save, then test the endpoint connection.
  4. Optionally select Automatic/fixed language and add Shortcode blocks.

FAQ

Must customers change existing pages?

No. Existing accounts, identifiers and legacy language behavior remain supported. New language behavior is opt-in.

Is a token required?

Only when required by your Travelmanager account. Copy its WordPress token into the optional plugin setting. Without a stored token, legacy requests remain unchanged; a protected account will report an authentication error.

Where are translations maintained?

Frontend dictionaries: libs/dialoge_.php. Settings/status and opt-in corrections: libs/languages/.json. Every changed plugin-owned text must ship in all nine languages together. Customer content is maintained in the booking backend.

Can one page use multiple accounts or languages?

Explicit accounts take precedence. In Automatic/fixed mode, supported lang attributes select each instance’s language, including AJAX and datepicker labels.

How do I customize the appearance or restore the old design?

The Travelmanager settings page has two tabs: Settings (account, optional token, language and connection test) and Layout (style version, colors and preview). Switching tabs retains unsaved input.

Open Settings Travelmanager Layout. V2 is enabled by default on both existing and new installations. It modernizes plugin forms, cards, calendars, tabs and dialogs while keeping existing shortcode parameters and booking behavior.

The V2 event calendar uses the configured palette, a grouped filter bar and a seven-column month grid. Below 760px of available plugin width it becomes a day-by-day agenda with full tour titles and touch-friendly booking links. Dates, filter requests and booking destinations stay unchanged; the same layout applies after AJAX updates.

Choose V1 and save to restore the previous stylesheet and its saved colors. V2 colors are stored separately and do not change V1. No content migration is required.

V2 provides primary, secondary, surface, text, muted-background and border colors, with a live preview. Leave colors empty to use supported theme variables (WordPress primary/secondary presets, Elementor global colors and Avada’s primary fallback) or neutral defaults. The theme’s font is inherited. Button text automatically switches between light and dark for the chosen accent. Custom text/background combinations still need a contrast check.

Colors affect only Travelmanager elements, including its own jQuery UI popups. They do not change the WordPress theme, admin controls, other plugins or external booking iframe contents. The preview uses the admin font; review the final result on your website. Reset colors clears V2 overrides, preserves your selected style version and leaves account/token settings and V1 colors unchanged. Clear any full-page/CDN cache after changing appearance.

Reviews

January 29, 2021
Wir nutzen das Plugin für unsere Website und haben damit die Inhalte von unserem Buchungssystem immer aktuell. Wir ersparen uns dadurch einen externen Dienstleister der die API Daten verarbeitet
Read all 1 review

Contributors & Developers

“Travelmanager – Tours, Tickets & Bookings” is open source software. The following people have contributed to this plugin.

Contributors

“Travelmanager – Tours, Tickets & Bookings” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Travelmanager – Tours, Tickets & Bookings” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

22.38

  • KVersion Compatibility