github verbb/formie 4.0.0-beta.4

pre-release4 hours ago

Added

  • Add conditional submission status rules in the form builder Settings → Submissions tab, evaluated on the front end during submission processing. (#508)
  • Add repeater sub-field reference support with explicit row scope (first, last, index, all, count, custom row expressions) for variable tokens, notifications, conditions, and integrations. Repeater nested fields now appear once in the variable picker, with row targeting configured in the variable settings popover. (#1728, #1255, #2099, #1888, #2338)
  • Add conditional redirect rules under Behaviour → After Submit, with an optional Enable Redirect Rules toggle that overrides the default submit action when conditions match. (#830)
  • Add failed notification alert recipients by Craft user group and additional email addresses. (#2226)
  • Add per-rule validation message overrides via a Validation form builder tab and the validationMessages field setting, with legacy errorMessage values migrated to validationMessages.required. (#1269)
  • Add plugin-wide default validation message templates under Settings → Defaults → Field Defaults.
  • Add ValidationMessagesHelper and client data-formie-validation-{key}-message attributes for overridden validation copy on the front end.
  • Add unique-value, match-field, text-limit, number-limit, email-format, blocked-domain, options-limit, and file-upload validation message overrides on supported field types. (#1475)

Changed

  • Move field validation settings from the Settings tab into the Validation tab across all field types.
  • Standardize validation message placeholders to {label} across PHP validators, front-end validators, and translations (legacy {name} / {attribute} aliases remain at runtime).
  • Replace text-limit counter {startTag}{num}{endTag} translation strings with Craft plural syntax and wire translated counter copy on the front end. (#2526)
  • Show context-aware text-limit counter copy for empty (allowed), under-limit (left), and over-limit states on the front end and in control panel submissions.
  • Add per-field validation error position on the Appearance tab, with form- and plugin-level defaults (Above Input / Below Input).
  • Resolve nested Date/Name/Address sub-field validation messages from their parent field; stop copying legacy errorMessage onto Date sub-fields.
  • Wire client-side validation message overrides for file-upload and checkbox/radio options-limit rules via data-formie-validation-*-message attributes.
  • Extend front-end t() to resolve Craft-style {param, plural, …} and {param, number} message syntax.

Fixed

  • Fix option field values appearing empty in notification “All Form Fields” summaries when options were overridden via Twig setFieldSettings(), by applying persisted submission snapshots when loading forms for email/export and falling back to stored option values when labels cannot be resolved. (#2350)
  • Fix submission status filters in the control panel returning no results when submissions were saved without a persisted statusId, and resolve status queries by display name as well as handle. (#2687)
  • Sanitize notification queue job debug data to valid UTF-8 before re-serializing failed jobs, preventing queue rows from becoming unreadable when submission content contains invalid byte sequences. (#2344)
  • Improve notification mailer failure logging when Craft returns no transport error message, including CLI/queue context to help diagnose cron-only send failures. (#2610)

Don't miss a new formie release

NewReleases is sending notifications on new releases.