Vachr Short-Term Rental Reservations

Vachr Short-Term Rental Reservations

توسط

The Vachr Short-Term Rental Reservations is the ultimate, all-in-one booking and management solution for WordPress, designed specifically for property owners and managers who need full control without complexity. It transforms your WordPress site into a professional rental platform for apartments, vacation homes, or rooms, offering everything you need for effortless property management in one place.


Video tutorial: https://www.youtube.com/watch?v=ss2JD-JexpM
Watch this video to see how to manage and use the system.

This plugin is a complete powerhouse that handles everything from initial booking to guest registration. It features a highly flexible pricing engine for creating complex discounts and seasonal rates, fully customizable registration forms with custom fields, and the ability to offer additional services with their own pricing. The entire system is translatable and allows you to tailor the visual appearance of your forms to perfectly match your website’s brand.

This plugin is completely free to use. However, if you find it helpful and would like to support its further development, any small donation (even just a few Euros) is greatly appreciated. Your support will help me implement upcoming features and improvements. You can manage an unlimited number of apartments, everything is fully translatable, and it offers all the essential tools without limitations. I use it myself and can personally vouch for its reliability and effectiveness.

Need help with setup? I offer one-time WordPress setup for short-term rentals, including connection to Booking.com, Airbnb, and more for 100 EUR, plus optional yearly light support for 20 EUR.

Key Advantages

  • Ultimate All-in-One Tool: Manage everything from bookings and pricing to guest registration and custom services in one intuitive interface.
  • Flexible Discounts & Pricing: Create advanced seasonal pricing, weekend rates, and dynamic discounts based on stay duration or specific conditions.
  • Rental Season Control: Close apartments for exact date ranges, recurring months, or recurring day ranges when the property is not available.
  • Online Payments & Flexible Checkout: Accept online card payments via Stripe or Mollie, and optionally enable bank transfer or cash payment methods.
  • Invoices & Transactions: Keep payment records, invoice numbers, billing details, payment status, and paid timestamps connected to each booking.
  • Custom Registration Forms: Build your own registration forms with custom fields to collect exactly the guest data you need.
  • Custom Services with Pricing: Offer and manage additional services (like cleaning, breakfast, or bike rentals) with their own configurable prices.
  • Translatable Apartment Amenities: Manage a reusable amenities catalog (Wi-Fi, Netflix, parking, wellness, kitchen equipment, safety items, and more) and assign amenities per apartment.
  • Multilingual Apartment Content: Manage reusable templates for apartment descriptions, amenities, and arrival instructions, with per-apartment overrides.
  • Automated Arrival Instructions: Send arrival instructions to confirmed guests a configurable number of days before check-in.
  • Staff Access Rules: Send limited booking or registration details to cleaners and staff, and expose the same limited data through a password-protected page shortcode.
  • Total Visual Control: Easily customize the look and feel of your booking calendars and forms to match your site’s design.
  • Two-Way iCal Integration: Automatic synchronization with major travel agencies (Airbnb, Booking.com, VRBO) to eliminate the risk of overbooking.
  • Fully Translatable: Ready for international guests with multi-language support and easy translation management.
  • Lightweight & Fast: Optimized for performance to ensure your site remains quick for visitors.


Video tutorial: https://www.youtube.com/watch?v=ss2JD-JexpM
Watch this video to see how to manage and use the system.

  1. Upload the plugin files to the /wp-content/plugins/vachr-short-term-rental-reservations directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Go to the ‘Apartments’ menu to create your first rental unit.
  4. Use the provided shortcodes to display the booking form or calendar on your pages.

سوالات متداول

How do I display the booking form?

Use the shortcode [vstrb_booking_form unit="YOUR_ID"].

