{"id":233603,"date":"2023-02-18T20:08:00","date_gmt":"2023-02-18T17:08:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233603"},"modified":"2022-11-11T00:35:45","modified_gmt":"2022-11-10T21:35:45","slug":"codificacion-de-formas-de-gravedad-una-introduccion","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/codificacion-de-formas-de-gravedad-una-introduccion\/","title":{"rendered":"Codificaci\u00f3n de formas de gravedad: una introducci\u00f3n"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.gravityforms.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Gravity Forms<\/a> es quiz\u00e1s el complemento de creaci\u00f3n de formularios m\u00e1s conocido y mejor para WordPress. No solo es f\u00e1cil de usar y tiene muchos complementos para implementar pagos o boletines informativos en sus formularios. Pero tambi\u00e9n es muy amigable para los desarrolladores y flexible. Personalmente, he estado usando y desarrollando Gravity Forms durante al menos 5 a\u00f1os, y nunca tuve una funci\u00f3n que no fuera posible o realmente dif\u00edcil de desarrollar con Gravity Forms.<\/p>\n<p>Tenga en cuenta que Gravity Forms no es gratis. Tienes que comprar una licencia. Ofrecen varios tipos diferentes con diferentes precios para obtenerlo y usarlo. Una vez que haya comprado una licencia, tambi\u00e9n obtendr\u00e1 acceso a una selecci\u00f3n de sus complementos, seg\u00fan la licencia que compre.<\/p>\n<h2>Gravity Forms para nosotros los desarrolladores<\/h2>\n<p>Gravity Forms ofrece muchos filtros y ganchos, pero no hay plantillas que pueda anular. Los ganchos ofrecen mucha flexibilidad para que los desarrolladores ampl\u00eden y modifiquen el comportamiento de Gravity Forms. Eche un vistazo a <a href=\"https:\/\/docs.gravityforms.com\/category\/developers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">las p\u00e1ginas de documentaci\u00f3n para desarrolladores de Gravity Forms<\/a>. La mayor\u00eda, si no todas, las personalizaciones se realizar\u00e1n en algunos de los objetos de Gravity Forms; ya sea directamente o a trav\u00e9s <code>GFAPI<\/code>de la clase Gravity Forms API (). Tambi\u00e9n puede interactuar con Gravity Forms usando la API REST (que est\u00e1 extendiendo <a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la API REST de WordPress<\/a> ).<\/p>\n<p>Las posibilidades de ejemplo para los desarrolladores son modificar los resultados de los campos, cambiar los valores de los campos antes de que se guarden como prospectos y ajustar las notificaciones por correo electr\u00f3nico mediante programaci\u00f3n. Otros ejemplos incluyen agregar configuraciones de formulario personalizadas, crear nuevos tipos de campo e inyectar campos personalizados o valores de campo en formularios existentes.<\/p>\n<p>Gravity Forms tiene un marco de &quot;complementos&quot; que ha permitido a otros desarrolladores crear complementos para Gravity Forms propios. Y se han creado bastantes. Ejemplos de complementos son el registro de MailChimp, las pasarelas de pago con Stripe, Hubspot Integraci\u00f3n, encuestas, cuestionario, integraci\u00f3n de Zapier y Dropbox. Los complementos disponibles dependen de su licencia. Eche un vistazo a una <a href=\"https:\/\/www.gravityforms.com\/add-ons\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">descripci\u00f3n general aqu\u00ed<\/a>.<\/p>\n<h2>Renderizar un formulario<\/h2>\n<p>La salida de un formulario se realiza mediante c\u00f3digos abreviados, por ejemplo:<\/p>\n<pre><code>[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]<\/code><\/pre>\n<p>No se preocupe, Gravity Forms agregar\u00e1 botones y cuadros de di\u00e1logo para incrustar formularios f\u00e1ciles de usar en sus publicaciones. Ni usted ni los editores de contenido tendr\u00e1n que escribir c\u00f3digos abreviados manualmente.<\/p>\n<p>Pero si usted, como desarrollador, alguna vez necesita incrustar un formulario program\u00e1ticamente dentro de una plantilla, todo lo que necesita saber es la ID del formulario y luego simplemente hacer eco del c\u00f3digo abreviado. Cuando generamos un c\u00f3digo abreviado en PHP, debemos envolverlo dentro <code>do_shortcode()<\/code>para que WordPress convierta el c\u00f3digo abreviado correctamente. Gravity Forms se encargar\u00e1 de agregar todos los scripts y estilos necesarios incluso cuando renderice un formulario con PHP.<\/p>\n<pre><code>echo do_shortcode('[gravityform id=\"2\" name=\"Contact us\" ajax=\"true\"]');<\/code><\/pre>\n<h2>Obteniendo informaci\u00f3n del formulario<\/h2>\n<p>Hay funciones API simples disponibles para obtener informaci\u00f3n, por ejemplo, obtener todos los formularios o un objeto de formulario espec\u00edfico. Los objetos se completan con todas las configuraciones, incluidos todos los campos del formulario, y tambi\u00e9n puede obtener todas las entradas del formulario (respuestas del formulario). Supongamos que desea generar un correo electr\u00f3nico <code>&lt;select&gt;<\/code>con todos los formularios publicados que ofrezca al usuario seleccionar entre los formularios publicados:<\/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>Para seguir buenos est\u00e1ndares de codificaci\u00f3n, especialmente considerando que Gravity Forms es un complemento que puede desactivarse o simplemente no existir, \u00a1siempre verifique si alguna de las clases de Gravity Forms existe antes de usarla! Antes del c\u00f3digo anterior, agregar\u00eda:<\/p>\n<pre><code>if (!class_exists('GFAPI')) {\n    return;\n}\n\/\/ Do stuff with GFAPI class<\/code><\/pre>\n<p>Para recuperar el objeto de un formulario espec\u00edfico, todo lo que necesita es el ID del formulario (1 en el caso siguiente):<\/p>\n<pre><code>$form = GFAPI::get_form(1);<\/code><\/pre>\n<p>Incluso puede manipular el formulario a trav\u00e9s del objeto y luego actualizarlo, por ejemplo, cambiando el t\u00edtulo del formulario:<\/p>\n<pre><code>$form = GFAPI::get_form(1);\n$form['title'] = __('New Form Title', 'txtdomain');\nGFAPI::update_form($form);<\/code><\/pre>\n<h2>Recuperar los prospectos de un formulario (respuestas)<\/h2>\n<p>Recuperar las entradas de un formulario (respuestas de formulario) para el formulario ID 1 es tan simple como:<\/p>\n<pre><code>$entries = GFAPI::get_entries(1);<\/code><\/pre>\n<p>Tambi\u00e9n puede recuperar una entrada espec\u00edfica con su ID y, de la misma manera que actualiza el formulario, puede manipular el objeto de entrada y llamar a una funci\u00f3n de actualizaci\u00f3n para guardarlo con sus cambios. El siguiente ejemplo guarda una cadena vac\u00eda en la meta de la direcci\u00f3n IP de la entrada, as\u00ed como el valor del ID de campo 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>Todo lo anterior son modificaciones en un nivel muy b\u00e1sico. Est\u00e9n atentos en la <a href=\"https:\/\/awhitepixel.com\/blog\/category\/gravity-forms\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">categor\u00eda Gravity Forms<\/a> para obtener m\u00e1s tutoriales y una funcionalidad de c\u00f3digo m\u00e1s compleja.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta gu\u00eda para desarrolladores principiantes, veremos los conceptos b\u00e1sicos de c\u00f3mo codificar Gravity Forms en WordPress. Veremos brevemente ejemplos de c\u00f3digo simple.<\/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":[892,892,810,716,716,914,1110,914,810,840,840,861,861],"tags":[1172],"class_list":["post-233603","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-complementos","category-desarrollador","category-otro","category-n-a","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=233603"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/233603\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/152742"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=233603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=233603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=233603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}