{"id":233987,"date":"2023-02-27T15:08:00","date_gmt":"2023-02-27T12:08:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233987"},"modified":"2022-11-11T13:35:55","modified_gmt":"2022-11-11T10:35:55","slug":"gravitatsioonivormid-paerast-esitamist-lisage-kohandatud-sisendid-vaeljadele-ja-kaugpostitustele","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/gravitatsioonivormid-paerast-esitamist-lisage-kohandatud-sisendid-vaeljadele-ja-kaugpostitustele\/","title":{"rendered":"Gravitatsioonivormid: p\u00e4rast esitamist lisage kohandatud sisendid v\u00e4ljadele ja kaugpostitustele"},"content":{"rendered":"\n<p>Selles Gravity Forms&#8217;i \u00f5petuses \u00f5pime kolme asja:<\/p>\n<ul>\n<li>Kuidas lisada kohandatud sisendit mis tahes valitud v\u00e4ljat\u00fc\u00fcbile<\/li>\n<li>Kuidas lisada vormile kohandatud s\u00e4tteid<\/li>\n<li>Ja l\u00f5puks, kuidas kaugpostitada konkreetsete v\u00e4ljade jaoks esitatud v\u00e4\u00e4rtusi p\u00e4rast iga vormi esitamist.<\/li>\n<\/ul>\n<p>See postitus eeldab, et soovite lisada Gravity Formsile funktsioone, et saata p\u00e4rast iga vormi esitamist kaugpostituse p\u00e4ring. Kaugpostituse sees saadate vormilt v\u00e4\u00e4rtused, mida saab vormiredaktori lisaseadetega kohandada. Levinud n\u00e4ited selle kohta, kus see oleks kasulik, on n\u00e4iteks nime ja e-posti aadressi esitamine Mailchimpi uudiskirjade loendisse v\u00f5i mis tahes muu kolmanda osapoole integreerimine.<\/p>\n<p>Praktikas saab seda lahendada nii, et esmalt lisatakse igale v\u00e4ljale kohandatud s\u00e4tted, kuhu redaktor saab sisestada v\u00f5tmenimed. V\u00f5ti ja nende esitatud v\u00e4\u00e4rtused saadetakse p\u00e4rast iga vormi esitamist kolmanda osapoole URL-ile. Lisame ka s\u00e4tte, et saaksite iga vormi puhul seda t\u00fc\u00fcpi kolmanda osapoole esitamise aktiveerida.<\/p>\n<p>Kogu alloleva koodi saab paigutada teie teema <code>functions.php<\/code>v\u00f5i pistikprogrammi koodi.<\/p>\n<h2>Kohandatud sisendi lisamine v\u00e4ljadele<\/h2>\n<p>Esimene samm on sisendi lisamine v\u00e4ljaredaktoris v\u00e4ljadele, kuhu saate sisestada selle v\u00e4\u00e4rtuse v\u00f5tmenime. Kaasame ja esitame ainult v\u00e4\u00e4rtused, kus see sisend on t\u00e4idetud.<\/p>\n<h3>Sisestuskoha valimine<\/h3>\n<p>Gravity Forms pakub konkse, mida saame kasutada kohandatud asjade lisamiseks v\u00e4ljaredaktorisse. Konksu nimi s\u00f5ltub sellest, millisel vahekaardil soovite oma v\u00e4lja kuvada.<\/p>\n<ul>\n<li>Vahekaart &quot;\u00dcldine&quot;:<code>gform_field_standard_settings<\/code><\/li>\n<li>Vahekaart \u201eV\u00e4limus&quot;:<code>gform_field_appearance_settings<\/code><\/li>\n<li>Vahekaart &quot;T\u00e4psem&quot;:<code>gform_field_advanced_settings<\/code><\/li>\n<\/ul>\n<p>Igas konksus on kaks parameetrit; positsioon ja vormi ID. Igal sisseehitatud Gravity Forms seadistusel on fikseeritud positsiooninumber. Saate seda arvu v\u00f5rrelda, et otsustada t\u00e4pselt, kus soovite oma kohandatud HTML-i v\u00f5i sisendit asuda. K\u00f5igi seadete ja nende asukoha loetlemine oleks selles postituses liiga pikk. Kuid Gravity Forms lisab oma s\u00e4tted 5 kaupa. N\u00e4iteks vahekaardil \u00dcldine on &quot;V\u00e4lja silt&quot; positsioonil 0 ja &quot;Kirjeldus&quot; on positsioonil 10. Kui asetate oma HTML-i positsioonile 10, kuvatakse see p\u00e4rast kirjeldust. \u00c4rge v\u00f5rrelge positsiooni \u00fchegi arvuga, mis ei ole 5 kordaja.<\/p>\n<p>Lisan oma kohandatud v\u00e4lja vahekaardile T\u00e4psemalt positsioonile 50, mis on kohe p\u00e4rast sisestust \u201eAdmin Field Label&#8221;.<\/p>\n<pre><code>add_action('gform_field_advanced_settings', function($position, $form_id) {\n    if ($position == 50) {  \/\/ right after Admin Field Label\n        ?&gt;\n        &lt;li class=\"thirdparty_input_setting field_setting\"&gt;\n            &lt;label for=\"field_admin_label\"&gt;\n                &lt;?php _e('Third party input field', 'txtdomain'); ?&gt;\n            &lt;\/label&gt;\n            &lt;input type=\"text\" id=\"field_thirdparty_input\" onchange=\"SetFieldProperty('thirdPartyInput', this.value);\" class=\"fieldwidth-3\" \/&gt;\n        &lt;\/li&gt;\n        &lt;?php\n    }   \n}, 10, 2);<\/code><\/pre>\n<p>Suurem osa \u00fclaltoodud koodist on iseenesestm\u00f5istetav. Lisan HTML-i samas vormingus, nagu Gravity Forms eeldaks, et seade on sees. Kuid sisendis endas peate esitama <code>onchange<\/code>Javascripti funktsiooni. Me lihtsalt k\u00e4sime tal k\u00e4ivitada GravityFormsi funktsioon, et salvestada k\u00f5ik meie sisendis tehtud muudatused. Oluline on meeles pidada atribuuti, mille me esitame <code>SetFieldProperty<\/code>, <code>thirdPartyInput<\/code>, selles v\u00f5tmes, kus meie kohandatud sisend salvestatakse esitamisel Gravity Formsi v\u00e4ljade massiivi.<\/p>\n<h3>T\u00f6\u00f6riistavihje lisamine (valikuline)<\/h3>\n<p>Saate oma sisendiga teha veel \u00fche valikulise toimingu; lisage kohtspikker. Kui soovite seda, lisage see funktsioonikutse \u00e4sja lisatud koodi sisse ja sisestage stringina (ainulaadne) v\u00f5ti:<\/p>\n<pre><code>            ...\n            &lt;label for=\"field_admin_label\"&gt;\n                &lt;?php _e('Third party input field', 'txtdomain'); ?&gt;\n                &lt;?php gform_tooltip('form_field_thirdparty_input'); ?&gt;\n            &lt;\/label&gt;\n            ...<\/code><\/pre>\n<p>Seej\u00e4rel lisage veel \u00fcks funktsioon, mis haakub filtri k\u00fclge <code>gform_tooltips<\/code>, ja lisage t\u00f6\u00f6riistaspikri sisu vastavale klahvile, n\u00e4iteks j\u00e4rgmiselt:<\/p>\n<pre><code>add_filter('gform_tooltips', function($tooltips) {\n    $tooltips['form_field_thirdparty_input'] = __('&lt;h6&gt;Third party input&lt;\/h6&gt;If you want to submit this field to third party, type in key name here. Remember to activate form submission to third party in form settings.', 'txtdomain');\n    return $tooltips;\n});<\/code><\/pre>\n<p>T\u00f6\u00f6riistaspikri lisamine on t\u00e4iesti vabatahtlik, kuid see on kena viis saidiomanikele selgitada, mida see sisend teeb. Muutke sisu nii, et see sobiks teie funktsioonidega.<\/p>\n<h3>Kohandatud sisendi lisamise v\u00e4ljat\u00fc\u00fcpide m\u00e4\u00e4ramine<\/h3>\n<p>V\u00f5ite m\u00e4rgata, et teie v\u00e4lja ei kuvata \u00fchelgi vahekaardil T\u00e4psemalt. Selle p\u00f5hjuseks on asjaolu, et me peame Gravity Formsile \u00fctlema, millistel v\u00e4ljat\u00fc\u00fcpidel me seda sisendit soovime kuvada. Vaikimisi seda ei kuvata.<\/p>\n<p>See, kuidas me seda teeme, on tegelikult Javascript. GravityFormsil on Javascript, mis peidab automaatselt k\u00f5ik s\u00e4tted ja valib seej\u00e4rel konkreetsete kuvamise vastavalt v\u00e4ljat\u00fc\u00fcbile. Nii et meie v\u00e4li on olemas, kuid Gravity Forms on selle lihtsalt \u00e4ra peitnud.<\/p>\n<p>Haakeme kokku <code>gform_editor_js<\/code>ja peame tegema kahte asja. Esiteks otsustame, millistel v\u00e4ljat\u00fc\u00fcpidel sisend ilmub. Ja teiseks veendume, et sisend t\u00e4idetakse laadimisel selle v\u00e4\u00e4rtusega.<\/p>\n<p>Lisan sisendi v\u00e4ljat\u00fc\u00fcpidele <code>text<\/code>, <code>textarea<\/code>, <code>email<\/code>, <code>phone<\/code>ja <code>number<\/code>. \u00c4rge unustage kaaluda, kuidas kavatsete esitatud v\u00e4ljade v\u00e4\u00e4rtusi k\u00e4sitleda. Kui otsustate selle v\u00e4lja lubada n\u00e4iteks m\u00e4rkeruudu v\u00e4ljat\u00fc\u00fcbi puhul, peate suutma esitatud v\u00e4\u00e4rtusi \u00f5igesti s\u00f5eluda ja k\u00e4sitleda.<\/p>\n<pre><code>add_action('gform_editor_js', function() {\n    ?&gt;\n    &lt;script type=\"text\/javascript\"&gt;\n        \/\/ Add our setting to these field types\n        fieldSettings.text += ', .thirdparty_input_setting';\n        fieldSettings.textarea += ', .thirdparty_input_setting';\n        fieldSettings.email += ', .thirdparty_input_setting';\n        fieldSettings.phone += ', .thirdparty_input_setting';\n        fieldSettings.number += ', .thirdparty_input_setting';\n\u00a0\n        \/\/ Make sure our field gets populated with its saved value\n        jQuery(document).on(\"gform_load_field_settings\", function(event, field, form) {\n                jQuery(\"#field_thirdparty_input\").val(field[\"thirdPartyInput\"]);\n            });\n    &lt;\/script&gt;\n    &lt;?php\n});<\/code><\/pre>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151326-61e4ca26275b1.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-151326-61e4ca26275b1.png\" alt=\"Gravitatsioonivormid: p\u00e4rast esitamist lisage kohandatud sisendid v\u00e4ljadele ja kaugpostitustele\" ><\/a><\/p>\n<p>N\u00fc\u00fcd peaksite l\u00f5puks n\u00e4gema oma kohandatud sisendit vahekaardil T\u00e4psemalt, kui v\u00e4li on m\u00f5nda pakutud t\u00fc\u00fcpi. Samuti n\u00e4ete, et see salvestati edukalt ja laaditakse salvestatud v\u00e4\u00e4rtusega. Iga kord, kui vorm edaspidi esitatakse ja see sisend on t\u00e4idetud, sisaldab vormiv\u00e4lja massiiv atribuuti <code>thirdPartyInput<\/code>.<\/p>\n<p>J\u00e4rgmine samm on s\u00e4tte lisamine vormile, et aktiveerida kolmandale osapoolele esitamine. See on valikuline, kuid soovitatav. Soovime v\u00e4ltida tarbetu koodi k\u00e4itamist v\u00f5i millegi kolmandale osapoolele esitamist, kui me seda ei kavatse.<\/p>\n<h2>Kohandatud s\u00e4tte lisamine vormi s\u00e4tetele<\/h2>\n<p>Kohandatud s\u00e4tete lisamine vormi s\u00e4tetele on \u00fcsna lihtne. Peame haakuma filtri k\u00fclge <code>gform_form_settings<\/code>ja lisama oma HTML-i soovitud sisenditega, seej\u00e4rel filtrile <code>gform_pre_form_settings_save<\/code>ja veenduma, et meie kohandatud sisend(id) salvestatakse vormiobjektile.<\/p>\n<p>Vormi seadetele kohandatud s\u00e4tte lisamiseks j\u00e4rgmiselt.<\/p>\n<pre><code>add_filter('gform_form_settings', function($settings, $form) {\n    $settings[__('3rd party Settings', 'txtdomain')]['submit_3rd_party'] = '\n        &lt;tr&gt;\n            &lt;th&gt;'.__('Submit form to 3rd party', 'txtdomain').'&lt;\/th&gt;\n            &lt;td&gt;\n                &lt;input type=\"checkbox\" value=\"1\" id=\"gform_submit_3rd_party\" name=\"submit_3rd_party\" '.checked(rgar($form, 'submit_3rd_party'), '1', false).' \/&gt;\n                &lt;label for=\"gform_submit_3rd_party\"&gt;'.__('Activate submission', 'txtdomain').'&lt;\/label&gt;\n            &lt;\/td&gt;\n        &lt;\/tr&gt;\n    ';\n    return $settings;\n}, 10, 2);<\/code><\/pre>\n<p>Filter gform_form_settings eeldab, et v\u00f5tmed on jaotisesilt ja seej\u00e4rel iga s\u00e4tte massiiv. V\u00f5tmega lisame ainult \u00fche <code>submit_3rd_party<\/code>. M\u00e4rkeruudu sisestuses kasutame Gravity Formsi meetodit <code>rgar()<\/code>, et eraldada massiivist (vormist) antud v\u00f5tme v\u00e4\u00e4rtused, et tagada meie v\u00e4lja salvestatud v\u00e4\u00e4rtuse toomine. Muutke HTML-i vastavalt oma vajadustele.<\/p>\n<p>V\u00e4li kuvatakse n\u00fc\u00fcd vormi seadete allosas. Kuid see ei salvesta teie muudatusi veel, seega peame selle parandama.<\/p>\n<pre><code>add_filter('gform_pre_form_settings_save', function($form) {\n    $form['submit_3rd_party'] = rgpost('submit_3rd_party');\n    return $form;\n}, 10, 2);<\/code><\/pre>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-151326-61e4ca26ef08c.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-151326-61e4ca26ef08c.png\" alt=\"Gravitatsioonivormid: p\u00e4rast esitamist lisage kohandatud sisendid v\u00e4ljadele ja kaugpostitustele\" ><\/a><\/p>\n<p><code>rgpost()<\/code>See koodil\u00f5ik kasutab esitatud v\u00e4\u00e4rtuste eraldamiseks (alates) teist Gravity Formsi abimeetodit <code>$_POST<\/code>ja salvestab need meie soovitud v\u00f5tmega antud vormimassiivi. Kui lisate rohkem s\u00e4tteid, peate seda iga seade puhul kordama.<\/p>\n<p>Ja see on k\u00f5ik, mida vajame kohandatud vormiseadete lisamiseks! Kui teil on juurdep\u00e4\u00e4s vormiobjektile, saate kontrollida v\u00e4\u00e4rtust <code>$form['submit_3rd_party']<\/code>.<\/p>\n<h2>Saatke esitatud v\u00e4\u00e4rtused kolmandale osapoolele<\/h2>\n<p>Hea konks kohandatud toimingute jaoks, nagu p\u00e4ringu sooritamine ja esitatud vormilt andmete saatmine, on <code>gform_after_submission<\/code>. Sel hetkel on kogu valideerimine l\u00e4bitud ja kirje (vastuse) objekt on loodud. Selle konksuga saame ligip\u00e4\u00e4su sisestusobjektile ja vormiobjektile.<\/p>\n<p>See, mida te selles toimingus teete, on teie otsustada ning kuidas peate andmed v\u00e4lja v\u00f5tma ja kuidas postitamistaotlust t\u00e4idate. Selle n\u00e4ite puhul teen lihtsa postituse p\u00e4ringu, kasutades WordPressi funktsiooni <code>wp_remote_post()<\/code>ja k\u00f5igi v\u00e4ljade massiivi, mis olid kehas t\u00e4itnud meie kohandatud sisendi.<\/p>\n<p>N\u00e4ete, et ma kontrollin esmalt, kas vormil on edastused aktiveeritud. Kui sellel on kood, liigub see l\u00e4bi k\u00f5igi vormiv\u00e4ljade ja kontrollib, kas iga v\u00e4li on meie kohandatud sisendisse midagi lisanud. Kui sisend pole t\u00f5esti t\u00fchi, kontrollib kood ka seda, kas selle v\u00e4lja jaoks on midagi esitatud. Kui teil on \u00f5igus t\u00fchjade v\u00e4\u00e4rtuste esitamiseks, saate selle m\u00e4rke eemaldada.<\/p>\n<pre><code>add_action('gform_after_submission', function($entry, $form) {\n    if ($form['submit_3rd_party']) {\n        $fields_to_send = [];\n        foreach ($form['fields'] as $field_key =&gt; $field) {\n            if (isset($field-&gt;thirdPartyInput) &amp;&amp; !empty($field-&gt;thirdPartyInput)) {\n\u00a0\n                if (isset($entry[$field-&gt;id]) &amp;&amp; !empty($entry[$field-&gt;id])) {\n                    $fields_to_send[$field-&gt;thirdPartyInput] = $entry[$field-&gt;id];\n                }\n            }\n        }\n\u00a0\n        \/\/ Don't send request if there are no fields to send\n        if (empty($fields_to_send)) {\n            return;\n        }\n\u00a0\n        $url = 'http:\/\/url.to.3rd.party.com\/';\n        $response = wp_remote_post($url, ['body' =&gt; $fields_to_send]);\n    }\n}, 10, 2);<\/code><\/pre>\n<p>URL-i ja andmete saatmise osa on midagi, mida peate ilmselt ise kohandama. Soovi korral saate vastusega midagi ette v\u00f5tta, n\u00e4iteks saata meili, kui see eba\u00f5nnestus v\u00f5i midagi muud. K\u00f5ik s\u00f5ltub teist, kuidas soovite oma funktsioone hallata.<\/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>Gravity Forms&#8217;i \u00f5petus selle kohta, kuidas lisada mis tahes v\u00e4ljat\u00fc\u00fcbile kohandatud sisendit, lisada kohandatud vormis\u00e4tteid ja esitada vormiv\u00e4\u00e4rtused kaugjuhtimisega kolmandale osapoolele.<\/p>\n","protected":false},"author":1,"featured_media":151327,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1110,842,812,812,842,863,863],"tags":[1165],"class_list":["post-233987","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n-a","category-opetused","category-pistikprogrammid","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233987","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=233987"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233987\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/151327"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}