✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Форми Gravity: додайте власні введення до полів і віддаленої публікації після надсилання

19

У цьому підручнику Gravity Forms ми навчимося трьох речей:

  • Як додати спеціальне введення до будь-якого типу поля на ваш вибір
  • Як додати спеціальні налаштування до форми
  • І, нарешті, як віддалено публікувати надіслані значення для певних полів після кожного надсилання форми.

Ця публікація припускає, що ви хочете додати функцію до Gravity Forms для надсилання запиту на віддалену публікацію після кожного надсилання форми. У віддалену публікацію ви надсилатимете значення з форми, які можна налаштувати за допомогою додаткових параметрів у редакторі форм. Типовими прикладами того, де це може бути корисним, є надсилання, наприклад, імені та електронної адреси до списку інформаційних бюлетенів Mailchimp або справді будь-яка інша стороння інтеграція.

Спосіб вирішити це на практиці полягає в тому, щоб спочатку додати власні параметри до кожного поля, де редактор може вводити назви ключів. Ключ і надіслані ним значення надсилатимуться на сторонню URL-адресу після кожного надсилання форми. Ми також додамо налаштування, щоб ви могли вибрати для кожної форми активацію цього типу подання третьої сторони.

Весь наведений нижче код можна розмістити в коді вашої теми functions.phpабо плагіна.

Додавання спеціального введення до полів

Першим кроком є ​​додавання вхідних даних до полів у редакторі полів, де ви можете ввести назву ключа для цього значення. Ми будемо включати та надсилати лише значення, у яких було заповнено цей вхід.

Вибір місця для введення

Gravity Forms пропонує хуки, які ми можемо використовувати для додавання власних матеріалів у редактор полів. Ім’я хука залежить від того, на якій вкладці ви хочете розмістити ваше поле.

  • Вкладка «Загальні»:gform_field_standard_settings
  • Вкладка «Зовнішній вигляд»:gform_field_appearance_settings
  • Вкладка «Додатково»:gform_field_advanced_settings

У кожному хуку ви матимете два параметри; посада та ID форми. Кожен вбудований параметр Gravity Forms має фіксований номер позиції. Ви можете порівняти це число, щоб точно визначити, де ви хочете розташувати свій власний HTML або введений текст. Перераховувати всі параметри та їх положення було б надто довго в цій публікації. Але Gravity Forms додає свої параметри з кроком 5. Наприклад, на вкладці «Загальні» «Мітка поля» знаходиться в позиції 0, а «Опис» — у позиції 10. Якщо розмістити ваш HTML у позиції 10, він з’явиться після Опису. Не порівнюйте позицію з будь-яким числом, яке не є множником 5.

Я додаю своє настроюване поле на вкладку «Додатково» в позиції 50, яка знаходиться одразу після введення «Мітка поля адміністратора».

Більшість коду вище не пояснюється. Я додаю HTML у тому самому форматі, у якому Gravity Forms очікує наявність параметра. Однак у самому вхідному файлі вам потрібно надати функцію onchangeJavascript. Ми просто наказуємо йому запустити функцію GravityForms, щоб зберегти будь-які зміни, зроблені в наших вхідних даних. Важливо пам’ятати про властивість, яку ми надаємо в SetFieldProperty, thirdPartyInput, усередині цього ключа, де наші користувацькі дані будуть збережені в масиві полів Gravity Forms під час надсилання.

Додавання підказки (необов’язково)

Ви можете зробити іншу необов’язкову дію з вашим введенням; додати підказку. Якщо ви цього бажаєте, додайте цей виклик функції в код, який ви щойно додали, і надайте (унікальний) ключ як рядок:

А потім додайте іншу функцію, яка підключається до фільтра gform_tooltips, і додайте вміст підказки до відповідного ключа, ось так:

Додавання спливаючої підказки абсолютно необов’язкове, але це гарний спосіб пояснити власникам сайтів, що робить цей вхід. Змініть вміст відповідно до ваших функцій.

Визначення типів полів для додавання власного введення

Ви можете помітити, що ваше поле не відображається на вкладці «Додатково». Це пов’язано з тим, що нам потрібно повідомити Gravity Forms, у яких типах полів ми хочемо, щоб цей вхід відображався. За замовчуванням він не з’являтиметься в жодному.

Насправді ми це робимо за допомогою Javascript. У GravityForms є Javascript, який автоматично приховує всі налаштування, а потім вибирає відображення конкретних на основі типу поля. Отже, наше поле є, але Gravity Forms просто приховало його.

Ми підключилися gform_editor_js, і нам потрібно зробити дві речі. По-перше, ми вирішуємо, у яких типах полів має відображатися введення. А по-друге, ми переконуємося, що введення заповнюється своїм значенням під час завантаження.

Я додаю вхідні дані до типів полів text, textarea, email, phoneі number. Пам’ятайте про те, як ви збираєтеся обробляти значення поданих полів. Якщо ви вирішите дозволити це поле, наприклад, для типу поля прапорця, ви повинні мати можливість аналізувати та обробляти надіслані значення правильно.

Форми Gravity: додайте власні введення до полів і віддаленої публікації після надсилання

Тепер, нарешті, ви зможете побачити свій настроюваний ввід на вкладці «Додатково», якщо поле має будь-який із наданих типів. Ви також побачите, що він успішно збережений і завантажується зі збереженим значенням. Щоразу, коли форма надсилається відтепер, якщо цей вхід заповнюється, масив поля форми міститиме властивість thirdPartyInput.

Наступним кроком є ​​додавання параметра до самої форми, щоб активувати надсилання стороннім особам. Це необов’язково, але рекомендовано. Ми хочемо уникати запуску непотрібного коду або надсилання чогось третій стороні, якщо ми цього не збираємося.

Додавання власного налаштування до налаштувань форми

Додати власні налаштування до налаштувань форми досить просто. Нам потрібно підключитися до фільтра gform_form_settingsта додати до нашого HTML будь-які вхідні дані, які ви бажаєте, а потім до фільтра gform_pre_form_settings_saveта переконатися, що наші користувальницькі введення(и) збережено в об’єкті форми.

Ось як ви можете додати спеціальне налаштування до налаштувань форми:

Фільтр gform_form_settings очікує, що ключі будуть міткою розділу, а потім масивом для кожного параметра. Ми додаємо тільки один з ключем submit_3rd_party. У самому вхідному полі прапорця ми використовуємо метод Gravity Forms, rgar()щоб отримати значення заданого ключа з масиву (форми), щоб переконатися, що ми отримуємо збережене значення нашого поля. Змініть HTML відповідно до ваших потреб.

Тепер поле з’явиться внизу налаштувань форми. Але це ще не збереже ваші зміни, тому нам потрібно це виправити:

add_filter('gform_pre_form_settings_save', function($form) { $form['submit_3rd_party'] = rgpost('submit_3rd_party'); return $form; }, 10, 2);

Форми Gravity: додайте власні введення до полів і віддаленої публікації після надсилання

Цей фрагмент коду використовує ще один із допоміжних методів Gravity Forms, rgpost(), щоб витягти надіслані значення (з $_POST) і зберегти їх у наданому масиві форми з нашим потрібним ключем. Якщо ви додаєте більше налаштувань, вам потрібно буде повторити це для кожного налаштування.

І це все, що нам потрібно для додавання власних налаштувань форми! Щоразу, коли у вас є доступ до об’єкта форми, ви можете перевірити значення $form['submit_3rd_party'].

Надіслати надані значення третій стороні

Хороший хук для використання для спеціальних дій, таких як виконання запиту та надсилання даних із надісланої форми, це gform_after_submission. На цьому етапі вся перевірка пройдена, і об’єкт запису (відповіді) створено. За допомогою цього хука ми отримуємо доступ до об’єкта запису та об’єкта форми.

Ви вирішуєте, що ви будете робити під час цієї дії, а також те, як вам потрібно отримати дані та як ви виконуєте запит на публікацію. У цьому прикладі я роблю простий запит на публікацію за допомогою функції WordPress wp_remote_post()із масивом усіх полів, які були заповнені нашим спеціальним введенням у тілі.

Ви побачите, що я спочатку перевіряю, чи форма активувала надсилання. Якщо в ньому є код, він перебирає всі поля форми та перевіряє, чи кожне поле додало щось до нашого спеціального введення. Якщо введення справді не порожнє, код також перевіряє, чи було щось надіслано для цього поля. Ви можете видалити цю перевірку, якщо ви можете надсилати порожні значення.

Частина про URL-адресу та спосіб надсилання даних – це те, що вам, очевидно, доведеться налаштувати самостійно. Ви також можете за бажанням щось зробити з відповіддю, наприклад, надіслати електронний лист, якщо це не вдалося, або щось подібне. Усе залежить від вас, як ви хочете використовувати свої функції.

Джерело запису: awhitepixel.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі