You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Repeater and Group fields values now no longer use elements, just plain arrays. This brings several performance improvements and simplification to these fields.
OAuth-based integrations now use the Auth Module to handle authentication under the hood.
References to subfield is now subField for various classes.
Element fields (Categories, Entries, File Upload, Products, Tags, Users, Variants) now use their public URL in email notifications.
Options fields (Checkboxes, Dropdown, Radio) now use their option labels in email notifications.
Changed fieldInputContainer to fieldInputWrapper for Theme Config and .fui-input-container class to .fui-input-wrapper for fields.
Date fields now no longer use Flatpickr as a date-picker by default.
Changed the value returned for Address fields when queried via GraphQL.
Change Field’s name to label for GraphQL queries.
Change Page’s name to label for GraphQL queries.
Added
Added new user interface for sub-field (Address, Date, and Name).
Added the ability to re-order sub-fields.
Added the ability to edit the full settings of sub-field fields.
Added ability to send email notifications or trigger integrations when unmarking a submission as spam.
Added the ability to set the control panel or public URL for element fields (Categories, Entries, File Upload, Products, Tags, Users, Variants).
Added the ability to set the label or value for options fields (Checkboxes, Dropdown, Radio).
Added the ability to override “All Form Fields”, “All Non Empty Fields” and “All Visible Fields” variables with Email Notification templates.
Added “Calendar (Simple)” and “Calendar (Advanced)” to Date field display types, replacing “Use Date Picker”.
Added CSS Layers support for front-end CSS.
Fields moved in and out of Group fields now have their content moved as well.
Fields can now be moved to and from Group/Repeater fields.
Added “Required Field Indicator” for forms, to either show an asterisk for required fields (default) or show optional for non-required fields.
Added the form.setPageSettings() function to override page settings in your Twig templates.
Added support for Group and Repeater fields to be added as an existing field, or a synced field in the form builder.
Added support for Repeater fields to use conditions (within their own row of fields).
Added support for all CRM integrations to only fetch data objects for ones that are enabled in the form builder integration settings.
Added keyboard navigation to variable picker dropdown.
Added the ability to type { in variable picker components to autocomplete variables.
Added handle to Email Notifications that can be accessed directly, instead of by their ID.
Added isFinalPage in JSON response for Ajax-based forms.
Added “All Submissions Behaviour” plugin setting.
Added the ability to store custom data (customSettings) on a Notification, to store extra data against a Notification.
Added the ability to modify Notification tabs and field settings (schema) via Notifications::EVENT_MODIFY_NOTIFICATION_SCHEMA.
You can now get submission field values via dot-notation for nested values. e.g. submission.getFieldValue('group.text') or submission.getFieldValue('repeater.1.text')
You can now query submission field values via dot-notation for nested values. e.g. submission.field('group.text').one() or submission.field('repeater.1.text').one()
Integrations can now populate a $context property with arbitrary data that's stored before processing, and accessible in the queue job.
Allow craft.formie.renderJs to set JS attributes for scripts.
Added data-fui-alert-error and data-fui-alert-success attributes on front-end alerts.
Added data-field-label attribute to labels/legends for fields.
Added data-validation to fields, to denote what validators to use for the field.
Added initRow to Repeater field JS events.
Added client-side validation for min/max word/character limit for text fields.
Added the current rowId for the data-repeater-row attribute for Repeater fields.
Added onFormieLoaded JS event.
Added double-clicking a page in the form builder now opens the pages editor.
Added “Recipients” to the Email Notifications index table.
Added Table node to rich text editor settings (used for numerous form, field and notification settings).
Added the ability for Recipients fields to pre-populate the field via their option label.
Added verbb\formie\fields\subfields classes to better handle sub-field inner fields.
Added NestedField::EVENT_MODIFY_NESTED_FIELD_LAYOUT to modify the field layout of Nested or Sub-Fields.
Added verbb\formie\base\CosmeticField class.
Added verbb\formie\base\ElementField class.
Added verbb\formie\base\MultiNestedField class.
Added verbb\formie\base\OptionsField class.
Added verbb\formie\base\SingleNestedField class.
Added verbb\formie\base\SubField class.
Added Field::getValueForVariable() to allow fields to handle logic for variables.
Added Field::getValueForCondition() for handling serialization for condition evaluation.
Added Field::getValueForEmailPreview() for fields to define their own preview for email notifications.
Added Field::fieldKey to represent the handles of a field and any parent field. e.g. group.text or repeater.text.
Added Field:: lowerClassName().
Added Field::isDisabled.
Added Field::enabled to allow you to disable a field.
Added Submission::hasStatusChanged() and Submission::hasSpamChanged().
Changed
Now requires PHP 8.2.0+.
Now requires Craft 5.0.0+.
Updated Vue, Vite, Formkit and all JS dependencies to their latest versions.
Updated Feed Me integration support for Feed Me 6+.
Updated Freeform migration to support Freeform 5+.
Submission content no longer have their own content tables. Content is now in a single content column, in your formie_submissions database table.
Submissions now have Create/Save/Delete user permissions.
Submissions now have separate view and manage user permissions.
Sent Notifications now have “All” or per-form user permissions for View/Resend/Delete.
Formie::log() is now Formie::info().
Integration::log() is now Integration::info().
Updated form builder modals and implement better modal accessibility.
Switched Stripe payments to use “Payment Web Element”, adding the ability to use non-credit card payments like Apple Pay, AfterPay, etc
Revamped front-end validation and removed bouncer.js.
Submissions now send any email notifications that have status conditions when a completed submission is saved.
Field errors now only show their first error when validation fails.
Re-organise validator rules and add client-side match field validator.
data-field-handle for fields now includes the full dot-notation “fieldKey” of the field, including any parent. So name.firstName, group.text or repeater.new1.text.
Captchas for GraphQL mutations now don’t require a mandatory variables parameter to be named the same as their input type.
Querying fields and rows via GraphQL now default to only returned enabled fields.
Front-end form JavaScript now waits until the form has entered the viewable area on the page to be initialized.
The onFormieInit now fires on every initialization of a form, when it’s visible on the page.
Captchas now smartly load whenever they have entered the viewable area on the page. This greatly improves page-load performance when the form is initially hidden (in a modal for example).
Sub-fields now extend from the verbb\formie\base\SingleNestedField and inherit many behaviours from Group fields.
Phone fields are no longer verbb\formie\base\SubField fields.
Sub-field fields now store their field config in their own row in the formie_fields database table, under their own layout (page, row, field).
Update GraphQL interfaces for all fields to explicitly define fields to query. Previously these were automatically done via Reflection.
Integration field mapping now uses field:fieldHandle syntax for fields.
Integration field mapping now uses dot-notation (field:group.text) syntax for nested fields.
Conditions (fields, pages, notifications) now uses field:fieldHandle syntax for fields.
Conditions (fields, pages, notifications) now uses dot-notation (field:group.text) syntax for nested fields.
Submissions element index now show incomplete and spam submissions alongside completed submissions.
Changed form Title references to form Name.
Changed fieldErrors and fieldError elements from ul and li respectively to div.
HubSpot CRM integration now automatically saves the hubspotutk cookie at the time of submission, to be sent with API requests. This means you now no longer need to map a form field to ensure the hubspotutk tracking cookie is sent.
nextPageIndex in JSON response for Ajax-based forms now returns null when submitting on the final page to match nextPageId.
Update Date field’s availableDaysOfWeek to return an array of strings as opposed to a JSON-encoded array for GraphQL.
Email Notification field templates now no longer output a paragraph tag and the field label.
Recipients fields values are now included in Email Notification content.
Updated the intl-tel-input package for Phone field validation and handling.
Date fields now show the required state on the outer label for Calendar and Date Picker display types.
Name field values now return the full name including prefix and middle name (if provided).
Address Country and Name Prefix fields now use their respective label values for string representations of their value.
Adjusted dropzone size for form builder.
Update Payment fields to provide a more client-friendly error message when a payment fails.
Payment integrations can now have their field templates overridden in Form Templates.
Updated email notifications index to show Name and Subject variable previews when used.
Updated stripe/stripe-php to be compatible with (commerce-stripe)[https://github.com/craftcms/commerce-stripe].
Remove Section and Summary fields from rich text editor and variable picker options.
Changed craft\fields\data\MultiOptionsFieldData to verbb\formie\fields\data\MultiOptionsFieldData.
Changed craft\fields\data\OptionData to verbb\formie\fields\data\OptionData.
Changed craft\fields\data\SingleOptionFieldData to verbb\formie\fields\data\SingleOptionFieldData.
Changed craft\fields\data\ColorData to verbb\formie\fields\data\ColorData.
Fixed
Fixed multiple Tippy.js instances in the form builder when field settings contained multiple “info” elements.
Fixed alerts on front-end not respecting theme config.
Fixed Commerce fields initializing when Commerce wasn’t installed or classes exist.
Fixed text-limit character check for emojis on the front-end.
Fixed lack of validation for Date fields and their Default Value when setting to a specific date.
Fixed behaviour of field variable tags in Email Notifications, where referencing a single field produced different output compared to when used in consolidated variables (e.g. “All Form Fields”).
Fixed lack of client-side validation for min/max Number fields.
Fixed lack of server-side validation for min/max Number fields.
Removed
Removed currentPageId from JSON response for Ajax-based forms, as it’s no longer necessary.