- Added an improved Setup Wizard.
- Added the Orbital Form Theme, a theme with opinionated styles that is customizable in the block style settings.
- Added form style settings to the Gravity Forms block to allow users to easily customize the appearance of their forms.
- Added the Form Template Library to make it easier to create common forms.
- Added new Honeypot functionality to increase spam protection.
- Added a new Honeypot form setting to allow entries to be created and marked as spam when the Honeypot catches a form submission.
- Added the ability to upgrade a license from the settings page.
- Added performance improvements to form submissions for forms with lots of confirmations.
- Added performance improvements to form rendering.
- Added performance improvements to merge tag processing. Credit: The GravityKit team.
- Added accessibility improvements to the system report page.
- Added accessibility improvements to the Form, Entry and Feed List tables to improve accessibility.
- Added "Gravity Forms" to the title of admin pages to improve accessibility.
- Added underlines to links in the Form Validation Summary for better accessibility.
- Added security enhancements.
- Updated the repeater field markup to be compatible with the Theme Framework.
- Updated the form submit spinner to use new Theme Framework styles.
- Updated the image in the drag and drop instructions on an empty form.
- Updated the form preview in the block editor to display the form if it has conditional logic.
- Updated the default phone format option to be "International" instead of "US/Canada".
- Fixed a fatal error that can occur in some hosting environments with PHP 8+.
- Fixed an issue where form revisions are not created when a form contains a Consent field other than the Gravity Forms core Consent field.
- Fixed a performance issue where the gform_layout_editor script is being localised outside the editor for a form that doesn't exist. Credit: The GravityKit team.
- Fixed an issue where the Gravity Forms datepicker style is being applied outside of Gravity Forms.
- API: Added a form Theme Framework and CSS API to make it easier to customize the appearance of forms.
- API: Added a "block_editor" admin page type to allow add-ons to easily enqueue scripts and styles to the block editor via the scripts() and styles() methods.
- API: Added [GFAPI::validate_field()](https://docs.gravityforms.com/validating-field-submissions-with-the-gfapi/) to validate the value of a specific field.
- API: Added a new hook [`gform_entries_primary_column_filter`](https://docs.gravityforms.com/gform_entries_primary_column_filter) to filter the entry list table's first column.
- API: Added a new filter [`gform_abort_submission_with_confirmation`](https://docs.gravityforms.com/gform_abort_submission_with_confirmation) that can be used to abort form submission and display a confirmation.
- API: Added a new filter [`gform_search_criteria_export_entries`](https://docs.gravityforms.com/gform_search_criteria_export_entries) to allow entries of different statuses (i.e. trash, abuse) to be exported.
- Added a new environment variable to hide the background updates setting.
- Added a new environment variable to control the update message and the unregistered license message.
- Updated the icon for the Password field.
- Updated the minimum WordPress version on the System Status page to 6.0.
- Fixed an issue where the editor jumps to the top of the form when opening the choices flyout in no-conflict mode.
- Fixed an issue that causes hidden inputs to render in the autocomplete UI of the form editor.
- Fixed an issue where exporting entries including multiple Multi-Column List fields would not create separate columns for each List field row. Credit: ForGravity.
- Fixed an issue which causes products to display images as HTML in email notifications.
- Fixed an issue where some admin notifications result in an error: "Cannot send email because the TO address is invalid".
- Fixed an issue that causes the "Enable Other Choice" setting for option-based fields (Radio, Checkbox etc) to not display in the choices flyout when the Quiz add-on is enabled.
- Fixed an issue where the `gform_require_login` filter isn't called in all contexts where login is required for the form.
- API: Added the [gform_uninstalling](https://docs.gravityforms.com/gform_uninstalling/) action hook.
- API: Added the [gform_form_pre_process_async_task](https://docs.gravityforms.com/gform_form_pre_process_async_task/) filter.
- API: Updated the GFAPI::send_notifications() method to support async (background) processing of notifications. Disabled by default. Enable using the [gform_is_asynchronous_notifications_enabled](https://docs.gravityforms.com/gform_is_asynchronous_notifications_enabled/) filter.
- Added new environment variables to control the update message and the unregistered license message.
- Fixed an issue that causes hidden inputs to render in the autocomplete Ui of the form editor.
- Fixed an issue where exporting entries including multiple Multi-Column List fields would not create separate columns for each List field row. Credit: ForGravity.
- API: Added the [gform_uninstalling](https://docs.gravityforms.com/gform_uninstalling/) action hook.
- API: Added the [gform_form_pre_process_async_task](https://docs.gravityforms.com/gform_form_pre_process_async_task/) filter.
- API: Updated GFAPI::send_notifications() to support async (background) processing of notifications. Disabled by default. Enable using the [gform_is_asynchronous_notifications_enabled](https://docs.gravityforms.com/gform_is_asynchronous_notifications_enabled/) filter.
- Updated the minimum WordPress version on the System Status page to 6.0.
- Fixed issue which causes Products to display images as HTML in email notifications.
- Fixed an issue where some legacy admin notifications have a corrupt routing property resulting in the "Cannot send email because the TO address is invalid" error.
- Added a new environment variable to hide the background updates setting.
- Fixed an issue that causes the "Enable Other Choice" setting for option based fields (Radio, Checkbox etc) to not display in the Flyout when the Quiz add-on is enabled.
Fixed an issue where the gform_require_login filter isn't called in all contexts the form requireLogin property is checked.
- Fixed an accessibility issue with the consent field description.
- Fixed an accessibility issue that prevents the show/hide password button from read by screen readers.
- Fixed an issue where editing an entry with a multifile upload field could result in broken links to files. Credit: GravityWiz
- Removed an unused javascript function.
- Fixed an issue where the wrong change log can display on update.
- Updated the predefined choices list for gender and the name prefix choices to prevent translation problems.
- Fixed an issue that can result in the rg_lead to gf_entry upgrade stalling with a database error when updating from very old versions.
- Fixed an issue where the a form can have multiple submit buttons if markup is changed with the `gform_field_container` filter.
- Updated the Zapier icon to reflect their new branding.
Fixed an issue where the submit button will be repeatedly added to the form if markup is changed with the `gform_field_container` filter.
- Fixed a fatal error that can occur on some hosting environments when the license is validated.
- Fixed an issue where inserting a new notification routing rule will sometimes overwrite the following rule.
- Fixed an issue which prevents some {today} merge tags from displaying the correct value.
- Fixed an issue where the required field legend is not displayed if form title or description aren't enabled on a form that does not use legacy markup.
- Fixed an issue which can cause code to run multiple times on some hosting environments, leading to warnings and fatal errors.
- Fixed an issue where the default value of an email field with confirmation enabled does not display.
- Updated predefined choices lists for countries, US states, marital status, and gender as well as name prefix choices to be up-to-date and more inclusive.
- AF: Fixed a fatal error that can occur with PHP 8+ if an error occurs during background feed processing.
- API: Fixed an issue where GF_Field_Time::is_value_submission_empty() can return the wrong result.