{"id":234237,"date":"2023-02-18T19:28:00","date_gmt":"2023-02-18T16:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234237"},"modified":"2022-11-12T01:34:08","modified_gmt":"2022-11-11T22:34:08","slug":"codage-pour-les-formes-de-gravite-une-introduction","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/codage-pour-les-formes-de-gravite-une-introduction\/","title":{"rendered":"Codage pour les formes de gravit\u00e9\u00a0: une introduction"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> est peut-\u00eatre le plugin de cr\u00e9ation de formulaires le plus connu et le meilleur pour WordPress. Non seulement il est facile \u00e0 utiliser et dispose de nombreux modules compl\u00e9mentaires pour impl\u00e9menter le paiement ou la newsletter dans vos formulaires. Mais il est \u00e9galement tr\u00e8s convivial et flexible pour les d\u00e9veloppeurs. Personnellement, j&rsquo;utilise et d\u00e9veloppe avec Gravity Forms depuis au moins 5 ans &#8211; et je n&rsquo;ai jamais eu une fonctionnalit\u00e9 qui n&rsquo;\u00e9tait pas possible ou vraiment difficile \u00e0 d\u00e9velopper avec Gravity Forms.<\/p>\n<p>Gardez \u00e0 l&rsquo;esprit que Gravity Forms n&rsquo;est pas gratuit. Vous devez acheter une licence. Ils offrent plusieurs types diff\u00e9rents avec des prix diff\u00e9rents afin de l&rsquo;obtenir et de l&rsquo;utiliser. Une fois que vous avez achet\u00e9 une licence, vous avez \u00e9galement acc\u00e8s \u00e0 une s\u00e9lection de leurs modules compl\u00e9mentaires, en fonction de la licence que vous achetez.<\/p>\n<h2>Gravity Forms pour nous d\u00e9veloppeurs<\/h2>\n<p>Gravity Forms propose de nombreux filtres et crochets, mais aucun mod\u00e8le ne peut \u00eatre remplac\u00e9. Les crochets offrent beaucoup de flexibilit\u00e9 aux d\u00e9veloppeurs pour \u00e9tendre et modifier le comportement de Gravity Forms. Jetez un \u0153il aux <a href=\"https:\/\/docs.gravityforms.com\/category\/developers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pages de documentation des d\u00e9veloppeurs de Gravity Forms<\/a>. La plupart, sinon la totalit\u00e9, des personnalisations seront effectu\u00e9es sur certains objets de Gravity Forms ; soit directement, soit via <code>GFAPI<\/code>la classe Gravity Forms API (). Vous pouvez \u00e9galement interagir avec Gravity Forms \u00e0 l&rsquo;aide de l&rsquo;API REST (qui \u00e9tend <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">l&rsquo;API REST de WordPress<\/a> ).<\/p>\n<p>Des exemples de possibilit\u00e9s pour les d\u00e9veloppeurs sont la modification des sorties de champ, la modification des valeurs du champ avant qu&rsquo;elles ne soient enregistr\u00e9es en tant que piste et l&rsquo;ajustement par programmation des notifications par e-mail. D&rsquo;autres exemples incluent l&rsquo;ajout de param\u00e8tres de formulaire personnalis\u00e9s, la cr\u00e9ation de nouveaux types de champs et l&rsquo;injection de champs personnalis\u00e9s ou de valeurs de champs dans des formulaires existants.<\/p>\n<p>Gravity Forms a un cadre &quot;Add-Ons&quot; qui a permis \u00e0 d&rsquo;autres d\u00e9veloppeurs de cr\u00e9er leurs propres add-ons pour Gravity Forms. Et un certain nombre ont \u00e9t\u00e9 cr\u00e9\u00e9s. Des exemples d&rsquo;add-ons sont l&rsquo;inscription MailChimp, les passerelles de paiement avec Stripe, Hubspot int\u00e9gration, sondages, quiz, int\u00e9gration Zapier et Dropbox. Les modules compl\u00e9mentaires disponibles d\u00e9pendent de votre licence. Jetez un \u0153il \u00e0 un <a href=\"https:\/\/www.gravityforms.com\/add-ons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aper\u00e7u ici<\/a>.<\/p>\n<h2>Rendu d&rsquo;un formulaire<\/h2>\n<p>La sortie d&rsquo;un formulaire se fait \u00e0 l&rsquo;aide de shortcodes, par exemple\u00a0:<\/p>\n<pre><code>[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]<\/code><\/pre>\n<p>Ne vous inqui\u00e9tez pas, Gravity Forms ajoutera des boutons et des bo\u00eetes de dialogue pour int\u00e9grer des formulaires conviviaux dans vos publications. Vous ou les \u00e9diteurs de contenu n&rsquo;aurez pas \u00e0 saisir manuellement les codes courts.<\/p>\n<p>Mais si vous, en tant que d\u00e9veloppeur, avez besoin d&rsquo;int\u00e9grer un formulaire par programme dans un mod\u00e8le, tout ce que vous devez savoir est l&rsquo;ID du formulaire, puis faites simplement \u00e9cho au shortcode. Lorsque nous produisons un shortcode en PHP, nous devons l&rsquo;envelopper \u00e0 l&rsquo;int\u00e9rieur <code>do_shortcode()<\/code>pour que WordPress convertisse correctement le shortcode. Gravity Forms se chargera d&rsquo;ajouter tous les scripts et styles n\u00e9cessaires pour vous, m\u00eame lorsque vous rendez un formulaire avec PHP.<\/p>\n<pre><code>echo do_shortcode('[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]');<\/code><\/pre>\n<h2>R\u00e9cup\u00e9ration des informations du formulaire<\/h2>\n<p>Il existe des fonctions API simples disponibles pour r\u00e9cup\u00e9rer des informations, par exemple obtenir tous les formulaires ou un objet de formulaire sp\u00e9cifique. Les objets sont remplis avec tous les param\u00e8tres, y compris tous les champs du formulaire, et vous pouvez \u00e9galement obtenir toutes les entr\u00e9es du formulaire (r\u00e9ponses au formulaire). Supposons que vous souhaitiez g\u00e9n\u00e9rer un <code>&lt;select&gt;<\/code>avec tous les formulaires publi\u00e9s offrant \u00e0 l&rsquo;utilisateur de choisir entre les formulaires publi\u00e9s\u00a0:<\/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>Pour suivre de bonnes normes de codage, surtout si l&rsquo;on consid\u00e8re que Gravity Forms est un plugin qui peut \u00eatre d\u00e9sactiv\u00e9 ou tout simplement ne pas exister, v\u00e9rifiez toujours si l&rsquo;une des classes de Gravity Forms existe avant de les utiliser! Avant le code ci-dessus, j&rsquo;ajouterais:<\/p>\n<pre><code>if (!class_exists('GFAPI')) {\n    return;\n}\n\/\/ Do stuff with GFAPI class<\/code><\/pre>\n<p>Pour r\u00e9cup\u00e9rer l&rsquo;objet d&rsquo;un formulaire sp\u00e9cifique, tout ce dont vous avez besoin est l&rsquo;ID du formulaire (1 dans le cas ci-dessous)\u00a0:<\/p>\n<pre><code>$form = GFAPI::get_form(1);<\/code><\/pre>\n<p>Vous pouvez m\u00eame manipuler le formulaire via l&rsquo;objet, puis le mettre \u00e0 jour, par exemple en modifiant le titre du formulaire\u00a0:<\/p>\n<pre><code>$form = GFAPI::get_form(1);\n$form['title'] = __('New Form Title', 'txtdomain');\nGFAPI::update_form($form);<\/code><\/pre>\n<h2>R\u00e9cup\u00e9rer les pistes d&rsquo;un formulaire (r\u00e9ponses)<\/h2>\n<p>R\u00e9cup\u00e9rer les entr\u00e9es d&rsquo;un formulaire (r\u00e9ponses au formulaire) pour l&rsquo;ID de formulaire 1 est aussi simple que\u00a0:<\/p>\n<pre><code>$entries = GFAPI::get_entries(1);<\/code><\/pre>\n<p>Vous pouvez \u00e9galement r\u00e9cup\u00e9rer une entr\u00e9e sp\u00e9cifique avec son ID, et de la m\u00eame mani\u00e8re que la mise \u00e0 jour du formulaire, vous pouvez manipuler l&rsquo;objet d&rsquo;entr\u00e9e et appeler une fonction de mise \u00e0 jour dessus pour l&rsquo;enregistrer avec vos modifications. L&rsquo;exemple ci-dessous enregistre une cha\u00eene vide sur la m\u00e9ta adresse IP de l&rsquo;entr\u00e9e, ainsi que la valeur du champ ID 2\u00a0:<\/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>Tout ce qui pr\u00e9c\u00e8de est des modifications au niveau tr\u00e8s basique. Restez \u00e0 l&rsquo;\u00e9coute dans la <a href=\"https:\/\/awhitepixel.com\/blog\/category\/gravity-forms\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cat\u00e9gorie Gravity Forms<\/a> pour plus de tutoriels et des fonctionnalit\u00e9s de code plus complexes.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans ce guide pour les d\u00e9veloppeurs d\u00e9butants, nous examinerons les bases du codage pour Gravity Forms dans WordPress. Nous allons bri\u00e8vement examiner des exemples de code simples.<\/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":[915,893,893,717,717,915,1110,811,811,841,841,862,862],"tags":[1167],"class_list":["post-234237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autre","category-code-2","category-developpeur","category-n-a","category-plugins-2","category-tutoriels","category-wordpress-3","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=234237"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234237\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/152742"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}