This update brings a large number of significant new features, improvements, and bug fixes.

Bricks 1.9.2 focuses on extending the capabilities of the Form element in various areas. Let’s have a look at the most significant changes …

Save form submissions in your database

The highlight, with more than 11,000 upvotes, is the ability to save form submissions in your database.

This implementation saves the submitted form data in a custom database table (bricks_form_submission). It is not meant to perform CRUD operations on other post types. For this, we plan to provide new form actions to create & update your post types in the future.

New spam protection integrations: hCaptcha & Turnstile

To help you further protect your form submissions from pesky spam, Bricks now integrates with hCaptcha & Turnstile (Cloudflare).

More Form element highlights:

  • Immediate input validation: By default, Bricks validates the form data after the form has been submitted. Certain field types now allow immediate validation when the input loses focus (
  • Set default value: Set a default value for your form fields (dynamic data is supported)
  • Set “name” attribute value: Provide a custom name value for your form fields
  • New HTML field type: Insert custom HTML (meant for decorative text, not user input). Runs through wp_kses_post.
  • New {{all_fields}} tag: Include all submitted form data in the email content using this new tag.
  • New “Remember me” field type: Use for your custom login form.
  • New form actions: “Lost password” & “Reset password”
  • New interaction triggers: Form submit, Form success, Form error (

You’ll also find a new “Scroll to” interaction action (, which works well with the new form-specific interaction triggers.

Custom Authentication Pages

Together with the new “Lost password” and “Reset password” form actions, Bricks introduces Custom Authentication Pages.

Available in your dashboard under Bricks > Settings > General. From there, you can select the custom pages you want to use for user login, registration, lost & reset password.


More versatile “Hook” template condition

Introduced in 1.9.1, the “Hook” template condition allows you to render your section template on any WordPress action:

This worked only globally, though. We reworked this logic. Now you can select where to apply your section template (e.g., the entire website) and create another template condition to exclude the section template on an individual page, for example. Just make sure to enter the “Hook name” in every template condition you add.

There is more to explore in Bricks 1.9.2, though. Various elements received new features and improvements, as you can see in the changelog list below.

Full changelog

  • Save form submissions in databaseNew
  • Form element: Integrate hCaptchaNew
  • Form element: Set default field valueNew
  • Form element: New {{all_fields}} tagNew
  • Form element: Integrate Turnstile (Cloudflare)New
  • Form element: Add “name” attribute to fieldsNew
  • Form element: Add “HTML” field typeNew
  • Interactions: New triggers for Form Submit, Form Success, Form ErrorNew
  • Form element: Immediate input validation & error message (when input loses focus)New
  • Form element: New actions “Lost password” & “Reset password”, plus new “Remember me” form field (for user login)New
  • Interactions: New “Scroll To” actionNew
  • Instagram Feed element: Support carousel & video postsNew
  • Instagram Feed element: New settings for image object-fit, height, widthNew
  • Nestable slider: Focus optionNew
  • Video element: YouTube “Do not track” settingNew
  • Cart Items element: New image “Height” controlNew
  • New dynamic data tag: site_loginNew
  • New filter: bricks/assets/generate_css_from_elementNew
  • Bricks settings: Builder > Toolbar logo link > Custom URLNew
  • Force Bricks query rerun: Via query argument “bricks_force_run” set to trueNew
  • Form: Submit button styles while sending (loading spinner & icon)Improve
  • Accessibility: Add empty “alt” attribute to “author_avatar” DD tagImprove
  • Progress bar: Ensure “label” uses cursor: pointer (if inside a link)Improve
  • Remove “xml” tags from Bricks SVG filesImprove
  • Template conditions: Section template “hook” now available for all conditions (not just globally as before)Improve
  • WPML: Exclude certain controls that don’t need translation (i.e. customTag)Improve
  • Form element: Only strip-off “p” and “br” HTML tags in checkbox options valueImprove
  • WooCommerce: Update template files for WooCommerce 8.2.0Improve
  • Update Font Awesome to version 6.4.2 (from 6.0)Improve
  • Builder: Popup backdrop not visible when popup content is emptyImprove
  • Dynamic data “num_words” filter now supports :format (to keep HTML)Improve
  • Prevent Dropdown content & Nav items element from being copy & pasted (as they are non-deletable)Improve
  • Updated: Australian English, German & Hungarian translationImprove
  • Builder access: “Edit content” capability can drag & dropFix
  • DD tag “url_parameter” not working if the value of the key is an arrayFix
  • Dropdown: Missing ::before (needed for content transform-y)Fix
  • Form: Default email message doesn’t match once file upload field existsFix
  • Instagram feed: Aspect-ratio issue in SafariFix
  • Nav Nestable: Anchor links with a slash not working on the same pageFix
  • Pagination element: Incorrect current page on home page if target query is not the main queryFix
  • “Is main query” used in singular page causes infinite loop (frontend)Fix
  • Query loop post_type with products in the search result template always merged with the search stringFix
  • Slider control: Custom min, max, step set under units not workingFix
  • Single post default template: Post content styles missing if no content (external files)Fix
  • WooCommerce: Bricks query on archive page not explicitly destroyedFix
  • Product reviews element: Missing stars styling (in builder)Fix
  • Product content: Edit link caused PHP errorFix
  • AJAX add to cart: Quantity buttons not working if product loops after infinite scroll or AJAX paginationFix
  • SEOPress Pro: Conflict with “woo_cart_remove_link” DD tagFix
  • Social Sharing: URL conflict when using the “TI WooCommerce Wishlist” pluginFix
  • WPML: Links translation not copied properlyFix
  • WPML: Links within repeaters caused PHP errorFix
  • Builder: Template popup: Select dropdown background-color (Safari 17)Fix
  • Builder: Element placed outside of CSS grid after drag & dropFix
  • Code control: Undo/redo issuesFix
  • Code control: Wrong cursor position after resizing the panelFix
  • Comments: Unapproved comments show for non-logged-in visitorFix
  • Background: “Custom size” dynamic data not renderedFix
  • Header/Footer templates: Drag element into empty container or section not workingFix
  • Archive template: “Post title” element causes error message after renaming CPT slugFix
  • Error template not applied for permalink structure /%category%/%postname%/Fix
  • Gradient color set via dynamic data tag not working inside template (loading method: external CSS files)Fix
  • Form element: User registration doesn’t auto-generate password (if submitted empty)Fix
  • List element: Individual list item icon applied to all subsequent itemsFix
  • Nestable Slider: Items to show > 1 & type “slide” auto-height & alignment issueFix
  • Rich text: Shortcodes don’t render on canvasFix
  • TranslatePress: URL issuesFix
  • WooCommerce: Add to cart/cart quantity input selects text on double clickFix
  • WooCommerce: Edit Address language issue (e.g. Norwegian, Swedish)Fix
  • WooCommerce: Cart items quantity superfluous margin-bottomFix
  • WooCommerce Account page element: Wrong controls for navigation border & box-shadowFix
  • WooCommerce Product Short Description element: sprintf issue and link formattingFix
    All releases