Optional parameters:

  • months="N" – number of calendar months to display (default: 1).
  • grid="N" – number of month columns in the calendar grid (default: 1).
  • currency="CODE" – currency code used in the price breakdown (default: EUR).
  • language="CODE" – two-letter language code (e.g. cs, de, en) used for services, contact field labels, and the price quote. If omitted, the language of the current page (reflected in the <html lang> attribute, set automatically by multilingual plugins) is used; the visitor’s browser language serves as a last resort fallback.
  • enable_stripe="1" – show card payment via Stripe. Configure Stripe keys and webhook secret in Apartments -> Settings -> Payments & Invoices.
  • enable_mollie="1" – show card payment via Mollie. Configure the Mollie API key and use the displayed Mollie webhook URL in Apartments -> Settings -> Payments & Invoices.
  • enable_bank_transfer="1" – show bank transfer payment. Configure default bank instructions in Apartments -> Settings -> Payments & Invoices, or translated per-apartment instructions in Bookings -> Apartment Content.
  • enable_cash="1" – show cash payment.

Example: [vstrb_booking_form unit="YOUR_ID" language="de"]

Payment example with Mollie and bank transfer:
[vstrb_booking_form unit=”YOUR_ID” enable_mollie=”1″ enable_bank_transfer=”1″ enable_cash=”1″]

Payment example with all payment methods:
[vstrb_booking_form unit=”YOUR_ID” enable_stripe=”1″ enable_mollie=”1″ enable_bank_transfer=”1″ enable_cash=”1″]

How do I enable Mollie payments?
  1. Go to Apartments -> Settings -> Payments & Invoices.
  2. Enter your Mollie API key (test_... or live_...).
  3. Copy the displayed Mollie Webhook URL into your Mollie dashboard webhook settings.
  4. Add enable_mollie="1" to your booking form shortcode.

Example: [vstrb_booking_form unit="YOUR_ID" enable_mollie="1"]

How do I display the availability calendar?

Use the shortcode [vstrb_availability_calendar unit="YOUR_ID" months="3"].

How do I collect guest registration data (e.g. from Booking.com guests)?

Use the shortcode [vstrb_guest_registration unit="YOUR_ID"] on any page. Share the link with your guest – they fill in their personal details without needing to register. Submitted data is saved to the database and sent by email to both the admin and the guest. You can review all registrations under Bookings -> Guest Registrations in the admin panel.

Optional parameters:

  • title="TEXT" – custom heading displayed above the form. If omitted, the apartment name is used as the heading.
  • language="LOCALE" – locale code (e.g. cs_CZ, de_DE, en_US) to render the form labels in a specific language. If omitted, the current site language is used.
  • param="accommodation" – resolve the apartment from a URL parameter instead of a fixed unit ID. This is useful for Booking.com links with [PROPERTY_NAME].
  • match="contains" – allow one unique partial match when Booking.com sends a longer or shorter property name.
  • fallback="TEXT" – text shown when no unique apartment is matched.

Example: [vstrb_guest_registration unit="YOUR_ID" title="Apartment Modry Dum" language="cs_CZ"]

Booking.com example page shortcode:
[vstrb_guest_registration param=”accommodation” language=”en_US” fallback=”Accommodation not found. Please contact us.”]

Booking.com message URL:
https://example.com/accommodation-registration-tourist-tax/?accommodation=[PROPERTY_NAME]&source=booking_com

Add the exact Booking.com property name to External accommodation names / aliases in the matching apartment editor. One alias per line is supported. Matching ignores case, accents, and extra punctuation.

How do I manage multilingual apartment descriptions, amenities, arrival instructions, and bank transfer instructions?

Create reusable content templates under Bookings -> Apartment Content. Each template can contain translated apartment descriptions, amenities text, arrival instructions, and bank transfer payment instructions for the languages configured in Bookings -> Settings.

Then open an apartment and use the Guest-facing Apartment Content section in the apartment details. You can assign a template and optionally override any language directly for that apartment.

Template texts support placeholders in double braces. Built-in placeholders include:

  • {{apartment_name}}
  • {{apartment_id}}
  • {{site_name}}
  • {{checkin_time}}
  • {{checkout_time}}
  • {{capacity}}
  • {{booking_id}} – available in arrival instruction emails.
  • {{guest_name}} – available in arrival instruction emails.
  • {{date_from}} and {{date_to}} – available in arrival instruction emails.
  • {{invoice_number}}, {{payment_amount}}, and {{payment_currency}} – available in bank transfer instructions after booking submission.

Bank transfer callbacks use the generic Bank Notify URL from settings. The endpoint accepts JSON, form-encoded payloads, and simple XML bodies. It recognizes common wrapper keys such as transaction, payment, data, entry, or accountStatement, and common aliases:

  • token: token, webhook_token, secret, shared_secret, api_key, or the X-VSTRB-Token, X-Webhook-Token, or Authorization: Bearer ... header.
  • booking: booking_id, bookingId, reservation_id, or order_id.
  • invoice: invoice_number, invoiceNumber, invoice_no, invoice, or bill_number.
  • reference / variable symbol: reference, payment_reference, variable_symbol, variableSymbol, vs, transaction_id, bank_reference, endToEndId, remittanceInformation, message, note, or userIdentification.
  • amount and currency: amount, value, transaction_amount, castka, sum, currency, ccy, or mena.

The plugin matches payments by booking ID first, then invoice number, then exact reference/variable-symbol match against stored payment references or invoice numbers. It does not connect directly to a specific bank API by itself; a bank export, external automation, or middleware can call the endpoint in one of the supported shapes.

You can also define custom placeholders in the apartment editor, for example door_pin, wifi_password, or parking_note. Custom placeholders can have one global value or language-specific values. Use them as {{door_pin}} or with a fallback like {{door_pin|provided before arrival}}.

Example: door PIN and Wi-Fi password

  1. Open Apartments -> Edit Apartment.
  2. In Guest-facing Apartment Content -> Template Placeholders, add:
    • Key: door_pin
    • Global value: 123456
  3. Add another placeholder:
    • Key: wifi_password
    • Global value: MySecureWifiPassword
  4. Use these placeholders in an arrival instruction template:

    Your apartment is {{apartment_name}}.
    Check-in is possible from {{checkin_time}}.
    The entrance door PIN is {{door_pin}}.
    The Wi-Fi password is {{wifi_password}}.

Example: translated custom placeholder

If a placeholder contains text that should be translated, fill the language-specific values:

  • Key: parking_note
  • Global value: Parking is available behind the house.
  • CS value: Parkovani je mozne za domem.
  • DE value: Parken ist hinter dem Haus moeglich.

Then use it in a template:

{{parking_note}}

When the content is displayed or emailed in Czech, the CS value is used. In German, the DE value is used. If no matching language value exists, the global value is used.

Example: fallback text when a value is missing

Door PIN: {{door_pin|provided before arrival}}

If door_pin is empty, the guest will see provided before arrival instead of a blank value.

You can display the saved content with these shortcodes:

  • [vstrb_unit_description unit="YOUR_ID" language="cs"]
  • [vstrb_unit_amenity_list unit="YOUR_ID" language="cs"]
  • [vstrb_unit_arrival_instructions unit="YOUR_ID" language="cs"]
  • [vstrb_unit_arrival_instructions_by_code param="unit_code" language="cs"]
  • [vstrb_unit_arrival_instructions_by_name param="accommodation" language="cs"]
  • [vstrb_unit_arrival_instructions_by_reservation]

If the language attribute is omitted, the site language is used. Apartment-specific text has priority over the selected template.

To show arrival instructions without exposing an internal apartment ID, prefer [vstrb_unit_arrival_instructions_by_code]. Set a Public apartment code in the apartment editor and put that code into the external channel link. This is more reliable than matching a name sent by Booking.com, Airbnb, or another channel.

Example page shortcode:
[vstrb_unit_arrival_instructions_by_code param=”unit_code” language=”cs” fallback=”Accommodation not found. Please contact us.”]

Example guest URL:
https://example.com/arrival/?unit_code=blue-house

If an external channel can only send the accommodation name, use [vstrb_unit_arrival_instructions_by_name] and add the exact channel-specific names to External accommodation names / aliases in the apartment editor. The shortcode matches the URL value against the apartment title and these aliases. Matching ignores case, accents, and extra punctuation.

Optional parameters:

  • param="NAME" – GET parameter containing the public code or accommodation name. Defaults: unit_code for the code shortcode, unit_name for the name shortcode.
  • code="TEXT" – use a fixed public apartment code instead of a GET parameter, useful for testing.
  • name="TEXT" – use a fixed accommodation name or alias instead of a GET parameter, useful for testing.
  • match="exact" – default exact normalized title match.
  • match="contains" – name shortcode only: allow one unique partial match when an external channel sends a longer or shorter name.
  • show_title="1" – show the matched apartment title above the instructions.
  • fallback="TEXT" – text shown when no unique apartment is matched.
How do automated arrival instruction emails work?

In the apartment editor, enable Email arrival instructions automatically before check-in and set Send days before arrival.

The daily WordPress cron checks confirmed bookings with a customer email address. If arrival instructions exist for the apartment, the guest receives an email with the apartment description, amenities, and arrival instructions in the saved booking language when available. Each booking is marked after sending so the instructions are not sent repeatedly.

To display arrival instructions by matching a guest stay, use:
[vstrb_unit_arrival_instructions_by_reservation]

The shortcode reads arrival date, departure date, first name, and last name from URL parameters. It accepts ISO dates and common local numeric date formats such as 2026-06-01, 1.6.2026, 01/06/2026, and 06/01/2026; ambiguous formats are tried against stored reservations without converting through UTC. It first tries to find one apartment by stay dates only. If multiple apartments match the same dates, it narrows the result by both guest names, then by last name only, then by first name only. Name matching ignores accents and letter case. If no unique match is found, it displays the first apartment with available instructions in alphabetical order.

Example page shortcode:
[vstrb_unit_arrival_instructions_by_reservation date_from_param=”checkin” date_to_param=”checkout” first_name_param=”guest_first_name” last_name_param=”guest_last_name” language=”cs” available_days_before=”1″ unavailable_text=”Arrival instructions are not available yet.” fallback=”Arrival instructions are not available. Please contact us.”]

Example guest URL, password: testtest:
https://vachr.cz/apartment-1-demo-pin/?checkin=2026-06-23&checkout=25.6.2026&guest_first_name=Jan&guest_last_name=Novak

Optional parameters:

  • unit="ID" – limit matching to one apartment, useful when date combinations may repeat across apartments.
  • date_from_param="date_from" – URL parameter containing arrival.
  • date_to_param="date_to" – URL parameter containing departure.
  • first_name_param="first_name" – URL parameter containing first name.
  • last_name_param="last_name" – URL parameter containing last name.
  • date_from="YYYY-MM-DD" – fixed arrival date instead of a URL parameter.
  • date_to="YYYY-MM-DD" – fixed departure date instead of a URL parameter.
  • first_name="TEXT" – fixed first name instead of a URL parameter.
  • last_name="TEXT" – fixed last name instead of a URL parameter.
  • language="cs" – language used for apartment instructions.
  • show_title="1" – show the matched or fallback apartment title above the instructions.
  • fallback="TEXT" – text shown when no apartment has arrival instructions.
  • available_days_before="1" – how many days before arrival the instructions may be shown. Default: 1. Use 0 to show them only on the arrival day.
  • unavailable_text="TEXT" – text shown when the guest opens the page too early. If omitted, a translated default message is shown.
Can I pre-fill the guest registration form from a URL?

Yes. The [vstrb_guest_registration] shortcode reads the following GET parameters and pre-fills the corresponding form fields:

  • date_from – check-in date (format: YYYY-MM-DD)
  • date_to – check-out date (format: YYYY-MM-DD)
  • first_name – guest’s first name (pre-fills the first guest block)
  • last_name – guest’s last name (pre-fills the first guest block)
  • source – booking source; accepted values: booking_com, airbnb, vrbo, expedia, direct, other
  • booking_ref – booking reference number
  • accommodation – external accommodation name used to resolve the apartment when [vstrb_guest_registration param="accommodation"] is used

Example URL:
https://bayernrelax.eu/en/accommodation-instructions/?accommodation=[PROPERTY_NAME]&date_from=2026-07-01&date_to=2026-07-07&first_name=John&last_name=Doe&source=booking_com&booking_ref=1234567890

This is useful when sending a registration link directly from a booking confirmation email.

How do admin price offers work for imported reservations?

Open Bookings, click Offer on any reservation, and use the Price offer panel. The plugin calculates the price from the current reservation unit, dates, guest count, services, seasonal rates, discounts, surcharges, and refundable deposit settings.

You can add a one-time manual discount as a fixed amount or percentage. The generated result is saved back to the booking total and into the booking price breakdown, so notification emails and admin details show the same final amount.

For imported iCal reservations from e-chalupy.cz, Booking.com, Airbnb, and similar channels, the guest email is often not stored as the booking customer email. In that case you can enter any recipient in Send offer to email. If the iCal description contains an email address, the field is prefilled automatically.

Each offer also has a private public link in Public price offer link. Copy that URL and send it manually through any channel. The link uses a random token and displays only the price offer page for that booking.

The email sent from the price offer panel includes the offer summary and the same public price offer link.

How do I show limited booking details to cleaners or staff?

Go to Apartments -> Settings -> Notifications and add one staff access rule per line:

cleaner@example.com|unit,dates,guests|departure|cs_CZ|1
reception@example.com|unit,dates,guests,contact|arrival|de_DE|3
manager@example.com|all|all|en_US|1

The format is email|fields|events|language|days_before.

The fields part controls visible information in staff emails and the staff frontend shortcode. The events part controls which staff emails are sent. The optional language part controls the language of staff emails for that address; use locale codes such as cs_CZ, de_DE, or en_US. If it is omitted, the site language is used. The optional days_before part controls how many days before an arrival or departure reminder is sent. Use 0 for the same day, 1 for one day before, 3 for three days before, etc. If you want days_before without a language, use either email|fields|events||3 or the shorthand email|fields|events|3.

Available fields:

  • unit – apartment name.
  • dates – stay dates.
  • guests – guest count.
  • status – booking status.
  • source – booking source.
  • customer – customer name.
  • contact – customer email and phone.
  • price – booking total and currency.
  • note – booking note.
  • booking_reference – external booking reference on guest registrations.
  • guest_names – names submitted in guest registrations.
  • all – allow all fields.

Available events:

  • new_booking – email when a new booking is created.
  • registration – email when guest registration details are submitted.
  • arrival – email before check-in, using the rule’s days_before value.
  • departure – email before checkout, using the rule’s days_before value.
  • ical_cancelled – email when a future imported iCal reservation disappears from its source feed and is treated as cancelled.
  • all – receive all staff emails.

For a cleaner who should not see prices or guest contact details and should only receive checkout reminders, use:

cleaner@example.com|unit,dates,guests|departure|cs_CZ|1

For a reception or handover person who should only receive arrival reminders, use:

reception@example.com|unit,dates,guests,contact|arrival|de_DE|3

Then create a WordPress page or post, optionally protect it with a WordPress password, and add:

[vstrb_staff_bookings email="cleaner@example.com" days="30"]

Optional shortcode parameters:

  • email="EMAIL" – staff rule to use.
  • days="N" – number of upcoming days to display (default: 30).
  • unit="ID" – limit to one apartment.
  • limit="N" – maximum number of bookings (default: 50).
  • include_registrations="0" – hide guest registration groups.
  • status="all" – include cancelled and blocked bookings too.
×
نظری برای این آیتم موجود نیست.
0 0 رای ها
امتیازدهی
اشتراک در
اطلاع از
0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
هیچ نسخه‌ای برای این آیتم موجود نیست.
بدون امتیاز

قیمت:

رایگان

نگارش

آخرین انتشار

16 اردیبهشت 1405

آخرین بروزرسانی

3 ماه پیش

نصب های فعال

-

نگارش وردپرس

وردپرس 5.0+

تست شده از نسخه

وردپرس 6.9.4

نگارش PHP

PHP 7.2+

نسخه ها

0 نسخه