{"id":233431,"date":"2023-02-13T10:58:00","date_gmt":"2023-02-13T07:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233431"},"modified":"2022-11-10T23:39:26","modified_gmt":"2022-11-10T20:39:26","slug":"taeielik-juhend-kuidas-gravitatsioonivormides-vaelju-duenaamiliselt-taeita","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/taeielik-juhend-kuidas-gravitatsioonivormides-vaelju-duenaamiliselt-taeita\/","title":{"rendered":"T\u00e4ielik juhend: kuidas gravitatsioonivormides v\u00e4lju d\u00fcnaamiliselt t\u00e4ita"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Formsis<\/a> lihtsate v\u00f5i keerukate vormide loomine on lihtne ja kiire. \u00dcks Gravity Formsi pakutavatest funktsioonidest v\u00f5imaldab teil vormil tinglikult eelvalida v\u00f5i eelt\u00e4ita v\u00e4lju. See on kasulik, kui teil on sama vorm iga osakonna mitmel kontakti lehel ja soovite vormil vastava osakonna eelvalida. V\u00f5i manustate toodete v\u00f5i teenuste lehtedele p\u00e4ringuvormi ja soovite iga esildise puhul automaatselt eelt\u00e4ita teavet praeguse toote v\u00f5i teenuse kohta.<\/p>\n<p>V\u00e4lju saab d\u00fcnaamiliselt eelvalida v\u00f5i eelt\u00e4ita mitmel viisil ning v\u00f5imalikke valikuid saab d\u00fcnaamiliselt asendada ka rippmen\u00fc\u00fcs, raadionupu v\u00f5i m\u00e4rkeruutude r\u00fchmas. D\u00fcnaamiliselt t\u00e4idetav v\u00e4li v\u00f5ib olla n\u00e4htav v\u00e4li, mida kasutaja saab redigeerida, v\u00f5i selle saab suunata peidetud v\u00e4ljale, et vormi esildiste lugeja saaks olulist teavet.<\/p>\n<h2>Neli v\u00f5imalust v\u00e4ljade d\u00fcnaamiliseks t\u00e4itmiseks<\/h2>\n<p>Selles juhendis vaatleme nelja v\u00f5imalust v\u00e4ljade d\u00fcnaamiliseks t\u00e4itmiseks Gravity Forms vormil. Neist kolme saate teha ilma \u00fchtegi koodi puudutamata! Kuid kui soovite d\u00fcnaamiliselt muuta v\u00f5imalikke valikuid valitud raadionuppude r\u00fchmas v\u00f5i m\u00e4rkeruutudes, peate kirjutama PHP-koodi. Vaatame l\u00f5pus, kuidas seda teha.<\/p>\n<p>V\u00e4ljasid saate d\u00fcnaamiliselt t\u00e4ita j\u00e4rgmiselt.<\/p>\n<ul>\n<li>Lisateabe lisamine URL-i.<\/li>\n<li>Esitage lisateavet Gravity Forms&#8217;i manustamise l\u00fchikoodile.<\/li>\n<li>Gravity Forms Blocki lisateabe m\u00e4\u00e4ratlemine (kui kasutate WordPressi koos Gutenbergiga).<\/li>\n<li>PHP koodiga filtrite kasutamine.<\/li>\n<\/ul>\n<p>Kuid k\u00f5igepealt peame l\u00e4bima, kuidas aktiveerida v\u00e4lja d\u00fcnaamiline populatsioon.<\/p>\n<h2>V\u00e4lja aktiveerimine d\u00fcnaamilise populatsiooni v\u00f5imaldamiseks<\/h2>\n<p>Esimene samm, olenemata sellest, millist meetodit v\u00e4lja t\u00e4itmiseks kasutate, on selle aktiveerimine v\u00e4ljal endal.<\/p>\n<p>Vormi redigeerimisel laiendage v\u00e4lja ja vahekaardilt &quot;T\u00e4psemalt&quot; leiate m\u00e4rkeruudu &quot;Luba v\u00e4lja d\u00fcnaamiliselt t\u00e4ita&quot;. M\u00e4rkige see v\u00e4lja ja kuvatakse uus tekstisisestus, mis v\u00f5imaldab teil m\u00e4\u00e4rata parameetri nime. Seda saab teha k\u00f5ike, mida soovite, kuid see peaks olema ainulaadne ja ilma t\u00fchikuteta.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e767c316.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e767c316.png\" alt=\"T\u00e4ielik juhend: kuidas gravitatsioonivormides v\u00e4lju d\u00fcnaamiliselt t\u00e4ita\" ><\/a><\/p>\n<p>Salvestage vorm ja see on valmis otsustama, millist meetodit soovite selle t\u00e4itmiseks kasutada.<\/p>\n<h2>T\u00e4idetakse d\u00fcnaamiliselt URL-i parameetritest<\/h2>\n<p>Vormi manustava lehe lingile saate lisada GET-i parameetrid, n\u00e4iteks kui link asub m\u00f5ne muu postituse teksti sees v\u00f5i on kohandatud link WordPressi men\u00fc\u00fcdes.<\/p>\n<p>Lihtsalt lisage p\u00e4ringumuutujad v\u00f5tmev\u00e4\u00e4rtuste paaridesse, parameetri nimi on v\u00f5tmeks ja nende v\u00e4\u00e4rtus olenemata sellest, mida soovite, et nende v\u00e4\u00e4rtus oleks. Kui soovite vormis t\u00e4ita mitu v\u00e4lja, on v\u00f5imalik lisada mitu v\u00f5tmev\u00e4\u00e4rtuste paari, eraldage iga paar lihtsalt t\u00e4hega &quot;&#038;&quot;.<\/p>\n<p>Eeldades, et teie vorm on sellel lehel olemas: &quot; <code>https:\/\/example.com\/contact-me\/<\/code>&quot; ja teie parameetri nimi on <code>awp_populate_me<\/code>, saate v\u00e4lja t\u00e4ita, kasutades seda URL-i: &quot; <code>https:\/\/example.com\/contact-me\/?awp_populate_me=Hello<\/code>&quot;.<\/p>\n<p>Pidage meeles, et URL-id peavad olema korralikult kodeeritud. N\u00e4iteks ei saa te lihtsalt parameetri v\u00e4\u00e4rtusena lisada t\u00fchikuid ega erim\u00e4rke. &quot;Tere maailm!&quot; kui v\u00e4\u00e4rtus oleks &quot; <code>Hello%20world%21<\/code>&quot;. Kui soovite seda teed minna, on URL-ide kodeerimiseks palju veebit\u00f6\u00f6riistu.<\/p>\n<h2>D\u00fcnaamiline asustamine l\u00fchikoodist<\/h2>\n<p>K\u00f5ik vormid sisestatakse l\u00fchikoodi kaudu. Saate d\u00fcnaamiliselt t\u00e4ita v\u00e4lju otse selle l\u00fchikoodi sees. See meetod v\u00f5ib olla kasulik, kui kasutate sama vormi mitmes postituses (nt registreerite osalejaid mitmele erinevale \u00fcritusele v\u00f5i kursusele) ja peate esitama midagi ainulaadset, et teada saada, milliselt s\u00fcndmuselt v\u00f5i kursuselt vorm p\u00e4rineb\u2026\u2026<\/p>\n<p>Tavaliselt annab vormi manustamisel l\u00fchikood, mis n\u00e4eb v\u00e4lja umbes selline:<code>[gravityforms id=\"1\" title=\"Contact us\"]<\/code><\/p>\n<p>Redigeerige l\u00fchikoodi ja lisage v\u00f5tmekomplekt <code>field_values<\/code>stringile, mis sisaldab teie parameetri nime, mis v\u00f5rdub soovitud v\u00e4\u00e4rtusega. N\u00e4iteks parameetri <code>awp_populate_me<\/code>&quot;Tere maailm&quot; seadmine toimub j\u00e4rgmiselt:<\/p>\n<pre><code>[gravityforms id=\"1\" title=\"Contact us\" field_values=\"awp_populate_me=Hello World\"]<\/code><\/pre>\n<p>Kui teil on vaja t\u00e4ita mitu v\u00e4lja, lisage nende vahele &quot;&#038;&quot;, n\u00e4iteks:<\/p>\n<pre><code>[gravityforms id=\"1\" title=\"Contact us\" field_values=\"awp_populate_me=Hello World&amp;awp_another_field=Hello to you too\"]<\/code><\/pre>\n<h2>Asub d\u00fcnaamiliselt Gutenbergi Blockist<\/h2>\n<p>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\u00e4ljade t\u00e4itmiseks.<\/p>\n<p>Lisage Gutenbergi plokk &quot;Vormid&quot; ja valige oma vorm. Plokk peaks muutuma vormi eelvaateks. Parempoolsel k\u00fcljepaneelil laiendage valikut T\u00e4psemalt ja leiate tekstiala nimega \u201eV\u00e4lja v\u00e4\u00e4rtused&quot;. Sellele tekstialale saate sisestada oma parameetrite nimed ja v\u00e4\u00e4rtused, t\u00e4pselt nagu sisestaksite l\u00fchikoodi. Nt &quot; <code>awp_populate_me=Hello World!<\/code>&quot;<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e777b45f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153486-61e50e777b45f.png\" alt=\"T\u00e4ielik juhend: kuidas gravitatsioonivormides v\u00e4lju d\u00fcnaamiliselt t\u00e4ita\" ><\/a><\/p>\n<h2>T\u00e4iendatakse d\u00fcnaamiliselt koodist<\/h2>\n<p>Ja l\u00f5puks, kui soovite oma v\u00e4ljad t\u00e4ita PHP-koodiga, on selleks filtrid. Saate selle koodi lisada oma teemasse <code>functions.php<\/code>.<\/p>\n<p>Kuidas seda kodeerida, s\u00f5ltub sellest, mis t\u00fc\u00fcpi v\u00e4lja see on; Nagu ilmselt v\u00f5ite arvata, tuleb t\u00e4itmist (asendades k\u00f5ik valikud) valikus, m\u00e4rkeruutusid v\u00f5i raadior\u00fchma k\u00e4sitleda teisiti kui \u00fche tekstiv\u00e4lja t\u00e4itmist.<\/p>\n<h3>\u00dche v\u00e4\u00e4rtuse v\u00e4lja t\u00e4itmine<\/h3>\n<p>\u00dche v\u00e4\u00e4rtusega v\u00e4lja (see kehtib tekstiv\u00e4lja, tekstiala, meiliv\u00e4lja, telefoniv\u00e4lja jms kohta) t\u00e4itmist saab h\u00f5lpsasti teha filtreerimise abil <code>gform_field_value_&lt;parameter name&gt;<\/code>. Meie n\u00e4ites:<\/p>\n<pre><code>add_filter('gform_field_value_awp_populate_me', function($value) {\n    return 'Hello world!';\n});<\/code><\/pre>\n<p>Seda filtrit saate kasutada ka mitme v\u00e4\u00e4rtusega v\u00e4ljal suvandi eelvalimiseks, nt valik (rippmen\u00fc\u00fc), raadionupud v\u00f5i m\u00e4rkeruudud.<\/p>\n<h3>Valiku- v\u00f5i raadionuppude sisestamine<\/h3>\n<p>Kui olete lihtsalt huvitatud valiku eelvalikust, j\u00e4rgige \u00fclaltoodud juhendit \u00fche v\u00e4\u00e4rtuse v\u00e4lja t\u00e4itmiseks. See kood on m\u00f5eldud v\u00e4ljal tehtavate v\u00f5imalike valikute kohandamiseks v\u00f5i asendamiseks.<\/p>\n<h4>Gravity Formsi vormide renderdusfiltrid<\/h4>\n<p><code>gform_pre_render<\/code>Filter v\u00f5imaldab meil vormi vahetult enne selle kuvamist muuta. Kuid siin muudatusi tehes peaksime veenduma, et meie muudatusi rakendatakse k\u00f5igil juhtudel; seega peame haakima ka <code>gform_admin_pre_render<\/code>(vastav pre_render filter, kuid m\u00f5jutab administraatori\/vormi redigeerimist) <code>gform_pre_validation<\/code>(vastutab vormi kinnitamise eest enne esitamist) ja <code>gform_pre_submission_filter<\/code>(filter p\u00e4rast kinnitamist, kuid enne sisestuse salvestamist). \u00c4rge muretsege, me kasutame k\u00f5igi nende filtrite jaoks \u00fchte ja sama funktsiooni.<\/p>\n<p>Saate neid otse filtreerida v\u00f5i lisada filtri nime j\u00e4rele allkriipsu ja vormi ID, et filtreerida ainult konkreetset vormi. N\u00e4iteks <code>gform_pre_render_1<\/code>k\u00e4ivitataks ainult vormil, mille vormi ID on 1.<\/p>\n<p>K\u00f5igi nende filtrite argumendina saate vormiobjekti, millest saate vormi ID (alternatiivne meetod vormi ID lisamiseks filtrisse) ja k\u00f5ik selle v\u00e4ljad. Vormiv\u00e4ljad on objektide massiiv, <code>Field<\/code>kuid me peame muretsema ainult \u00f5ige v\u00e4lja <code>choices<\/code>atribuudi asendamise p\u00e4rast.<\/p>\n<h4>Valikute muutmine<\/h4>\n<p>See, milliste andmetega soovite valikuid asendada, on t\u00e4ielikult teie enda otsustada, kuid v\u00e4lja <code>choices<\/code>atribuut vajab massiivi, mis sisaldab elemente &quot;tekst&quot; ja &quot;v\u00e4\u00e4rtus&quot;. N\u00e4iteks <code>['text' =&gt; 'Hello World!', 'value' =&gt; '1', 'text' =&gt; 'Second choice', 'value' =&gt; '2']<\/code>.<\/p>\n<pre><code>add_filter('gform_pre_render_1', 'awp_populate_choices');\nadd_filter('gform_pre_validation_1', 'awp_populate_choices');\nadd_filter('gform_pre_submission_filter_1', 'awp_populate_choices');\nadd_filter('gform_admin_pre_render_1', 'awp_populate_choices');\nfunction awp_populate_choices($form) {\n    foreach ($form['fields'] as &amp;$field) {\n        if ($field-&gt;inputName == 'awp_populate_me') {\n\u00a0\n            \/\/ Generate your data here. Below is just an example\n            $pages = get_posts('numberposts=-1&amp;post_status=publish&amp;post_type=page');\n\u00a0\n            \/\/ Generate a nice array that Gravity Forms can understand\n            $choices = [];\n            foreach ($pages as $page) {\n                $choices[] = ['text' =&gt; $page-&gt;post_title, 'value' =&gt; $page-&gt;ID];\n            }\n\u00a0\n            \/\/ Set choices to field\n            $field-&gt;choices = $choices;\n        }\n    }\n    return $form;\n}<\/code><\/pre>\n<p>\u00dclaltoodud kood filtreerib ainult vormi ID-d 1. See algab vormi v\u00e4ljade silmuse l\u00e4bimisega. Oluline on m\u00e4rkida &quot;&#038;&quot; enne ts\u00fckli elementi, mis seda viitena edastab. See t\u00e4hendab, et kui teeme muudatusi <code>$field<\/code>, rakendatakse see ja salvestatakse otse <code>$form['fields']<\/code>.<\/p>\n<p>Teine samm on sihtida v\u00e4lja, millel on parameetri nimi, mida tahame sihtida. Iga v\u00e4lja jaoks on see <code>inputName<\/code>omadus. V\u00e4ljade sihtimiseks saate kasutada muid viise, nt selle ID (<code>id<\/code>) v\u00f5i CSS-klassi (<code>cssClass<\/code>). Kui oleme oma v\u00e4lja leidnud, peame genereerima valikute jaoks asendusmassiivi ja m\u00e4\u00e4rama <code>$field-&gt;choices<\/code>selle. \u00dclaltoodud n\u00e4ites esitan p\u00e4ringu k\u00f5ikidelt lehtedelt ja sirvin neid l\u00e4bi, et luua \u00f5ige vormindatud massiiv.<\/p>\n<p>\u00c4rge unustage <code>$form<\/code>l\u00f5pus tagastada, kuna see on filter.<\/p>\n<p>Tasub mainida, et see filter kehtib ka redigeerimisvormi puhul (sest me filtreerime <code>gform_admin_pre_render<\/code>). Kuid pidage meeles, et te ei saa enam vormi redigeerimisel valikuid manipuleerida \u2013 see lihtsalt ei salvesta teie muudatusi, kuna see kood alistab selle alati.<\/p>\n<h3>M\u00e4rkeruutude t\u00e4itmine<\/h3>\n<p>Ma mainin seda uuesti; Kui olete lihtsalt huvitatud m\u00e4rkeruudu eelvalimisest, j\u00e4rgige \u00fclaltoodud juhendit \u00fche v\u00e4\u00e4rtuse v\u00e4lja t\u00e4itmiseks. Mis puudutab k\u00f5igi m\u00e4rkeruutude valikute asendamist, on protsess v\u00e4ga sarnane \u00fclaltoodud valiku- v\u00f5i raadionuppude sisestamisega, kuid m\u00f5ningate v\u00e4ikeste erinevustega. Soovitan k\u00f5igepealt \u00fcle vaadata \u00fclaltoodud selgitused valiku- ja raadionuppude kohta.<\/p>\n<p>Kasutate samu filtreid ja k\u00e4ivitusprotsess on sama; sirvite l\u00e4bi vormi v\u00e4ljad ja leiate soovitud v\u00e4lja. M\u00e4rkeruutudega tuleb aga v\u00e4ljaobjektis asendada kaks omadust; <code>choices<\/code>ja <code>inputs<\/code>. Atribuut <code>choices<\/code>eeldab sama massiivi nagu valiku- v\u00f5i raadionuppude puhul.<\/p>\n<p>Atribuut <code>input<\/code>ootab massiivi elementidega &quot; <code>label<\/code>&quot; ja &quot; <code>id<\/code>&quot;. See <code>label<\/code>on iseenesestm\u00f5istetav ja peaks olema identne <code>text<\/code>valikute massiiviga. Element <code>id<\/code>peab j\u00e4rgima Gravity Forms ID reegleid; v\u00e4lja ID, punkti ja valiku ID \u00fchendamine, alustades 1-st (nt kui v\u00e4lja ID on 2 ja valiku ID on 3, on \u00f5ige <code>id<\/code>&quot; <code>2.3<\/code>&quot;).<\/p>\n<pre><code>add_filter('gform_pre_render_1', 'awp_populate_choices');\nadd_filter('gform_pre_validation_1', 'awp_populate_choices');\nadd_filter('gform_pre_submission_filter_1', 'awp_populate_choices');\nadd_filter('gform_admin_pre_render_1', 'awp_populate_choices');\nfunction awp_populate_choices($form) {\n    foreach ($form['fields'] as &amp;$field) {\n        if ($field-&gt;inputName == 'awp_populate_me') {\n\u00a0\n            \/\/ Generate your data here. Below is just an example\n            $pages = get_posts('numberposts=-1&amp;post_status=publish&amp;post_type=page');\n\u00a0\n            \/\/ Generate nice arrays that Gravity Forms can understand\n            $choices = [];\n            $inputs = [];\n            $input_id = 1;\n            foreach ($pages as $page) {\n                $choices[] = ['text' =&gt; $page-&gt;post_title, 'value' =&gt; $page-&gt;ID];\n                $inputs[] = ['label' =&gt; $page-&gt;post_title, 'id' =&gt; $field-&gt;id. '.'. $input_id];\n                $input_id++;\n            }\n\u00a0\n            \/\/ Set choices to field\n            $field-&gt;choices = $choices;\n            $field-&gt;inputs = $inputs;\n        }\n    }\n    return $form;\n}<\/code><\/pre>\n<p>Kuna valiku ID peab algama 1-st, alustame loenduri muutujaga enne ts\u00fcklit ja lisame 1 iga ts\u00fckli elemendi jaoks ning kasutame seda koos v\u00e4lja ID ja punktiga nagu massiivi <code>id<\/code>puhul .<code>inputs<\/code><\/p>\n<p>Kui meil on kaks massiivi, m\u00e4\u00e4rame need v\u00e4ljadele <code>choices<\/code>ja <code>inputs<\/code>omadustele ning tagastame muudetud vormi.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ielik juhend selle kohta, kuidas Gravity Forms vormil v\u00e4lju eelvalida v\u00f5i eelt\u00e4ita ning rippmen\u00fc\u00fcs, raadionupu v\u00f5i m\u00e4rkeruutude valikuid asendada.<\/p>\n","protected":false},"author":1,"featured_media":153487,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,718,833,894,1110,842,802,802,812,812,833,842,863,863],"tags":[1165],"class_list":{"0":"post-233431","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-arendaja","8":"category-kood","10":"category-juhend-algajatele","12":"category-n-a","13":"category-opetused","14":"category-php-4","16":"category-pistikprogrammid","20":"category-wordpress-4","22":"tag-affiai-et"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233431"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/153487"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}