# Előfizetéses űrlap lépésről lépésre

> Teljes példa: előfizetési csomag a PayPal sandboxban, az űrlap beállítása, események, kipróbálás és az előfizetés kezelése.

Ez a fejezet egy előfizetéses űrlap teljes útját mutatja be a csomag létrehozásától a kipróbálásig. A PayPal sandbox (teszt) módját használjuk: ez valódi pénzmozgás nélkül szimulálja a fizetéseket. Éles módban a csomag létrehozása ugyanígy megy, csak az éles PayPal-fiókhoz tartozó API-adatokat kell megadnod. Az egyes lépések részletei a [Beállítás](https://hub.hellowp.io/hu/plugins/jet-form-builder-paypal-subscriptions/beallitas/) fejezetben is megvannak.

## Mit tud a kiegészítő

- **Ismétlődő fizetés:** fix, mennyiségalapú, kötegelt és sávos árazás, a próbaidőszak figyelembevételével. A fizetéseket a PayPalban beállított csomag szerint adja át.
- **Előfizetések oldala:** az előfizetés és a fizetés adatai (előfizető, számlázási ciklus, állapot, fizető, szállítási adatok, dátumok, bruttó összeg) egy helyen látszanak.
- **Visszatérítés** az adminfelületről.
- **Felfüggesztés és lemondás** az adminfelületről.
- **Műveleti események (Action Events):** az utólagos műveletekhez eseményeket rendelhetsz, PHP-visszahívás nélkül.
- Átjáró-műveletek, hozzáférési token szinkronizálása, mennyiség mező, átirányítás és egyéni sikeres és sikertelen üzenetek.

## 1. Telepítés

A kiegészítő telepítése a **JetFormBuilder → Addons** oldalon vagy a **Bővítmények** oldalról megy, és aktiválni is kell. Az oldalnak kívülről, távoli tárhelyről elérhetőnek kell lennie: a PayPal az előfizetésekről és a fizetésekről értesítést küld az oldalnak, ez helyi gépen futó oldalra nem érkezik meg.

## 2. Előfizetési csomag a PayPal sandboxban

1. Lépj be a PayPal fejlesztői fiókodba. Alapból a sandbox teszt-fiókok oldalára érkezel, ahol az üzleti és a személyes fiókjaid vannak.
2. Nyisd le a használni kívánt üzleti fiókot: a **Login Info** és a **REST API apps** szakasz jelenik meg.
3. A kapott e-mail-címmel és jelszóval lépj be a sandbox PayPal oldalra.
4. A fiókban nyisd meg a **Business Tools** fület, és kattints a **Recurring payments dashboard** linkre.
5. Az előfizetési csomagok listájában a **Create Plan** gombbal hozhatsz létre újat. A már meglévő csomagok a **Choose the subscription product you want to offer** lépésben választhatók.
6. Új termékhez kattints a **Create a subscription product** gombra. A **Product name** és a **Product type** kötelező, a többi mező üresen hagyható. Kattints a **Next** gombra.
7. A termék kijelölése után a **Next** gombbal lépj tovább, és válaszd ki az árazás típusát (például **Fixed pricing**).
8. A csomag adatainál a termék neve átkerül, a **Plan name** mező kötelező.
9. Az árazásnál add meg a pénznemet és az árat, és hogy hogyan számolódik fel.
10. Az utolsó lépésben ellenőrizd az adatokat (a szerkesztendő résznél az **Update** gomb van), majd kattints a **Turn Plan On** gombra.
11. A PayPal Checkout testreszabását a **Do it later** linkkel kihagyhatod. A kész csomag megjelenik a sandbox **Sales → Subscriptions → Subscription plans** oldalán.

## 3. Beállítások a JetFormBuilderben

1. Menj ide: **JetFormBuilder → Settings → Payments Gateways**, és kapcsold be az **Enable Gateways** kapcsolót.
2. Sandbox teszteléshez kapcsold be az **Enable Test Mode** kapcsolót. Élesben kapcsold ki.
3. A PayPal fejlesztői felületen nyisd le az üzleti fiókot, majd a **REST API apps** szakaszban az alkalmazást, és másold ki a **Client ID** és a **Secret Key** értékét.
4. Illeszd be őket a **Payments Gateways** fülön a megfelelő mezőkbe, és kattints a **Save** gombra.

## 4. Az űrlap

1. Menj ide: **JetFormBuilder → Add New**. Az űrlap a blokkszerkesztőben nyílik meg.
2. Adj nevet az űrlapnak, és kattints a **Start from Scratch** gombra (vagy válassz a **Welcome** blokk beágyazott űrlapjai közül). A példában szöveges mezők, rádiógombos mező és műveleti gomb szerepel.
3. A jobb oldali **JetForm** fülön a **Gateways Settings** szakaszban válaszd a **PayPal Checkout** lehetőséget, és kattints az **Edit** gombra.
4. Kapcsold be a **Use Global Settings** kapcsolót, hogy az előbb elmentett Client ID és Secret Key érvényes legyen. Ha eltérő adatot szeretnél, kézzel is beírhatod őket.
5. A **GATEWAY ACTION** mezőben válaszd a **Create a subscription** lehetőséget, és kattints a **Sync Access Token** gombra.
6. A **SUBSCRIPTION PLAN FIELD** mezőben válaszd a **Manual Input** értéket, vagy egy űrlapmezőt, amelyből a csomag azonosítója jön. Manuális választásnál a **SUBSCRIPTION PLAN** listából jelöld ki a csomagot.
7. A **QUANTITY FIELD** maradhat **Manual Input**, a **MANUAL INPUT OF QUANTITY** mezőbe pedig írd be a mennyiséget (például 1).
8. Az üzeneteket a makrók listája alatt módosíthatod. Kattints az **Update** gombra.

### Az utólagos műveletek

1. A **Post Submit Actions** szakaszban kattints a **New Action** gombra, és válaszd a **Save Form Record** műveletet. Ha már alapból ott van, a ceruza ikonnal nyisd meg a beállításait, és kapcsold be az IP-cím és a kérés fejléceinek mentését.
2. Ha az űrlap az előfizetőket fel is veszi felhasználóként, vegyél fel egy **Register User** műveletet, és a **FIELDS MAP** részben rendeld az űrlap mezőit a felhasználó adataihoz.

![Az Add new action ablak a választható utólagos műveletekkel](./kepek/elso-lepesek-uj-muvelet.webp)

*Az Add new action ablak a választható utólagos műveletekkel* (https://minta-bolt.hu/wp-admin/post.php?post=4&action=edit)

A képen a **New Action** gomb ablaka látszik: itt választod ki a **Save Form Record**, **Register User**, **Send Email** és a többi műveletet.

### Műveleti események

Az események megmondják, mikor fusson le egy utólagos művelet. A **Save Form Record** kivételével minden művelethez rendelhetsz eseményt:

1. Mutass az egérrel a művelet kártyájára, és kattints az **Edit Conditions & Events** ikonra.
2. Az **Events match** fülön az **ADD EVENT** mezőbe kezdd el beírni az esemény nevét, és válaszd ki a javaslatok közül.
3. Kattints az **Update** gombra.

![Az Edit Action Conditions & Events ablak az Events match fülön, javasolt GATEWAY események](./kepek/elso-lepesek-esemenyek.webp)

*Az Edit Action Conditions & Events ablak az Events match fülön, javasolt GATEWAY események* (https://minta-bolt.hu/wp-admin/post.php?post=4&action=edit)

A képen a mezőbe beírt „GATEWAY.” szöveghez megjelenő javaslatok látszanak.

| Esemény | Mikor fut le |
|---|---|
| `DEFAULT.PROCESS` | Együtt a művelettel. Ha PayPal vagy Stripe be van kapcsolva, a fizetési oldalra irányítás előtt. |
| `BAD.REQUEST` | A kérés feldolgozása után, ha az űrlap mezőiben hiba van (például rossz formátumú vagy túl hosszú érték). |
| `DEFAULT.REQUIRED` | Mindig lefut, hibás mezőknél és sikertelen műveleteknél is, az űrlapválasz elküldése előtt. Ezt alapból a **Save Form Record** használja, más műveletekhez nem adható az űrlapszerkesztőben. |
| `GATEWAY.SUCCESS` | Miután a fizetési rendszer megerősítette a fizetést vagy az előfizetés létrejöttét. |
| `GATEWAY.FAILED` | Ha a látogató fizetés vagy feliratkozás nélkül tér vissza a fizetési oldalról. |
| `GATEWAY.SUBSCRIPTION.CANCELLED` | Ha az előfizetést lemondták. |
| `GATEWAY.SUBSCRIPTION.EXPIRED` | Ha a PayPal-előfizetés lejár. |
| `GATEWAY.SUBSCRIPTION.SUSPENDED` | Ha az előfizetést felfüggesztették. |
| `RENEWAL.PAYMENT` | Ha az előfizetés megújult, és újra fizettek. |

A példában a **GATEWAY.SUCCESS** eseményt állítjuk be. Végül kattints a **Publish** gombra.

## 5. Az űrlap kihelyezése

Az űrlapot a szerkesztőd **JetForm** widgetjével (blokkjával, elemével) helyezd el az oldalon, és válaszd ki benne az űrlapot. Elementorban, a blokkszerkesztőben és Bricksben is ugyanígy működik.

## 6. Kipróbálás

1. A weboldalon töltsd ki az űrlapot, és küldd el a gombbal.
2. Az űrlap a PayPal fizetési oldalára visz. Lépj be, és ha kell, válaszd ki a bankkártyát, majd kattints a **Continue** gombra.
3. Ellenőrizd az adatokat, és kattints az **Agree & Subscribe** gombra.
4. A fizetés után a PayPal visszavisz az űrlaphoz.

## 7. Az előfizetés kezelése

**A PayPalban:** a **Subscriptions** fülön (sandboxban **Sales → Subscriptions**) látod az előfizetések állapotát. A három pont gombbal felfüggesztheted (**PAUSE**) vagy lemondhatod (**CANCELLED**) az aktív előfizetést. A felfüggesztett előfizetést csak itt, az **Activate Subscription** gombbal lehet újra aktiválni. A PayPalban végzett felfüggesztés állapota pár perc múlva frissül a WordPress oldalon. A lemondott előfizetés nem aktiválható újra.

**A JetFormBuilderben:** a **JetFormBuilder → Subscriptions** oldalon az új előfizetés aktív állapotban látszik (a fizetés állapota a tényleges fizetés után néhány perccel frissül). A sor fölé víve az előfizető neve alatt megjelenik a **Suspend** és a **Cancel** link. Az előfizetés egyedi oldalán ezek a blokkok vannak: **Payer Info**, **Payment Shipping**, **Subscription Details** és **Related Form Record**. A **Notes** részben az állapotváltozások üzenetei olvashatók, és saját megjegyzést is felvehetsz az **Add Note** gombbal. A **Suspend** gombra kattintva megadhatod az okot, majd a **Suspend Subscription** gombbal az állapot **Suspended** lesz. A **Cancel** gombbal lemondhatod, ez nem vonható vissza.

## 8. Visszatérítés a PayPalban

A PayPal fiókban menj az **Activity → All Transactions** oldalra, kattints a beérkezett fizetés melletti három pontra, és válaszd a **Refund** lehetőséget. A **Total Refund Amount** mezőben add meg az összeget, opcionálisan a számlaszámot (**Invoice Number**) és a vevőnek szóló megjegyzést (**Note to Buyer**). A visszatérítés a JetFormBuilder felületéről is kérhető, lásd a [Kezelés](https://hub.hellowp.io/hu/plugins/jet-form-builder-paypal-subscriptions/kezeles/) fejezetet.

## Gyakori kérdések

- **Felfüggeszthetem vagy lemondhatom az előfizetést a JetFormBuilderből?** Igen, az előfizetések oldalán van **Suspend** és **Cancel** lehetőség.
- **Használhatok több fizetési átjárót egy űrlapon?** Igen, a PayPal és a Stripe együtt is használható egy űrlapon, így a látogató választ.
- **Más fizetési módokat is használhatok?** Igen, a Stripe-on keresztül további módok (például Klarna, SEPA, Sofort) is bekapcsolhatók.
- **Átállíthatom a felhasználó szerepkörét a sikeres fizetés után?** Igen, utólagos művelettel, lásd a [GYIK](https://hub.hellowp.io/hu/plugins/jet-form-builder-paypal-subscriptions/gyik/) fejezetet.
