# Foglalási űrlap

> Foglalási űrlap készítése JetFormBuilderrel egyszerű módban: mezők, számított ár, utólagos műveletek, elhelyezés a tétel oldalán és a foglalási naptár elem.

Egyszerű módban a foglalást egy JetFormBuilder űrlap veszi fel. Az űrlapot a beállítási varázsló is létrehozhatja ([Beállítási varázsló](https://hub.hellowp.io/hu/plugins/jet-booking/beallitasi-varazslo/)), de kézzel is elkészítheted. A WooCommerce-alapú módban nincs szükség űrlapra ([WooCommerce-alapú mód](https://hub.hellowp.io/hu/plugins/jet-booking/woocommerce-alapu-mod/)).

## Mit kell előkészítened?

- Telepített és bekapcsolt JetFormBuilder.
- Egy bejegyzéstípus a foglalható tételeknek, és egy a foglalási rendeléseknek (például JetEngine-nel készítve). A rendelések bejegyzéstípusában ugyanazok a mezők legyenek, mint az űrlapon, a be- és kijelentkezési dátum mezőt kivéve.
- A **Foglalások → Beállítások → Általános** oldalon kiválasztott **Foglalási rendelések bejegyzéstípus** és **Foglalási példányok bejegyzéstípusa**.
- Ha az űrlapon fizetsz is: a JetFormBuilder **Settings → Payments Gateways** fülén bekapcsolt fizetési átjáró (például PayPal, a Client ID és a Secret Key megadásával, tesztmódban is).

## Az űrlap felépítése

Az új űrlapot a **JetFormBuilder → Add New Form** menüponttal hozhatod létre. Az űrlapszerkesztő a WordPress blokkszerkesztőjében nyílik meg. A JetFormBuilder felülete angol nyelvű maradhat, ezért a mezők és beállítások angol nevükön szerepelnek.

Egy tipikus foglalási űrlap mezői:

| Mező | Mire való |
|---|---|
| **Hidden Field** | Az aktuális bejegyzés azonosítója (alapértelmezett neve `post_id`). Ne töröld, szükség van rá az utólagos műveletekhez |
| **Text Field** | A név és az e-mail-cím. Az e-mail mező típusa legyen **Email**. Egyszerű módban nem kötelező, de a munkafolyamatok e-mailjeihez szükséges |
| **Check-in/Check-out dates** | A foglalási időszak. Beállítható az elrendezés (egy mező vagy külön érkezés és távozás mező), a mezők pozíciója, a dátumformátum, az elválasztó és a hét első napja. Ez a mező csak egyszerű módban érhető el |
| **Number Field** | A vendégek száma (minimum, maximum és lépésköz megadható) |
| **Checkbox Field** | Választható szolgáltatások, például étkezés. Az egyes opciókhoz címke, érték és a számításhoz használt érték adható meg |
| **Calculated Field** | A teljes ár. A képletet a bővítmény makróival építheted fel ([Árazás](https://hub.hellowp.io/hu/plugins/jet-booking/arazas/)) |
| **Action Button** | A küldés gombja, a felirata megadható (például „Foglalás”) |

Az űrlapon belül minden mező nevének egyedinek kell lennie, és csak kisbetűs latin betűkből, számokból, kötőjelből és aláhúzásból állhat.

Az **Ár** számításánál a makrók közül a `%META::_apartment_price%` a tétel napi árát adja, az `%ADVANCED_PRICE::…%` pedig a tarifák, szezonok és hétvégi árak szerint számolt árat.

## Utólagos műveletek (Post Submit Actions)

Az űrlap beállításainál a **Post Submit Actions** menüben állítsd be, mi történjen a küldés után:

1. **Save Form Record** (alapértelmezett): az űrlap adatai a **JetFormBuilder → Form Records** oldalon is megjelennek.
2. **Insert/Update Post**: létrehozza a foglalási rendelés bejegyzést. Add meg a **Post Type** (például „Foglalási rendelések”) értékét, és a **Fields Map** részben rendeld az űrlapmezőket a bejegyzéstípus mezőihez. Ha az űrlapon fizetsz is, állítsd be az eseményt is: az **Edit Action Conditions & Events** ablak **Events match** füle alatt válaszd a **GATEWAY.SUCCESS** eseményt.
3. **Apartment Booking**: ez veszi fel a foglalást a JetBooking rendszerébe. Rendeld hozzá az **Apartment ID Field** mezőhöz a `post_id` mezőt, a **Check-in/Check-out Date Field** mezőhöz a dátum mezőt, és az **E-mail Field** mezőhöz az e-mail mezőt. Az eseménye legyen **DEFAULT.PROCESS**. Ha WooCommerce-integráció is be van kapcsolva, itt adhatod meg a **WooCommerce Price Field** mezőt is.
4. **Send Email**: azonnali visszaigazoló e-mail. Ütemezett e-mailekre (például emlékeztető az érkezés előtt) a **Foglalások → Beállítások → Munkafolyamatok** szolgál ([Munkafolyamatok, makrók és lemondás](https://hub.hellowp.io/hu/plugins/jet-booking/munkafolyamatok-es-makrok/)).

Fizetéshez a **Gateway Settings** résznél kapcsold be a **PayPal Checkout** átjárót, az **Use Global Settings** kapcsolóval vedd át a globális beállítást, majd a **Sync Action Token** gombbal szinkronizálj. Itt add meg a pénznem kódját és a számított mezőt, amely az ár.

## Az egyedi oszlopok hozzárendelése

Ha az **Eszközök** fülön vagy a varázslóban saját adatbázisoszlopot vettél fel (például **vendegek**), az **Apartment Booking** műveletben a megfelelő űrlapmezőhöz kell rendelni. Ha az oszlopot kihagyod, az érték nem kerül a foglalás adataihoz. Változtatás után kattints az **Eszközök** fülön a **Foglalási táblák frissítése** gombra.

## Az űrlap elhelyezése a tétel oldalán

Az űrlap beilleszthető Elementorban, a blokkszerkesztőben és a Bricks szerkesztőben is. A tétel egyedi oldalán (például JetThemeCore sablonnal készített single oldalon) használd a JetForm elemet, és válaszd ki az elkészített űrlapot. A sablon forrása a foglalható tételek bejegyzéstípusa legyen.

## Foglalási naptár (Booking Availability Calendar)

A **Booking Availability Calendar** elem a szabad és foglalt napokat mutatja a tétel oldalán. Csak egyedi single oldalon, Elementorban, a blokkszerkesztőben vagy Bricksben érhető el, JetEngine vagy JetFormBuilder űrlappal együtt működik. Két beállítása van:

- **Allow to select dates**: ha ki van kapcsolva, a látogató választhat dátumot a naptárban, de az nem hat az űrlapra. Ha be van kapcsolva, a kiválasztott dátumok automatikusan kitöltik az űrlap érkezési és távozási mezőjét;
- **Scroll to the form**: ha be van kapcsolva, a dátumok kiválasztása után az oldal az űrlaphoz görget.

## Árkimutatás (Price Breakdown)

WooCommerce-alapú módban a **Price Breakdown** elem a teljes ár összetevőit mutatja: a napok (éjszakák) számát (**Stay**), a szezonális és hétvégi árat, a tarifákat és a részösszeget. Ennek segítségével a vevő érti, miért ennyi a végösszeg. A tétel oldalán, a kosárban, a pénztárban és a rendelés részletei között használható. A kosárban az elem hivatkozásként jelenik meg, amelyre kattintva felugró ablakban látszanak az árösszetevők. Ha még nincs kiválasztott időszak, az elem helykitöltő szöveget mutat, amely a `jet-booking/render/price-breakdown/placeholder-message` szűrővel módosítható vagy üresre cserélhető:

```php
add_filter( 'jet-booking/render/price-breakdown/placeholder-message', '__return_empty_string' );
```
