Gravity Forms 3.0 Key Features

Note: Gravity Forms 3.0 is currently in beta and can be downloaded from your Gravity Downloads page. This beta period allows us to collect community feedback, identify bugs and compatibility issues, and issue updates. It also gives developers time to ensure their products and integrations are compatible with the latest version before general release.

Summary

Gravity Forms 3.0 is the latest feature release of our core plugin, adding support for international phone formats and accessibility improvements across the board. This article covers the main features of this release.

International Phone Formats

Create better experiences for users worldwide with improved support for international phone formats. Set a default country, let users select their country and code, and ensure accuracy with built-in format validation.

See the International Phone field article for more information.

Accessibility by Default

Building WCAG 2.1 AA-compliant forms just got easier. Accessible settings are now on by default for every new form you create, and the datepicker has been upgraded to meet accessibility standards.

The datepicker now uses the WhatSock library instead of jQuery UI, delivering fully accessible date selection without jQuery dependencies.

See the Accessibility and WCAG Improvements article for more information.

Developer Improvements

Cleaner JavaScript libraries
Updated libraries for formatted inputs and character counts provide a more modern experience behind the scenes.

Consistent Button Markup
More consistent button markup makes it easier to style forms and create a more polished finish across your site

WordPress Block API v3
Embed and style forms in the block editor with full support for the WordPress Block API v3. Get better compatibility with current themes and tools, and a smoother experience inside the editor.

New Filters

Gravity Forms 3.0 introduces new filters for enhanced customization and control over form behavior and integration.

Changelog

3.0-beta.1

  • Added a new international variant of the Phone Field.
  • Added multiple accessibility improvements to the dashboard.
  • Added imaskjs to replace the old jQuery based input mask library for US phone fields and text fields with input mask.
  • Added improvements to the honeypot feature.
  • Added new gform_text_counter_template filter so that the text counter format can be customized.
  • Added several merge tag modifiers for the repeater field: :count to get the number of repeats; :text to get the value without HTML markup; :field_ids= to get only the values of the specified field IDs (separate multiple IDs with a |); and :value to get only the value with no label or HTML markup.
  • Added textareaHeight setting to the Paragraph Field and usage notice to all Field Size settings.
  • Added total field validation for existing fields.
  • Added the gform_state_pre_encode hook, so that add-ons can add additional non-field values to the state before it is encoded.
  • Added the gform_enable_repeater_field_button filter to allow enabling the beta Repeater field.
  • Updated many default form and field settings to be accessible by default on new forms.
  • Updated drop-zones in the form editor to indicate when a field cannot be dropped in a specific location.
  • Updated form buttons to use elements instead of elements for better accessibility and styling flexibility. It is no longer necessary to use the gform_submit_button filter to change the submit input into a button, and use of that filter might cause unexpected issues.
  • Updated form theme/frontend based scripts to load on block editor pages.
  • Updated the layout editor so that it doesn’t use jQuery UI libraries.
  • Updated Save and Continue to use GFFormDisplay::validate_field() with a $context of send-link-submit to validate the send link email field, so the gform_email_field_rejectable_values and gform_field_validation filters are triggered.
  • Updated state validation to support additional field types, including fields added by add-ons that extend the GF_Field class.
  • Updated the appearance of the Repeater field in the form editor, the frontend, Entry Details page, and in the {all_fields} merge tag output.
  • Updated the Dashboard Widget setting to be off by default.
  • Updated the datepicker field to use a new datepicker library that is fully accessible and does not rely on jQuery.
  • Updated the form submission spinner to display inside the submit button instead of next to it.
  • Updated the Gravity Forms block to use the Block API version 3.
  • Updated the settings for the Radio, Checkbox, and Multiple Choice fields so that they all have the same settings for displaying vertically, horizontally, and in columns.
  • Fixed several bugs with the beta Repeater field.
  • Fixed a JavaScript error that occurs when editing a page with an embedded form that includes a multi-file upload field.
  • Fixed an issue where empty required fields can be submitted if the value is sanitized.
  • Fixed an issue where some fields are displayed incorrectly on block editor pages.
  • Fixed an issue with the consent field description spacing in the Orbital Theme.
  • Fixed an issue with the consent field for the field required indicator and description spacing and placement in the Gravity Forms 2.5 Theme.
  • Fixed an issue with the required field indicator placement and spacing in the Orbital Theme.
  • Removed the gform_ajax_spinner_url and gform_spinner_url filters. You can use CSS to replace the default spinner.
  • Removed the form button section from the form settings page.
  • Removed the gform_price_change JQuery event.
  • Removed the Preview toggle in the block editor.
  • Removed “display grid” and “show structure” from the form preview
  • API: Added get_value_save_input() to replace the deprecated functions get_value_save_entry() and GFFormsModel::prepare_value().