Skip to content

Releases: pronamic/gravityforms

2.9.20

18 Oct 10:08

Choose a tag to compare

2.9.20 | 2025-10-16

  • Added several performance improvements to the form editor by running large queries asynchronously.
  • Added support for feed conditional logic based on payment status.
  • Fixed the display of admin error messages on mobile devices.
  • Fixed an issue where the multi-file upload handler responds with the wrong Content-Type header.
  • Fixed an issue where the multi-file uploader can display a generic error message instead of the message returned by the upload handler.
  • Fixed an issue where forms with a payment feed can sometimes throw a fatal error on submission.
  • Fixed an issue that prevented the preview action from displaying on the imported Forms list page.
  • Fixed a JavaScript error deleting a file uploaded on the edit entry screen.
  • API: Added the gform_post_add_feed action hook that fires after a feed is added.
  • API: Added the gform_update_feed_active action hook that fires when a feed's "active" status is changed.

2.9.19

03 Oct 10:09

Choose a tag to compare

2.9.19 | 2025-10-02

  • Added Signature Consent Form and Testimonial Form templates to the Template Library.
  • Added an accessibility warning in the form editor when the rich text editor setting is enabled on the Paragraph Text field.
  • Added a deprecation warning in the form editor when a form uses any of the gf_list_height Ready Classes.
  • Fixed an issue where canceling the conditional logic warning displayed by the rich text editor setting does not cancel the current changes.
  • Fixed accessibility of decorative font icons in admin screens so they are not announced by screen readers.
  • Fixed an issue where the Gravity Forms header displays incorrectly when Screen Options panel is open.
  • Fixed an issue where the upload button for a multi-file enabled File Upload field with a limit is not re-enabled when the last file is removed.
  • Fixed an issue where the gform variable (hooks script) can be output in the wrong location on some sites.
  • Fixed an issue where the sales page does not display the charts correctly in RTL languages.
  • Fixed an issue where the add and delete icon URL settings are not applied to the List field.
  • Fixed a PHP fatal error that occurs when editing an entry with a multi-file enabled File Upload field.
  • Fixed a PHP fatal error sometimes occurs when trying to dismiss a message in the admin.
  • Removed ready classes from the Employment Application form template.

2.9.18

19 Sep 10:09

Choose a tag to compare

2.9.18 | 2025-09-18

  • Added support for dynamically populating File Upload fields with file URLs. Note: the URL is saved to the entry; the file itself is not saved in the form uploads folder.
  • Added the gform_submission_files_pre_save_field_value filter, so files can be modified (e.g. renamed) just before they are saved to the form folder and entry.
  • Updated the Checkboxes and Radio Buttons fields to show more choices in the form editor when the "Display in columns" setting is enabled for a more accurate preview.
  • Updated the block editor Advanced settings tab for better visibility and consistency.
  • Fixed an issue where the values of legacy post fields aren't saved on form submission if the page query string includes the view parameter with a value of entry. Credit: The Gravity PDF team.
  • Fixed the formatting of the Time field in RTL languages.
  • Fixed an issue where the submitted values of some fields with conditional logic based on a Consent field are not saved if the Consent field was the first field on the form when the conditional logic rule was configured.
  • Fixed an issue where the Honeypot field can be removed when paging through a multipage form and the new AJAX submission method is in use.
  • Fixed an issue where the value saved is truncated when the selected choice of a Dropdown field contains '<'.
  • Fixed an issue where an Email field with confirmation enabled passes validation when the first input is empty and the confirmation input is not empty.
  • Fixed an issue where two instances of the gform variable (hooks script) can be output with some themes.
  • Fixed an issue where Option field choices HTML tags are displayed as text in the order summary.
  • Fixed a PHP fatal error that occurs when editing an entry and the existing value of a multi-file enabled File Upload field JSON decodes to null.
  • Fixed an issue where the calculation field type uses an incorrect markup tag.
  • Fixed a bug that prevented the search box from showing on the Entries screen.
  • API: Fixed an issue where REST API form submissions don't validate or save files submitted using array-based input names (e.g. input_1[]) for multi-file enabled File Upload fields.
  • API: Added several new functions to GF_Field_FileUpload including: get_tmp_file_details(), get_submission_files(), set_submission_files(), populate_file_urls_from_value(), and populate_file_url().
  • API: Deprecated GFFormsModel::get_temp_filename(), use $file_upload_field->get_tmp_file_details( $file_or_name ) instead.
  • AF: Added support for enabling Post Payment actions by default via the GFFeedAddon::get_post_payment_actions_config() method.
  • AF: Fixed an issue where the add-on tabs on the settings page are not sorted alphabetically.

2.9.17.1

05 Sep 10:09

Choose a tag to compare

2.9.17.1

  • Fixed a bug that prevented entries search input boxes from showing.

2.9.16

22 Aug 10:09

Choose a tag to compare

2.9.16 | 2025-08-21

  • Added settings to the Radio and Checkbox fields to replace the list column Ready Classes.
  • Added sanitization to the enableEnhancedUI property in GF_Field_Select to be consistent with GF_Field_Multiselect.
  • Added the gform_entries_filter_count_queries filter, which can be used to add queries for custom filter links for the entries list page.
  • Added the gform_honeypot_input_name filter, so the input name used by the honeypot input can be customized.
  • Updated the gform_filter_links_entry_list filter, so the entry counts are passed as the 4th param.
  • Fixed a JavaScript error that can occur on form render when themes and plugins output unexpected content in the admin-ajax.php response.
  • Fixed a PHP warning that occurs on third-party admin pages that use the id query argument when a script that requires the gf_vars variable has been enqueued.
  • Fixed a bug that causes the reset button on the field map setting to sometimes display on top of other elements.
  • Fixed an issue that can cause ACF fields to trigger form submissions when editing a post.
  • Fixed an issue where all the rows of a List type field can be deleted if the delete row buttons are clicked in quick succession.
  • Fixed the entry detail page to display an error message if the entry id query argument is invalid. Credit: The Gravity Wiz Team.
  • Fixed an issue where data is not saved when conditional rules match against empty Consent field.
  • Fixed an issue where required indicator is displayed for Consent field in entry edit view when field label is hidden.
  • Fixed an issue where the results page is not displaying the charts correctly in RTL languages.
  • Fixed an issue with the legacy post creation feature that impacted the performance of all form submissions.
  • Fixed class attribute being declared twice for single product base price input when quantity field is disabled.
  • AF: Fixed an issue where the wp_inline_script_attributes filter is not impacting the script tag for the JavaScript gform.extensions variable.
  • AF: Updated the entries list page to include filter links for the various payment statuses.
  • API: Updated the $step attribute used with the text $input_type settings field to be public.
  • API: Fixed issue where the placeholder attribute was not working correctly in the Settings API.

2.9.15

08 Aug 10:11

Choose a tag to compare

2.9.15 | 2025-08-07

  • Added the gform_enable_download_nocache_headers filter to allow developers to enable or disable the no-cache headers for file downloads. Credit: The GravityKit Team.
  • Added the gform_email_field_rejectable_values filter, which can be used to provide an array of values or partial values that the email field should reject during validation.
  • Added security enhancements.
  • Fixed the time field value not being saved and PHP notices on submission if a form contains administrative time field with dynamic population enabled.
  • Fixed a PHP fatal error that can occur in some hosting environments when the form is saved via Ajax in the form editor.
  • Updated the message displayed when the user has exceeded the license verification rate limit to be more informative.
  • Updated messages in the form editor and form settings page to provide more information about the upcoming deprecation of Ready Classes in version 3.1.0.
  • Updated the UI of dialogs and flyouts.
  • Updated background processor error handler priority to increase chances of fatal errors being logged.
  • Removed notifications from form templates.
  • API: Added inline documentation for the Theme Framework CSS API.
  • API: Fixed an issue with the JS gform.product.getPaymentAmount() method that returns the wrong payment amount in certain situations.

2.9.14

25 Jul 10:10

Choose a tag to compare

2.9.14 | 2025-07-24

  • Added the constant GF_ENABLE_NOTIFICATION_EMAIL_HEADER and filter gform_notification_email_header to allow enabling and setting of X-Gravity-Forms-Source email header.
  • Added alt attribute to the checked indicator image in the consent field for improved accessibility.
  • Fixed an issue where the "Subscription Created" notification is not sent in some situations.
  • Fixed setting of default value for email confirmation input when field has conditional logic enabled.
  • Fixed an issue where the "Select All" choice for Multiple Choice fields is rendered incorrectly.
  • Fixed an issue where forms can't be saved in the form editor when third-party add-ons introduce invalid JSON syntax to the form object.
  • AF: Fixed an issue where the save success message can be displayed when the edit feed page is redirected to from another add-on.
  • API: Updated GF_Field::get_value_entry_detail() to display an inline error message on the entry detail page when the field uses an array-based value and the add-on that includes the field is inactive or hasn't defined it's own get_value_entry_detail method.
  • API: Fixed a display issue with checkbox type setting choice labels.

2.9.13

12 Jul 10:09

Choose a tag to compare

2.9.13 | 2025-07-11

  • Updated the image choice file upload UI to account for file upload component updates.
  • Updated the help page to be more accessible.

2.9.12

11 Jul 10:10

Choose a tag to compare

2.9.12 | 2025-07-10

  • Added merge tags on the "Send To: Enter Email" notification setting. Credit: The GravityKit Team.
  • Updated the legacy Akismet spam check during form submission to run via the gform_entry_is_spam filter in preparation for version 1.1.0 of the Akismet add-on.
  • Fixed rendering of calculated product in form editor when quantity is disabled.
  • Fixed an issue where the recent forms list used by the form switcher is not updated when the admin toolbar menu is disabled.
  • Fixed an issue in reCAPTCHA that prevents the form from being submitted when the reCAPTCHA API keys are invalid on the settings page.
  • Removed the mock-data endpoint from production environments.

2.9.11

27 Jun 10:10

Choose a tag to compare

2.9.11 | 2025-06-26

  • Added a h1 to all admin pages to improve accessibility.
  • Fixed undefined variable error when the filter gform_toolbar_menu returns an empty array.
  • Fixed handling of notification addressing where comma-separation of merge tags includes spaces.
  • Updated links in the admin to indicate when they open in a new window for improved accessibility.
  • Updated messages around deprecated Ready Classes in the form editor.
  • API: Fixed a bug in the Settings API that prevents custom settings fields from being rendered in a tabbed interface.
  • API: Fixed a bug in the Settings API that prevents the description from being rendered in the Post Select field.
  • API: Fixed a bug in the Settings API that prevents the after_input parameter from being rendered in the Conditional Logic field.