✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Täielik juhend: kuidas gravitatsioonivormides välju dünaamiliselt täita

10

Gravity Formsis lihtsate või keerukate vormide loomine on lihtne ja kiire. Üks Gravity Formsi pakutavatest funktsioonidest võimaldab teil vormil tinglikult eelvalida või eeltäita välju. See on kasulik, kui teil on sama vorm iga osakonna mitmel kontakti lehel ja soovite vormil vastava osakonna eelvalida. Või manustate toodete või teenuste lehtedele päringuvormi ja soovite iga esildise puhul automaatselt eeltäita teavet praeguse toote või teenuse kohta.

Välju saab dünaamiliselt eelvalida või eeltäita mitmel viisil ning võimalikke valikuid saab dünaamiliselt asendada ka rippmenüüs, raadionupu või märkeruutude rühmas. Dünaamiliselt täidetav väli võib olla nähtav väli, mida kasutaja saab redigeerida, või selle saab suunata peidetud väljale, et vormi esildiste lugeja saaks olulist teavet.

Neli võimalust väljade dünaamiliseks täitmiseks

Selles juhendis vaatleme nelja võimalust väljade dünaamiliseks täitmiseks Gravity Forms vormil. Neist kolme saate teha ilma ühtegi koodi puudutamata! Kuid kui soovite dünaamiliselt muuta võimalikke valikuid valitud raadionuppude rühmas või märkeruutudes, peate kirjutama PHP-koodi. Vaatame lõpus, kuidas seda teha.

Väljasid saate dünaamiliselt täita järgmiselt.

  • Lisateabe lisamine URL-i.
  • Esitage lisateavet Gravity Forms’i manustamise lühikoodile.
  • Gravity Forms Blocki lisateabe määratlemine (kui kasutate WordPressi koos Gutenbergiga).
  • PHP koodiga filtrite kasutamine.

Kuid kõigepealt peame läbima, kuidas aktiveerida välja dünaamiline populatsioon.

Välja aktiveerimine dünaamilise populatsiooni võimaldamiseks

Esimene samm, olenemata sellest, millist meetodit välja täitmiseks kasutate, on selle aktiveerimine väljal endal.

Vormi redigeerimisel laiendage välja ja vahekaardilt "Täpsemalt" leiate märkeruudu "Luba välja dünaamiliselt täita". Märkige see välja ja kuvatakse uus tekstisisestus, mis võimaldab teil määrata parameetri nime. Seda saab teha kõike, mida soovite, kuid see peaks olema ainulaadne ja ilma tühikuteta.

Täielik juhend: kuidas gravitatsioonivormides välju dünaamiliselt täita

Salvestage vorm ja see on valmis otsustama, millist meetodit soovite selle täitmiseks kasutada.

Täidetakse dünaamiliselt URL-i parameetritest

Vormi manustava lehe lingile saate lisada GET-i parameetrid, näiteks kui link asub mõne muu postituse teksti sees või on kohandatud link WordPressi menüüdes.

Lihtsalt lisage päringumuutujad võtmeväärtuste paaridesse, parameetri nimi on võtmeks ja nende väärtus olenemata sellest, mida soovite, et nende väärtus oleks. Kui soovite vormis täita mitu välja, on võimalik lisada mitu võtmeväärtuste paari, eraldage iga paar lihtsalt tähega "&".

Eeldades, et teie vorm on sellel lehel olemas: " https://example.com/contact-me/" ja teie parameetri nimi on awp_populate_me, saate välja täita, kasutades seda URL-i: " https://example.com/contact-me/?awp_populate_me=Hello".

Pidage meeles, et URL-id peavad olema korralikult kodeeritud. Näiteks ei saa te lihtsalt parameetri väärtusena lisada tühikuid ega erimärke. "Tere maailm!" kui väärtus oleks " Hello%20world%21". Kui soovite seda teed minna, on URL-ide kodeerimiseks palju veebitööriistu.

Dünaamiline asustamine lühikoodist

Kõik vormid sisestatakse lühikoodi kaudu. Saate dünaamiliselt täita välju otse selle lühikoodi sees. See meetod võib olla kasulik, kui kasutate sama vormi mitmes postituses (nt registreerite osalejaid mitmele erinevale üritusele või kursusele) ja peate esitama midagi ainulaadset, et teada saada, milliselt sündmuselt või kursuselt vorm pärineb……

Tavaliselt annab vormi manustamisel lühikood, mis näeb välja umbes selline:[gravityforms id="1" title="Contact us"]

Redigeerige lühikoodi ja lisage võtmekomplekt field_valuesstringile, mis sisaldab teie parameetri nime, mis võrdub soovitud väärtusega. Näiteks parameetri awp_populate_me"Tere maailm" seadmine toimub järgmiselt:

[gravityforms id="1" title="Contact us" field_values="awp_populate_me=Hello World"]

Kui teil on vaja täita mitu välja, lisage nende vahele "&", näiteks:

[gravityforms id="1" title="Contact us" field_values="awp_populate_me=Hello World&awp_another_field=Hello to you too"]

Asub dünaamiliselt Gutenbergi Blockist

Kui teil on GravityFormsi versioon 2.4.13+ ja WordPress koos Gutenbergiga (WordPress 5+), saate Gravity Formsi lisada plokina. Selles plokis on teil ka meetod väljade täitmiseks.

Lisage Gutenbergi plokk "Vormid" ja valige oma vorm. Plokk peaks muutuma vormi eelvaateks. Parempoolsel küljepaneelil laiendage valikut Täpsemalt ja leiate tekstiala nimega „Välja väärtused". Sellele tekstialale saate sisestada oma parameetrite nimed ja väärtused, täpselt nagu sisestaksite lühikoodi. Nt " awp_populate_me=Hello World!"

Täielik juhend: kuidas gravitatsioonivormides välju dünaamiliselt täita

Täiendatakse dünaamiliselt koodist

Ja lõpuks, kui soovite oma väljad täita PHP-koodiga, on selleks filtrid. Saate selle koodi lisada oma teemasse functions.php.

Kuidas seda kodeerida, sõltub sellest, mis tüüpi välja see on; Nagu ilmselt võite arvata, tuleb täitmist (asendades kõik valikud) valikus, märkeruutusid või raadiorühma käsitleda teisiti kui ühe tekstivälja täitmist.

Ühe väärtuse välja täitmine

Ühe väärtusega välja (see kehtib tekstivälja, tekstiala, meilivälja, telefonivälja jms kohta) täitmist saab hõlpsasti teha filtreerimise abil gform_field_value_<parameter name>. Meie näites:

add_filter('gform_field_value_awp_populate_me', function($value) { return 'Hello world!'; });

Seda filtrit saate kasutada ka mitme väärtusega väljal suvandi eelvalimiseks, nt valik (rippmenüü), raadionupud või märkeruudud.

Valiku- või raadionuppude sisestamine

Kui olete lihtsalt huvitatud valiku eelvalikust, järgige ülaltoodud juhendit ühe väärtuse välja täitmiseks. See kood on mõeldud väljal tehtavate võimalike valikute kohandamiseks või asendamiseks.

Gravity Formsi vormide renderdusfiltrid

gform_pre_renderFilter võimaldab meil vormi vahetult enne selle kuvamist muuta. Kuid siin muudatusi tehes peaksime veenduma, et meie muudatusi rakendatakse kõigil juhtudel; seega peame haakima ka gform_admin_pre_render(vastav pre_render filter, kuid mõjutab administraatori/vormi redigeerimist) gform_pre_validation(vastutab vormi kinnitamise eest enne esitamist) ja gform_pre_submission_filter(filter pärast kinnitamist, kuid enne sisestuse salvestamist). Ärge muretsege, me kasutame kõigi nende filtrite jaoks ühte ja sama funktsiooni.

Saate neid otse filtreerida või lisada filtri nime järele allkriipsu ja vormi ID, et filtreerida ainult konkreetset vormi. Näiteks gform_pre_render_1käivitataks ainult vormil, mille vormi ID on 1.

Kõigi nende filtrite argumendina saate vormiobjekti, millest saate vormi ID (alternatiivne meetod vormi ID lisamiseks filtrisse) ja kõik selle väljad. Vormiväljad on objektide massiiv, Fieldkuid me peame muretsema ainult õige välja choicesatribuudi asendamise pärast.

Valikute muutmine

See, milliste andmetega soovite valikuid asendada, on täielikult teie enda otsustada, kuid välja choicesatribuut vajab massiivi, mis sisaldab elemente "tekst" ja "väärtus". Näiteks ['text' => 'Hello World!', 'value' => '1', 'text' => 'Second choice', 'value' => '2'].

Ülaltoodud kood filtreerib ainult vormi ID-d 1. See algab vormi väljade silmuse läbimisega. Oluline on märkida "&" enne tsükli elementi, mis seda viitena edastab. See tähendab, et kui teeme muudatusi $field, rakendatakse see ja salvestatakse otse $form['fields'].

Teine samm on sihtida välja, millel on parameetri nimi, mida tahame sihtida. Iga välja jaoks on see inputNameomadus. Väljade sihtimiseks saate kasutada muid viise, nt selle ID (id) või CSS-klassi (cssClass). Kui oleme oma välja leidnud, peame genereerima valikute jaoks asendusmassiivi ja määrama $field->choicesselle. Ülaltoodud näites esitan päringu kõikidelt lehtedelt ja sirvin neid läbi, et luua õige vormindatud massiiv.

Ärge unustage $formlõpus tagastada, kuna see on filter.

Tasub mainida, et see filter kehtib ka redigeerimisvormi puhul (sest me filtreerime gform_admin_pre_render). Kuid pidage meeles, et te ei saa enam vormi redigeerimisel valikuid manipuleerida – see lihtsalt ei salvesta teie muudatusi, kuna see kood alistab selle alati.

Märkeruutude täitmine

Ma mainin seda uuesti; Kui olete lihtsalt huvitatud märkeruudu eelvalimisest, järgige ülaltoodud juhendit ühe väärtuse välja täitmiseks. Mis puudutab kõigi märkeruutude valikute asendamist, on protsess väga sarnane ülaltoodud valiku- või raadionuppude sisestamisega, kuid mõningate väikeste erinevustega. Soovitan kõigepealt üle vaadata ülaltoodud selgitused valiku- ja raadionuppude kohta.

Kasutate samu filtreid ja käivitusprotsess on sama; sirvite läbi vormi väljad ja leiate soovitud välja. Märkeruutudega tuleb aga väljaobjektis asendada kaks omadust; choicesja inputs. Atribuut choiceseeldab sama massiivi nagu valiku- või raadionuppude puhul.

Atribuut inputootab massiivi elementidega " label" ja " id". See labelon iseenesestmõistetav ja peaks olema identne textvalikute massiiviga. Element idpeab järgima Gravity Forms ID reegleid; välja ID, punkti ja valiku ID ühendamine, alustades 1-st (nt kui välja ID on 2 ja valiku ID on 3, on õige id" 2.3").

Kuna valiku ID peab algama 1-st, alustame loenduri muutujaga enne tsüklit ja lisame 1 iga tsükli elemendi jaoks ning kasutame seda koos välja ID ja punktiga nagu massiivi idpuhul .inputs

Kui meil on kaks massiivi, määrame need väljadele choicesja inputsomadustele ning tagastame muudetud vormi.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem