Tovább a tartalomhoz

Feed késleltetése, amíg egy másik feed lefut

Mi a teendő, ha egy feednek egy másik feed eredményére van szüksége, például az új bejegyzés azonosítójára: a késleltetés két kapcsolóponttal.

A legtöbb kiegészítő feedjét a Gravity Forms aszinkron módon dolgozza fel, és a sorrend nincs garantálva. Ez általában nem gond. Akkor viszont igen, ha az egyik feednek a másik feed eredményére van szüksége.

Az űrlap a Haladó bejegyzéslétrehozás kiegészítővel bejegyzést hoz létre, majd a Zapier kiegészítővel elküldi a beküldés adatait, benne az új bejegyzés azonosítóját is. Néha ez jól működik. Máskor a Zapier a bejegyzés helyett az oldal azonosítóját kapja, és a későbbi automatizmus elromlik.

A feedek egymástól függetlenül futnak, ezért a Zapier-feed előbb is elindulhat, mint hogy a bejegyzéslétrehozó feed végzett volna. Ha a Zapier-nek az új bejegyzés azonosítója kell, annak a bejegyzéslétrehozás befejezése után kell az adatokat lekérnie.

A megoldás: a függő feedet visszatartod addig, amíg az, amitől függ, el nem készül, majd kézzel elindítod.

Két kapcsolópont (hook) dolgozik együtt:

Kapcsolópont Mit csinál
gform_is_delayed_pre_process_feed Visszatartja a Zapier-feedet addig, amíg a bejegyzés azonosítója meg nem jelenik a beküldésben.
gform_advancedpostcreation_post_after_creation A bejegyzés létrehozása után fut le. Ez a megfelelő pillanat a visszatartott Zapier-feed elindítására.

A feed elindítását a GFAPI::maybe_process_feeds() függvény végzi. A hozzá tartozó mintakód a két kapcsolópont leírásának példái között van.

A minta nem csak a Haladó bejegyzéslétrehozásra és a Zapier-re vonatkozik. Bármikor, amikor egy feednek meg kell várnia egy másikat:

  1. Tartsd vissza a függő feedet a gform_is_delayed_pre_process_feed kapcsolóponttal.
  2. Kapcsolódj be egy olyan eseménybe, amely akkor fut, amikor az első feed elkészült.
  3. Ott indítsd el a visszatartott feedet a GFAPI::maybe_process_feeds() hívással.

A gform_is_delayed_pre_process_feed leírásában további példák is vannak: a Mailchimp késleltetése a felhasználóregisztráció befejezéséig, a Slack késleltetése a felhasználóregisztráció közben, és a Zapier késleltetése a Dropbox-feltöltés végéig.

A feedek közös kezeléséről a Feedek alapjai, a hibakeresésről a Feed-hibaelhárítás 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