{"id":233650,"date":"2023-02-18T20:15:00","date_gmt":"2023-02-18T17:15:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233650"},"modified":"2022-11-11T00:50:33","modified_gmt":"2022-11-10T21:50:33","slug":"codifica-per-forme-di-gravita-unintroduzione","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/codifica-per-forme-di-gravita-unintroduzione\/","title":{"rendered":"Codifica per forme di gravit\u00e0: un&#8217;introduzione"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> \u00e8 forse il plugin per la creazione di moduli pi\u00f9 noto e migliore per WordPress. Non solo \u00e8 facile da usare e ha molti componenti aggiuntivi per implementare pagamenti o newsletter nei tuoi moduli. Ma \u00e8 anche molto flessibile e intuitivo per gli sviluppatori. Personalmente uso e sviluppo con Gravity Forms da almeno 5 anni e non ho mai avuto una funzionalit\u00e0 che non fosse possibile o davvero difficile da sviluppare con Gravity Forms.<\/p>\n<p>Tieni presente che Gravity Forms non \u00e8 gratuito. Devi acquistare una licenza. Offrono diversi tipi con prezzi diversi per ottenerlo e usarlo. Dopo aver acquistato una licenza, hai anche accesso a una selezione dei loro componenti aggiuntivi, a seconda della licenza acquistata.<\/p>\n<h2>Gravity Forms per noi sviluppatori<\/h2>\n<p>Gravity Forms offre molti filtri e hook, ma non ci sono modelli che puoi sovrascrivere. Gli hook offrono molta flessibilit\u00e0 agli sviluppatori per estendere e modificare il comportamento di Gravity Forms. Dai un&#8217;occhiata alle <a href=\"https:\/\/docs.gravityforms.com\/category\/developers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pagine di documentazione degli sviluppatori di Gravity Forms<\/a>. La maggior parte, se non tutte, le personalizzazioni verranno eseguite su alcuni oggetti di Gravity Forms; direttamente o tramite la <code>GFAPI<\/code>classe Gravity Forms API (). Puoi anche interagire con Gravity Forms utilizzando l&#8217;API REST (che estende <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">l&#8217;API REST di WordPress<\/a> ).<\/p>\n<p>Esempi di possibilit\u00e0 per gli sviluppatori sono la modifica degli output dei campi, la modifica dei valori dei campi prima che vengano salvati come lead e la regolazione programmatica delle notifiche e-mail. Altri esempi includono l&#8217;aggiunta di impostazioni di moduli personalizzati, la creazione di nuovi tipi di campo e l&#8217;inserimento di campi o valori di campo personalizzati in moduli esistenti.<\/p>\n<p>Gravity Forms ha un framework &quot;Componenti aggiuntivi&quot; che ha consentito ad altri sviluppatori di creare componenti aggiuntivi per Gravity Forms propri. E ne sono stati realizzati parecchi. Esempi di componenti aggiuntivi sono l&#8217;iscrizione a MailChimp, i gateway di pagamento con Stripe, Hubspot integrazione, sondaggi, quiz, integrazione con Zapier e Dropbox. Quali componenti aggiuntivi sono disponibili dipendono dalla tua licenza. Dai un&#8217;occhiata a una <a href=\"https:\/\/www.gravityforms.com\/add-ons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">panoramica qui<\/a>.<\/p>\n<h2>Rendering di un modulo<\/h2>\n<p>L&#8217;output di un modulo viene eseguito utilizzando codici brevi, ad esempio:<\/p>\n<pre><code>[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]<\/code><\/pre>\n<p>Non preoccuparti, Gravity Forms aggiunger\u00e0 pulsanti e finestre di dialogo per incorporare moduli di facile utilizzo nei tuoi post. A te o agli editor di contenuti non sar\u00e0 richiesto di digitare manualmente gli shortcode.<\/p>\n<p>Ma se tu come sviluppatore hai mai bisogno di incorporare un modulo in modo programmatico all&#8217;interno di un modello, tutto ci\u00f2 che devi sapere \u00e8 l&#8217;ID del modulo e quindi semplicemente fare eco allo shortcode. Quando emettiamo uno shortcode in PHP, dobbiamo racchiuderlo all&#8217;interno in <code>do_shortcode()<\/code>modo che WordPress converta correttamente lo shortcode. Gravity Forms gestir\u00e0 l&#8217;aggiunta di tutti gli script e gli stili necessari per te anche quando esegui il rendering di un modulo con PHP.<\/p>\n<pre><code>echo do_shortcode('[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]');<\/code><\/pre>\n<h2>Recupero delle informazioni del modulo<\/h2>\n<p>Sono disponibili semplici funzioni API per recuperare informazioni, ad esempio ottenere tutti i moduli o un oggetto modulo specifico. Gli oggetti vengono popolati con tutte le impostazioni inclusi tutti i campi del modulo e puoi anche ottenere tutte le voci del modulo (risposte del modulo). Supponiamo di voler generare un <code>&lt;select&gt;<\/code>modulo con tutti i moduli pubblicati offrendo all&#8217;utente di selezionare tra i moduli pubblicati:<\/p>\n<pre><code>\/\/ ...\n$all_forms = GFAPI::get_forms();\nif (!empty($all_forms)) {\n    $select = '&lt;select&gt;';\n    foreach ($all_forms as $form) {\n        $select .= '&lt;option value=\"'. $form['id']. '\"&gt;'. $form['title']. '&lt;\/option&gt;';\n    }\n    $select .= '&lt;\/select&gt;';\n}\necho $select;\n\/\/ ...<\/code><\/pre>\n<p>Per seguire buoni standard di codifica, soprattutto considerando che Gravity Forms \u00e8 un plugin che pu\u00f2 essere disattivato o semplicemente non esiste, controlla sempre se esiste una delle classi di Gravity Forms prima di usarle! Prima del codice sopra vorrei aggiungere:<\/p>\n<pre><code>if (!class_exists('GFAPI')) {\n    return;\n}\n\/\/ Do stuff with GFAPI class<\/code><\/pre>\n<p>Per recuperare l&#8217;oggetto di un modulo specifico, tutto ci\u00f2 che serve \u00e8 l&#8217;ID modulo (1 nel caso seguente):<\/p>\n<pre><code>$form = GFAPI::get_form(1);<\/code><\/pre>\n<p>Puoi persino manipolare il modulo tramite l&#8217;oggetto e quindi aggiornarlo, ad esempio cambiando il titolo del modulo:<\/p>\n<pre><code>$form = GFAPI::get_form(1);\n$form['title'] = __('New Form Title', 'txtdomain');\nGFAPI::update_form($form);<\/code><\/pre>\n<h2>Recupero dei lead di un modulo (risposte)<\/h2>\n<p>Il recupero delle voci di un modulo (risposte del modulo) per l&#8217;ID modulo 1 \u00e8 semplice come:<\/p>\n<pre><code>$entries = GFAPI::get_entries(1);<\/code><\/pre>\n<p>Puoi anche recuperare una voce specifica con il suo ID e, allo stesso modo dell&#8217;aggiornamento del modulo, puoi manipolare l&#8217;oggetto voce e chiamare una funzione di aggiornamento su di esso per salvarlo con le tue modifiche. L&#8217;esempio seguente salva una stringa vuota sul meta indirizzo IP della voce, nonch\u00e9 il valore del campo ID 2:<\/p>\n<pre><code>$entry_to_change = GFAPI::get_entry(42);\n$entry_to_change['ip'] = '';\n$entry_to_change['2'] = 'New value';\nGFAPI::update_entry($entry_to_change);<\/code><\/pre>\n<p>Tutto quanto sopra \u00e8 modifiche al livello molto semplice. Resta sintonizzato nella categoria <a href=\"https:\/\/awhitepixel.com\/blog\/category\/gravity-forms\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> per ulteriori tutorial e funzionalit\u00e0 di codice pi\u00f9 complesse.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questa guida per sviluppatori principianti esamineremo le basi su come programmare per Gravity Forms in WordPress. Esamineremo brevemente semplici esempi di codice.<\/p>\n","protected":false},"author":1,"featured_media":152742,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,896,720,918,1110,814,814,720,844,844,865,865],"tags":[1168],"class_list":["post-233650","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-sviluppatore","category-n-a","category-plugin-2","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=233650"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/233650\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/152742"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=233650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=233650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=233650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}