Skip to content

v5.0.0

Choose a tag to compare

@kjmartens kjmartens released this 22 Jan 21:34
· 511 commits to v4 since this release
22d6414

Warning

If upgrading from Freeform 4, please see the special upgrade guide before proceeding.

Added

  • Form Builder
    • Fields can be saved as Favorites for quick use in other forms.
    • Fields from other forms can be searched and reused in your form.
    • A Field Type Manager has been added to the form builder. It allows you to show/hide field types, arrange them into groups, and color code them.
    • Created/Updated dates and author information are now stored for each form and visible inside the form builder.
    • The Limited Users feature allows you to easily customize the form builder experience for specific users or groups, ensuring that these users are not overwhelmed by advanced settings and prevents them from accidentally breaking your forms or site.
    • Configure email notifications in the form builder using complex conditional rules based on field data.
    • A wide range of form builder settings can now have default values set for them, and can also be locked to that value. For example, you can force the Tailwind 3 formatting template to be used for every form.
  • Fields
    • The Group field type allows you to nest multiple fields inside. Additionally, conditional rules can be applied to Group fields.
    • Fields being populated with Element or Predefined data can now have the data converted to Custom options so they can be modified, added to, removed, reordered, etc.
    • Fields can now be individually encrypted.
    • Custom field types are available to be created now.
  • Email Notifications
    • Configure email notifications in the form builder using complex conditional rules based on field data.
  • Integrations
    • Captchas now include a setting inside the form builder to force a country code, e.g. en, de, etc. If left blank, the locale will be auto-detected.
  • Templating
    • The Template Overrides feature enables modification of attributes for the form, fields, and buttons, as well as overriding field labels, values, and instructions at the template-level.
    • The Settings object allows you to access all of the form's settings assigned to it in the form builder, e.g. form.settings.errorMessage.
    • The Multipage All Fields formatting template replaces the Bootstrap 5 Multipage All Fields template.
    • The labels and labelsAsString methods are now available for all option field types. This allows you to choose between displaying option labels instead of values when loading submission data in front end or email notifications.
    • The implements method is available to all fields for Twig-friendly implementation checks, e.g. field.implements('options').
    • The global freeform variable allows shorthand for template queries, e.g. freeform.form instead of craft.freeform.form.
  • Stripe Payments
    • The Pro edition now includes fresh support for the newer Stripe Payment Element.
    • Support for Stripe Link, Apple Pay, Google Pay, PayPal (within Europe), bank payments, deferred payments and many other options.
    • Ability to include more than one Stripe payment element field in a form. When used with conditional rules, you can show/hide one Stripe element at a time (e.g. use a dropdown field to allow the user to choose between one-time or recurring payments).
  • Surveys & Polls
    • The Freeform Surveys & Polls plugin features are now included in the Pro edition of Freeform. Please see the special upgrade guide before proceeding.

Changed

  • Control Panel
    • The Dashboard and Forms pages have been combined and redesigned.
    • The Email Notifications subnav menu item has been renamed to Notifications.
    • All settings and references of behaviour have been updated to behavior.
  • Form Builder
    • Completely redesigned the form builder.
      • Settings and other features are now in full-page tabs to allow for lots of room to configure.
      • Fields are specific to forms and added by dragging fresh field types into the layout.
    • Reorganized all form settings and behaviors into multiple subsections of a unified Settings tab.
    • Reorganized Email Marketing, CRM, Element, Stripe, Captcha, POST Forwarding and Google Tag Manager settings into multiple subsections of a unified Integrations tab.
    • The Conditional Rules tab has been greatly improved to include a field map along with visual cues, making configuration faster and less confusing.
    • Some of the option values for the Duplicate Check (formerly Limit Form Submission Rate) setting have been changed.
  • Fields
    • Fields are now created and specific to each form (vs. being global to all forms).
    • Fields can be saved as Favorites or searched upon to be reused in other forms.
    • Fields can now be changed to other field types at any point, but be aware that data loss could occur when switching incompatible field types.
    • The Checkbox Group field type has been renamed to Checkboxes (and checkboxes in formatting templates).
    • The Radio Group field type has been renamed to Radios (and radios in formatting templates).
    • The Select field type has been renamed to Dropdown (and dropdown in formatting templates).
    • The field type handles of cc_details, confirmation, file_drag_and_drop, multiple_select, opinion_scale, and rich_text have been renamed to credit-card, confirm, file-dnd, multiple-select, opinion-scale, and rich-text, respectively.
    • The Dynamic Recipients field type has been replaced with the User Select feature, which provides the ability to assign a notification layer to any Dropdown, Checkboxes, Radios, or Multi-Select field types.
    • The Email Marketing/Mailing List special field type has been replaced with the ability to assign the Email Marketing integration to any existing Checkbox or Hidden field. This will also allow you to keep a record in Freeform of whether the mailing list was subscribed to by the user.
    • The reCAPTCHA v2 Checkbox and hCaptcha Checkbox special fields are now inserted into the form automatically (before the Submit button).
    • The Submit and Save & Continue Later buttons are now automatically inserted at the end of each form page.
    • The Opinion Scale field type markup for manual templating has been adjusted slightly.
  • Email Notifications
    • The form builder now has a Notifications tab dedicated to configuring all types of email notifications (except for template-level ones).
  • Integrations
    • The Element Connections feature is now referred simply to Element integrations.
    • Element integrations are now set up in the Freeform settings area and then configured per form.
    • Webhook integrations are now configured per form (but still set up initially in the Freeform settings area).
    • Integrations with more than one type have been unified with expanded functionality:
      • Salesforce Leads and Salesforce Opportunities are now in a single Salesforce integration.
      • Pipedrive Leads and Pipedrive Deals are now in a single Pipedrive integration.
      • Zoho Leads and Zoho Deals are now in a single Zoho integration.
    • Integrations that map to more than one endpoint allow more flexibility when choosing which endpoints to map to.
    • The Salesforce integration has been changed to OAuth validation (instead of username/password).
    • The Pipedrive integration has been changed to OAuth validation.
    • The dotmailer integration has been updated and renamed to Dotdigital.
    • All MailingList/mailing_list, etc, references in the code and database have been renamed to EmailMarketing/email_marketing, etc.
  • Settings
    • The Formatting Templates, Email Templates and Success Templates settings pages have all been combined into a single Template Manager settings page.
    • Reorganized and adjusted settings pages.
    • The Limit Form Submission Rate setting has been renamed to Duplicate Check. Available options have been revised and renamed for clarity as well.
  • Spam Protection
    • The Freeform Honeypot and Javascript Test features have been decoupled, overhauled, and set up as integrations. They can now be enabled/disabled and configured per form. The Javascript Test is now a simpler approach that will streamline use with caching or headless implementations.
    • The Javascript Enhancement feature has been renamed to Javascript Test.
    • Captchas are now stored as integrations, can have multiple configured per site, and can be turned on/off and further configured at the form level inside the form builder, e.g. stricter settings, different behavior, etc.
    • The reCAPTCHA v2 Checkbox and hCaptcha Checkbox special fields are now inserted into the form automatically (before the Submit button).
  • Templating
    • The suppress parameter (for suppressing email notifications and integrations when editing submissions on the front end) has been renamed to disable and has had the dynamicRecipients, submitterNotifications, connections parameter names changed to userSelectNotifications, emailFieldNotifications, and elements, respectively. An additional conditionalNotifications parameter has been added to account for the new Conditional Notifications feature.
    • All formatting templates have been updated and improved.
    • The Bootstrap 5 Multipage All Fields formatting template has been transitioned to a "Basic" non-Bootstrap version, now called Multipage All Fields.
    • Form settings and behaviors can now all be accessed in templates via freeform.settings.settingName.
    • The option.checked property has been updated to an approach that compares option.value to field.value.
    • The disableRecaptcha parameter is now disableCaptcha.
    • All references to loading (text and/or spinner indicator displayed on the submit button) are now processing.
    • All references to spinner (spinner indicator displayed on submit button) are now processingSpinner, etc.
    • The limitSubmissions parameter has been renamed to duplicateCheck and the values have been renamed for clarity.
    • The submissionLimitReached property in the Form object has been renamed to duplicate.
    • All references to freeform-file-drag-and-drop for CSS overrides have been updated to freeform-file-dnd.
  • Javascript
    • The defaults for errorClassBanner, errorClassList, errorClassField and successClassBanner plugin options for JS overrides have been adjusted to freeform-form-errors, freeform-errors, freeform-has-errors and freeform-form-success, respectively (ff- changed to freeform-).

Deprecated

  • The PHP Sessions and Database Table options for the Freeform Session Context setting are deprecated and are planned to be removed in Freeform 6. Encrypted Payload continues to be the assumed and recommended approach, but can still be overrided to PHP Sessions or Database Table in project config.

Removed

  • Control Panel
    • The Field Manager area (Freeform → Fields) has been removed, as fields are no longer globally shared unless they are saved as Favorites.
    • The Dashboard page has been removed in favor of a redesigned Forms page.
    • Exporting "shortcuts" from the Dashboard is no longer available with the removal of the Dashboard page, but many other exporting options are available.
    • The What's New feature has been removed in favor of using Craft's Announcements feature.
    • The Resources area inside the Freeform control panel has been removed.
    • The Form Builder Tutorial and Install Demo Banner settings have been removed.
    • The Stats widget has been removed as it isn't very relevant anymore.
    • The Form Values widget has been removed.
  • Settings
    • The Access Fields and Manage Fields permissions have been removed as they are no longer applicable.
    • The Display Order of Fields in the Form Builder setting has been removed as it is no longer applicable.
    • The following Project Config items have been removed due to the improvements to Form Builder defaults:
      • defaultTemplates - use includeSampleTemplates: true under defaults: instead.
      • renderFormHtmlInCpViews - use previewHtml: true under defaults: instead.
      • twigInHtml - use twigInHtml: true under defaults: instead.
      • twigInHtmlIsolatedMode. - use twigIsolation: true under defaults: instead.
      • formattingTemplate - use value: basic-light/index.twig under defaults:settings:general:formattingTemplate: instead.
      • ajaxByDefault - - use value: '1' under defaults:settings:processing:ajax: instead.
    • The freeformHoneypot, freeformHoneypotEnhancement, customHoneypotName, customErrorMessage, recaptchaBehaviour, recaptchaEnabled, recaptchaErrorMessage, recaptchaKey, recaptchaSecret, recaptchaLazyLoad, recaptchaMinScore, recaptchaSize, recaptchaTheme and recaptchaType settings have been removed from Project Config, as Honeypot and Captchas are stored as integrations now.
    • The Additional Optional Checks setting for the Update Warnings & Notices feature has been removed.
    • The Freeform Session Context setting has been removed. Encrypted Payload continues to be the assumed and recommended approach, but can still be overrided to PHP Sessions or Database Table deprecated options in project config.
    • The freeform_lock database table has been removed as it is no longer used.
  • Templating
    • The Bootstrap 3, Bootstrap 4, Bootstrap 5 Multipage All Fields and Tailwind 1 formatting templates have been removed.
    • The overrideValues parameter for Form queries has been removed. Please use the value parameter in the new Template Overrides feature.
    • The option.checked property has been removed. Please use and compare option.value to field.value.
    • The disableRecaptcha template parameter has been removed. Please use disableCaptcha instead.
    • The limitFormSubmissions property has been removed from the form object. Please use form.settings.limitSubmissions instead.
    • The freeform/fields/create field creation console command has been removed as it is no longer applicable.
    • The following attribute control parameters have been removed and replaced by accessing them via the new attributes object: inputClass, submitClass, rowClass, columnClass, labelClass, errorClass, instructionsClass, class, id, name, method, and action.
  • GraphQL
    • The extraPostUrl, extraPostTriggerPhrase, gtmId, and gtmEventName fields have been removed from FreeformFormInterface in GraphQL. Please use the new interface instead (TBD).
    • The inputAttributes, labelAttributes, errorAttributes, and instructionAttributes fields have been removed from FreeformFormInterface in GraphQL. Please use the FreeformAttributesInterface instead.
    • The hash field has been removed from FreeformFieldInterface in GraphQL as it is no longer relevant.
  • Stripe Payments
    • The Stripe Payment feature has been removed and replaced by all-new support for the newer Stripe Payment Element.