{"id":233600,"date":"2023-02-18T19:58:00","date_gmt":"2023-02-18T16:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233600"},"modified":"2022-11-11T00:34:10","modified_gmt":"2022-11-10T21:34:10","slug":"coding-for-gravity-forms-an-introduction","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/coding-for-gravity-forms-an-introduction\/","title":{"rendered":"Coding for Gravity Forms: An Introduction"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> \u00e4r kanske den mest v\u00e4lk\u00e4nda och b\u00e4sta formbyggarplugin f\u00f6r WordPress. Det \u00e4r inte bara l\u00e4tt att anv\u00e4nda och har massor av till\u00e4gg f\u00f6r att implementera betalning eller nyhetsbrev i dina formul\u00e4r. Men det \u00e4r ocks\u00e5 v\u00e4ldigt utvecklarv\u00e4nligt och flexibelt. Personligen har jag anv\u00e4nt och utvecklat med Gravity Forms i minst 5 \u00e5r \u2013 och jag har aldrig haft en funktion som inte varit m\u00f6jlig eller riktigt sv\u00e5r att utveckla med Gravity Forms.<\/p>\n<p>T\u00e4nk p\u00e5 att Gravity Forms inte \u00e4r gratis. Du m\u00e5ste k\u00f6pa en licens. De erbjuder flera olika typer med olika priser f\u00f6r att f\u00e5 och anv\u00e4nda den. N\u00e4r du har k\u00f6pt en licens f\u00e5r du ocks\u00e5 tillg\u00e5ng till ett urval av deras till\u00e4gg, beroende p\u00e5 vilken licens du k\u00f6per.<\/p>\n<h2>Gravity Forms f\u00f6r oss utvecklare<\/h2>\n<p>Gravity Forms erbjuder m\u00e5nga filter och krokar, men det finns inga mallar som du kan \u00e5sidos\u00e4tta. Krokarna erbjuder mycket flexibilitet f\u00f6r utvecklare att ut\u00f6ka och modifiera Gravity Forms beteende. Ta en titt p\u00e5 <a href=\"https:\/\/docs.gravityforms.com\/category\/developers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms dokumentationssidor f\u00f6r utvecklare<\/a>. De flesta, om inte alla, anpassningar kommer att g\u00f6ras p\u00e5 n\u00e5gra av Gravity Forms objekt; antingen direkt eller genom <code>GFAPI<\/code>klassen Gravity Forms API (). Du kan ocks\u00e5 interagera med Gravity Forms med REST API (som ut\u00f6kar <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress REST API<\/a> ).<\/p>\n<p>Exempel p\u00e5 m\u00f6jligheter f\u00f6r utvecklare \u00e4r att modifiera f\u00e4ltutdata, \u00e4ndra f\u00e4ltv\u00e4rden innan de sparas som en potentiell kund, och programm\u00e4ssigt justera e-postmeddelanden. Andra exempel inkluderar att l\u00e4gga till anpassade formul\u00e4rinst\u00e4llningar, skapa nya f\u00e4lttyper och injicera anpassade f\u00e4lt eller f\u00e4ltv\u00e4rden i befintliga formul\u00e4r.<\/p>\n<p>Gravity Forms har ett &quot;Add-Ons&quot;-ramverk som har gjort det m\u00f6jligt f\u00f6r andra utvecklare att skapa egna till\u00e4gg till Gravity Forms. Och en hel del har gjorts. Exempel p\u00e5 till\u00e4gg \u00e4r MailChimp-registrering, betalningsgateways med Stripe, Hubspot integration, omr\u00f6stningar, fr\u00e5gesport, Zapier-integration och Dropbox. Vilka till\u00e4gg som \u00e4r tillg\u00e4ngliga beror p\u00e5 din licens. Ta en titt p\u00e5 en <a href=\"https:\/\/www.gravityforms.com\/add-ons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00f6versikt h\u00e4r<\/a>.<\/p>\n<h2>\u00c5terge ett formul\u00e4r<\/h2>\n<p>Att skriva ut ett formul\u00e4r g\u00f6rs med kortkoder, t.ex.<\/p>\n<pre><code>[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]<\/code><\/pre>\n<p>Oroa dig inte, Gravity Forms kommer att l\u00e4gga till knappar och dialogrutor f\u00f6r anv\u00e4ndarv\u00e4nliga inb\u00e4ddningsformul\u00e4r i dina inl\u00e4gg. Du eller inneh\u00e5llsredigerarna beh\u00f6ver inte skriva kortkoder manuellt.<\/p>\n<p>Men om du som utvecklare n\u00e5gonsin beh\u00f6ver b\u00e4dda in ett formul\u00e4r programm\u00e4ssigt i en mall, \u00e4r allt du beh\u00f6ver veta formul\u00e4rets ID och sedan helt enkelt eka kortkoden. N\u00e4r vi matar ut en kortkod i PHP m\u00e5ste vi linda in den <code>do_shortcode()<\/code>s\u00e5 att WordPress konverterar kortkoden ordentligt. Gravity Forms kommer att hantera att l\u00e4gga till alla n\u00f6dv\u00e4ndiga skript och stilar \u00e5t dig \u00e4ven n\u00e4r du renderar ett formul\u00e4r med PHP.<\/p>\n<pre><code>echo do_shortcode('[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]');<\/code><\/pre>\n<h2>H\u00e4mtar formul\u00e4rinformation<\/h2>\n<p>Det finns enkla API-funktioner tillg\u00e4ngliga f\u00f6r att h\u00e4mta information, t.ex. att h\u00e4mta alla formul\u00e4r eller ett specifikt formul\u00e4robjekt. Objekten \u00e4r ifyllda med alla inst\u00e4llningar inklusive alla f\u00e4lt i formul\u00e4ret, och du kan \u00e4ven f\u00e5 alla formul\u00e4rets poster (formul\u00e4rsvar). S\u00e4g att du vill skapa ett <code>&lt;select&gt;<\/code>med alla publicerade formul\u00e4r som erbjuder anv\u00e4ndaren att v\u00e4lja mellan publicerade formul\u00e4r:<\/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>F\u00f6r att f\u00f6lja bra kodningsstandarder, speciellt med tanke p\u00e5 att Gravity Forms \u00e4r ett plugin som kan avaktiveras eller helt enkelt inte existerar, kontrollera alltid om n\u00e5gon av Gravity Forms klasser finns innan du anv\u00e4nder dem! Innan ovanst\u00e5ende kod vill jag l\u00e4gga till:<\/p>\n<pre><code>if (!class_exists('GFAPI')) {\n    return;\n}\n\/\/ Do stuff with GFAPI class<\/code><\/pre>\n<p>Allt du beh\u00f6ver f\u00f6r att h\u00e4mta ett specifikt formul\u00e4rs objekt \u00e4r formul\u00e4r-ID (1 i fallet nedan):<\/p>\n<pre><code>$form = GFAPI::get_form(1);<\/code><\/pre>\n<p>Du kan till och med manipulera formul\u00e4ret genom objektet och sedan uppdatera det, till exempel genom att \u00e4ndra formul\u00e4rets titel:<\/p>\n<pre><code>$form = GFAPI::get_form(1);\n$form['title'] = __('New Form Title', 'txtdomain');\nGFAPI::update_form($form);<\/code><\/pre>\n<h2>H\u00e4mta ett formul\u00e4rs potentiella kunder (svar)<\/h2>\n<p>Att h\u00e4mta ett formul\u00e4rs poster (formul\u00e4rsvar) f\u00f6r formul\u00e4ret ID 1 \u00e4r s\u00e5 enkelt som:<\/p>\n<pre><code>$entries = GFAPI::get_entries(1);<\/code><\/pre>\n<p>Du kan ocks\u00e5 h\u00e4mta en specifik post med dess ID, och p\u00e5 samma s\u00e4tt som du uppdaterar formul\u00e4ret kan du manipulera postobjektet och anropa en uppdateringsfunktion p\u00e5 det f\u00f6r att spara det med dina \u00e4ndringar. Exemplet nedan sparar en tom str\u00e4ng p\u00e5 postens IP-adress meta, s\u00e5v\u00e4l som v\u00e4rdet p\u00e5 f\u00e4ltet 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>Allt ovan \u00e4r modifieringar p\u00e5 den mycket grundl\u00e4ggande niv\u00e5n. H\u00e5ll \u00f6gonen \u00f6ppna i kategorin <a href=\"https:\/\/awhitepixel.com\/blog\/category\/gravity-forms\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> f\u00f6r fler handledningar och mer komplex kodfunktionalitet.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r guiden f\u00f6r nyb\u00f6rjarutvecklare kommer vi att titta p\u00e5 grunderna i hur man kodar f\u00f6r Gravity Forms i WordPress. Vi ska kort titta p\u00e5 enkla kodexempel.<\/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":[901,724,848,901,922,1110,922,818,818,848,724,868,868],"tags":[1173],"class_list":{"0":"post-233600","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-koda","8":"category-utvecklaren","9":"category-handledningar","11":"category-oevrig","12":"category-n-a","14":"category-plugins-3","18":"category-wordpress-9","20":"tag-affiai-sv"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=233600"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233600\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/152742"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=233600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=233600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=233600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}