# AJAX-os beküldés

> A Gravity Forms három beküldési módja, az új AJAX-os mód előnye a fizetésnél, és bekapcsolása a gform_form_args szűrővel.

A 2.9-es kiadás új űrlapbeküldési módot hozott: az **AJAX-os beküldést**. Ez AJAX-kéréssel küldi el az űrlapot a kiszolgálónak, az oldal újratöltése nélkül. Emellett a kiegészítők közvetlenebbül tudnak együttműködni külső szolgáltatásokkal, például fizetési átjárókkal. Az első, erre épülő kiegészítő a Stripe, a többi fizetési kiegészítő később követi.

## Beküldési módok

A Gravity Forms három beküldési módot ismer.

| Mód | Érték | Leírás |
|---|---|---|
| Postback | `postback` | Az alapértelmezett. Az űrlap elküldése után az oldal újratöltődik. |
| Régi AJAX | `iframe` | A korábbi „AJAX” beállítás. Az űrlap egy rejtett iframe-en át megy el, az oldal nem töltődik újra, de ez nem valódi AJAX-kérés. |
| AJAX | `ajax` | A 2.9-es kiadásban jött. Az űrlap valódi AJAX-kéréssel megy el. |

Ha egy űrlapon korábban bekapcsoltad az AJAX-ot, például az `ajax="true"` rövidkód-attribútummal vagy a blokk beállításával, az az űrlap a régi AJAX-ot használja, nem az új beküldési módot.

## Miért készült

A régebbi beküldési módokat nem olyan fizetési átjárókhoz tervezték, amelyek a böngészőben erősítik meg a fizetést. Hogy működjenek velük, a kiegészítőknek a fizetési átjáró folyamatát kellett a Gravity Forms beküldési folyamatához igazítaniuk.

Ez ellentmondásos állapotot hagyhatott maga után. Ha például a vásárló a folyamat közepén bezárta a böngészőt vagy elnavigált, a Stripe-fizetés végbemehetett anélkül, hogy a Gravity Formsban beküldés jött volna létre hozzá.

## Hogyan működik a Stripe-pal

A Stripe kiegészítő 7.0.0-s verziójától a beküldéskori események sorrendje megváltozott:

1. Az űrlap AJAX-szal elmegy.
2. Először a beküldés jön létre, még mielőtt bármilyen fizetés létrejönne a Stripe-ban.
3. A fizetés ezután külön AJAX-kéréssel jön létre és kerül feldolgozásra, a már meglévő beküldéshez kapcsolva.

Mivel a beküldés mindig megelőzi a fizetést, a vásárló nem terhelhető meg úgy, hogy ne jönne létre hozzá beküldés.

## Az AJAX-os beküldés bekapcsolása

Az űrlapszerkesztőben nincs erre beállítás. A bekapcsoláshoz használd a `gform_form_args` szűrőt, és állítsd a `submission_method` értékét `GFFormDisplay::SUBMISSION_METHOD_AJAX`-ra. Ez a példa minden űrlapra bekapcsolja:

```php
add_filter( 'gform_form_args', function ( $args ) {
	$args['submission_method'] = GFFormDisplay::SUBMISSION_METHOD_AJAX;

	return $args;
} );
```

Ha csak bizonyos űrlapokra akarod, a szűrőben az űrlap azonosítója szerint válogass.

A Stripe kiegészítőt használó űrlapoknál nem kell bekapcsolnod, mert a kiegészítő magától bekapcsolja. Ha az űrlap más kiegészítőt használ, alaposan teszteld tesztoldalon (lásd a [Tesztoldal (staging)](https://hub.hellowp.io/hu/plugins/gravityforms/hogyan-teszt-oldal-staging/) fejezetet).

## Hova tedd a kódot

A kód az aktív téma `functions.php` fájljába, egyedi funkciókat tartalmazó bővítménybe, saját kiegészítőbe vagy kódrészlet-bővítménybe is kerülhet.

## Támogatott kiegészítők

| Kiegészítő | Verzió |
|---|---|
| Stripe | 7.0.0 és újabb |

A többi fizetési kiegészítő akkor kerül a listára, amikor frissítik őket az AJAX-os beküldés használatára.

Az AJAX-ra vonatkozó, régi beállítási módokról (rövidkód, blokk) az [Űrlap beszúrása rövidkóddal](https://hub.hellowp.io/hu/plugins/gravityforms/elso-lepesek-urlap-beszurasa/) és az [Az Űrlap blokk beállításai](https://hub.hellowp.io/hu/plugins/gravityforms/beallitasok-urlap-blokk/) fejezetben olvashatsz.
