Tovább a tartalomhoz

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.

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.

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á.

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 ű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:

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) fejezetet).

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.

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 és az Az Űrlap blokk beállításai fejezetben olvashatsz.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások