Ismétlő mező: feedek hozzárendelése és átállás a szerkesztőbe
Hogyan jelenik meg és mit küld az Ismétlő mező a feedek mezőhozzárendelésében, és hogyan teheted a kóddal hozzáadott Ismétlő mezőt a szerkesztőből kezelhetővé.
Ez a fejezet az Ismétlő mező két gyakorlati kérdését veszi végig: mit kap egy feed, ha Ismétlő mezőt rendelsz hozzá, és hogyan alakíthatod át a korábban kóddal hozzáadott Ismétlő mezőt úgy, hogy az űrlapszerkesztőben is szerkeszthető legyen.
Ismétlő mező hozzárendelése feedben
Szekció neve “Ismétlő mező hozzárendelése feedben”A feedek mezőhozzárendelési legördülő listájában az Ismétlő mezőhöz kapcsolódó elemek az Űrlapmezők csoportban, a szokásos mezők mellett jelennek meg.
- Az Ismétlő mezőbe ágyazott másik Ismétlő mező a teljes útvonalával látszik, például Játékosok → Elérhetőség.
- Az Ismétlő mezőn belüli mező még egy szinttel beljebb, például Elérhetőség → Telefon.
Az Ismétlő mezőn belüli E-mail mező nem jelenik meg azokban a beállításokban, amelyek E-mail mezőt várnak. Ennek oka, hogy az Ismétlő mezőn belüli mező több értéket is adhat, nem egyetlen e-mail-címet. Jelenleg csak az E-mail mezőtípusra érvényes ez a megszorítás. A többi mező, például a Név, hozzárendelhető minden olyan beállításhoz, amely bármilyen mezőtípust elfogad.
Mi megy át a feedbe
Szekció neve “Mi megy át a feedbe”Hogy mit kap a feed, az attól függ, mit rendelsz hozzá. Az alábbi példákban egy Játékosok nevű Ismétlő mező van, benne Név és E-mail mezővel, valamint egy beágyazott Elérhetőség nevű Ismétlő mező, amelyben egy Telefon mező van. A JSON-példák azt mutatják, mit küldene a Webhooks kiegészítő.
| Mit rendelsz hozzá | Mit kap a feed | Mikor használd |
|---|---|---|
| Az Ismétlő mező (Játékosok) | Az Ismétlő mező teljes adata: minden sor, és a sorokban lévő beágyazott Ismétlő mezők és mezők is. | Ha a célrendszernek a teljes szerkezetre szüksége van. |
| A beágyazott Ismétlő mező (Játékosok → Elérhetőség) | A beágyazott mező összes sora egyetlen, lapos listában, a szülősorok szerinti csoportosítás nélkül. | Ha az összes beágyazott elemre szükséged van, de a szülő szerinti tagolásra nem. |
| Az Ismétlő mezőn belüli mező (Elérhetőség → Telefon) | Csak ennek az egy mezőnek az értékei. Ha az Ismétlő mezőnek több sora van, az értékek vesszővel elválasztott egyszerű listába kerülnek. | Ha a célrendszernek csak egyetlen adat kell, például a telefonszámok listája. |
Az Ismétlő mező teljes szerkezete
Szekció neve “Az Ismétlő mező teljes szerkezete”{ "players": [ { "3": "Minta Mihály", "5": [ { "6": "+3612345678" }, { "6": "+3687654321" } ] }, { "3": "Példa Tamás", "5": [ { "6": "+3611112222" }, { "6": "+3633334444" } ] } ]}A beágyazott Ismétlő mező lapos listája
Szekció neve “A beágyazott Ismétlő mező lapos listája”{ "player_contact_info": [ { "6": "+3612345678" }, { "6": "+3687654321" }, { "6": "+3611112222" }, { "6": "+3633334444" } ]}Az Ismétlő mezőn belüli mező: vesszős lista
Szekció neve “Az Ismétlő mezőn belüli mező: vesszős lista”{ "contact_info_phone": "+3612345678, +3687654321, +3611112222, +3633334444"}A három közül azt válaszd, amelyik a célrendszer igényének megfelel: a teljes szerkezetet, a lapos listát vagy az egyszerű értéklistát.
Kóddal hozzáadott Ismétlő mező átalakítása szerkeszthetővé
Szekció neve “Kóddal hozzáadott Ismétlő mező átalakítása szerkeszthetővé”Az Ismétlő mező korábban béta besorolású volt, és csak kóddal lehetett az űrlaphoz adni. A 3.2.0-s kiadástól teljes értékű mezőként szerepel az űrlapszerkesztőben. Ha korábban kóddal vezetted be, az űrlap működéséhez nem kell átalakítanod, csak akkor, ha a mezőt az űrlapszerkesztőből akarod kezelni.
Az átalakítás azon alapul, hogy a kóddal hozzáadott mezőt egyszer elmented az űrlapba, majd a kódot eltávolítod, hogy ne maradjon belőle két példány.
-
Keresd meg a kódban azt a részt, amely hozzáadja az Ismétlő mezőt az űrlaphoz. A
gform_form_post_get_metaszűrőt keresd. Példa (az űrlap azonosítóját írd át):add_filter( 'gform_form_post_get_meta_149', 'add_my_field' );function add_my_field( $form ) {// Egysoros szöveg mező a csapattag nevének$name = GF_Fields::create( array('type' => 'text','id' => 1002, // Az azonosító egyedi legyen az űrlapon'formId' => $form['id'],'label' => 'Név','pageNumber' => 1, // Ellenőrizd, hogy helyes-e) );// E-mail mező a csapattag e-mail-címének$email = GF_Fields::create( array('type' => 'email','id' => 1001,'formId' => $form['id'],'label' => 'E-mail','pageNumber' => 1,) );// Az Ismétlő mező, benne a név és az e-mail mezővel$team = GF_Fields::create( array('type' => 'repeater','description' => 'Legfeljebb 3 csapattag, a maxItems tulajdonsággal','id' => 1000,'formId' => $form['id'],'label' => 'Csapattagok','addButtonText' => 'Csapattag hozzáadása','removeButtonText' => 'Csapattag eltávolítása','maxItems' => 3,'pageNumber' => 1,'fields' => array( $name, $email ),) );$form['fields'][] = $team;return $form;} -
Nyisd meg az űrlapot az űrlapszerkesztőben, és ellenőrizd, hogy az Ismétlő mező látszik-e.
-
Távolítsd el a kódból a
gform_form_update_metaszűrőt. Ez a szűrő mentéskor kiveszi az Ismétlő mezőt az űrlapból. Ha letiltod, a mező mentéskor nem tűnik el, és látható marad a szerkesztőben. Példa a szűrőre, amit el kell távolítani:add_filter( 'gform_form_update_meta_1123', 'remove_my_field', 10, 3 );function remove_my_field( $form_meta, $form_id, $meta_name ) {if ( $meta_name == 'display_meta' ) {// Az Ismétlő mező eltávolítása: azonosító 1000$form_meta['fields'] = wp_list_filter( $form_meta['fields'], array( 'id' => 1000 ), 'NOT' );}return $form_meta;} -
Mentsd az űrlapot az űrlapszerkesztőben, majd frissítsd az oldalt. Most két példányt látsz az Ismétlő mezőből: az éppen elmentettet és a kóddal hozzáadottat.
-
Távolítsd el a kódból a
gform_form_post_get_metaszűrőt is. Ez adta hozzá az Ismétlő mezőt az űrlap létrehozásakor, így nélküle nem kerül be újra. -
Frissítsd az űrlapszerkesztőt, és kattints az Ismétlő mezőre. Már csak egy példányt látsz, és az teljesen szerkeszthető a szerkesztőben.
Az űrlapszerkesztő mezői és az űrlap szerkesztésének lépései az Új űrlap és az űrlapszerkesztő fejezetben vannak.
Készült: