=== Bookyt Rental Software ===
Contributors: curato
Donate link: https://bookyt.de/
Tags: rental, booking, availability, reservations, rental software
Tested up to: 6.8
Requires at least: 5.1
Requires PHP: 8.0
Stable tag: 2.26
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Connect WordPress to Bookyt rental software to show rental items, check availability, and embed online booking on your website.

== Description ==

= Rental software for WordPress =

Connect your Bookyt account to WordPress to display rental offers, availability, locations, news, and online booking.

For businesses renting vehicles, trailers, bicycles, tools, equipment, or other items. A Bookyt account with API access is required.

= What can you add to your website? =

* Rental categories and detail pages with images, descriptions, and equipment
* Availability calendar and compact date checks
* Direct booking buttons and featured offers
* Embedded Bookyt online booking
* Occupancy plan with day, week, and month views
* Vehicle occupancy calendar with period selection and booking handoff
* Locations with contact details and opening hours
* News from your Bookyt account

= Connect Bookyt once =

Enter your account name, access token, and language under **Settings → Bookyt**.

Choose a language or **Automatic** to follow WordPress, with English as the fallback for unsupported languages.

Then add a shortcode:

<pre>[bookyt call="calendar"]</pre>

Keep credentials in the settings. Optional `account` and `token` shortcode attributes override them, for example when using multiple accounts.

= Available calls =

The `call` parameter selects the content. Its default is `category`.

== Rental categories: category ==

Shows categories with images and descriptions. Selecting an offer opens its details.

<pre>[bookyt call="category"]</pre>

== Single rental item: item ==

Shows an item's description, equipment, and images. `category_id` is its Bookyt category ID.

<pre>[bookyt call="item" category_id="4"]</pre>

== Featured rental offers: featured ==

Shows selected categories in a compact grid. `category_id` accepts comma-separated IDs; without it, the first three categories appear.

<pre>[bookyt call="featured" category_id="4,7,12"]</pre>

== Availability calendar: calendar ==

Checks availability for a selected rental period, location, and category.

<pre>[bookyt call="calendar"]</pre>

Optional location preselection:

<pre>[bookyt call="calendar" station_id="1"]</pre>

== Compact availability check: availability ==

Checks a selected start date, rental period, location, and category against live availability.

<pre>[bookyt call="availability"]</pre>

Optional preselection:

<pre>[bookyt call="availability" station_id="1" category_id="4"]</pre>

== Embedded online booking: embed ==

Embeds the complete booking frontend. Requires an account, but no access token.

<pre>[bookyt call="embed"]</pre>

== Direct booking button: booking_button ==

Opens Bookyt booking with an optional location and category. Requires an account, but no access token.

<pre>[bookyt call="booking_button" station_id="1" category_id="4"]</pre>

== Occupancy plan: belegungsplan ==

Shows rental-item occupancy by day, week, or month, with location and category filters.

<pre>[bookyt call="belegungsplan" station_id="1,2" category_id="4,5" view="month"]</pre>

Filters accept comma-separated IDs; omitted filters show all entries. `view` accepts `day`, `week`, or `month`.

== Occupancy calendar: belegungskalender ==

Shows a classic monthly calendar with free, occupied, and partially occupied days per vehicle, without a preset rental duration. Select pickup and return dates, then continue to booking with the location, category, and period. Account timezone and fixed pickup/return times apply.

<pre>[bookyt call="belegungskalender"]</pre>

Optional filters and a fixed calendar vehicle:

<pre>[bookyt call="belegungskalender" station_id="1" category_id="4" resource_id="7"]</pre>

A single explicit `station_id`, `category_id`, or `resource_id` fixes its value and hides its selector. Fields also hide when only one option remains. Comma-separated location/category ID lists retain a choice when multiple options remain. Fields adapt dynamically; hidden values remain active for the calendar and booking handoff.

The alias `call="occupancy_calendar"` is supported. The separate widget uses `data-view="occupancy_calendar"`, with `data-station-id`, `data-category-id`, and `data-resource-id` (JavaScript: `stationId`, `categoryId`, `resourceId`).

Both integrations refresh occupancy before booking handoff and after returning. Assigned bookings and vehicle blocks cover one year from today; dates outside this window cannot be selected.

Requires the Bookyt endpoint extension `include_calendar=1` for blocks, booking rules, and coverage. Without these fields, booking stays disabled. Final availability, unassigned category reservations, rental conditions, and vehicle assignment are checked in the booking frontend. A fixed calendar vehicle does not guarantee its booking assignment.

== Rental locations: locations ==

Shows locations and their information from Bookyt.

<pre>[bookyt call="locations"]</pre>

== News: news ==

Shows news from Bookyt.

<pre>[bookyt call="news"]</pre>

= Shortcode parameters =

* `call`: Bookyt view.
* `account`, `token`: override the central settings.
* `station_id`: location filter or preselection.
* `category_id`: category filter or item selection.
* `resource_id`: fixed vehicle in the occupancy calendar.
* `view`: occupancy-plan view (`day`, `week`, `month`).

= Supported languages =

German, English, French, Italian, Spanish, Portuguese, Dutch, Polish, Greek, and Turkish. The selected language applies to plugin labels and Bookyt content requests.

= External Bookyt service =

Bookyt is an externally hosted service. Pages with Bookyt shortcodes request content from the configured account at `*.bookyt.de`, sending the account, access token, language, and relevant location/category filters.

`embed` and `booking_button` load the Bookyt frontend without a token; visitors interact directly with Bookyt. Displaying Bookyt content requires a connected account.

See the [Bookyt privacy policy](https://bookyt.de/datenschutz.html) and include the embedded service in your website privacy information where required.

== Installation ==

1. Install and activate **Bookyt Rental Software** in WordPress.
2. Have a Bookyt account with API access enabled.
3. Open **Settings → Bookyt**.
4. Enter the account prefix, token, and language.
5. Use **Check account** and save the settings.
6. Add a shortcode to a page, post, or shortcode-compatible widget.

== Frequently Asked Questions ==

= Do I need a Bookyt account? =

Yes. Product and trial information is available at [bookyt.de](https://bookyt.de/).

= Where do I enter the account and access token? =

Under **Settings → Bookyt**. Shortcodes normally need no credentials.

= Can I use more than one Bookyt account? =

Yes. Set `account` and `token` in a shortcode to override the central settings.

= Do the embedded booking and direct booking button require a token? =

No. Both require an account, but no token.

= What happens when I select Automatic language? =

It follows the WordPress language, with English as the fallback for unsupported languages.

= Where can I get support? =

Use the [Bookyt support area](https://bookyt.de/support.html) or email service@phcom.de.

== Screenshots ==

1. Present rental categories and different rental items directly on your WordPress website.
2. Show a rental item with photos, description, and equipment details.
3. Let visitors choose a rental period, pickup location, category, and available date.
4. Embed the complete Bookyt online booking experience in a WordPress page.
5. Display rental-item occupancy in a clear calendar view.
6. Configure the Bookyt account, access token, and language centrally in WordPress.
7. Publish rental locations and current Bookyt information on your website.

== More about Bookyt Rental Software ==

Learn more about [Bookyt Rental Software](https://bookyt.de/) and [PHCOM GmbH](https://www.phcom.de/).

== Changelog ==

= 2.26 =

* Add occupancy calendar with period selection and booking handoff.

= 2.25 =

* Belegungsplan Update.

= 2.24 =

* Improved category cards with centered, uncropped images in a larger 4:3 display area.

= 2.23 =

* Added Polish language support for plugin labels, calendars, and Bookyt requests.
* Added shortcodes for featured rental offers, compact live availability checks, and direct booking buttons.
* Secured availability requests with WordPress nonces and server-side token contexts.
* Improved calendar handling and styling for the new booking views.

= 2.22 =

* Added central settings for the Bookyt account, access token, and language.
* Added support for German, English, French, Italian, Spanish, Portuguese, Dutch, Greek, and Turkish.
* Expanded shortcode documentation for all supported Bookyt views.
* Reworked the WordPress.org description and replaced banners, icons, and screenshots.

== Upgrade Notice ==

= 2.23 =

Polish is now available in automatic language detection and in the language setting.

= 2.22 =

Configure your Bookyt account, access token, and language centrally under Settings → Bookyt after updating.
