Black Friday: 30% OFF on all plans, applied automatically at checkout View plans
Log in Cart

GravityView Changelog

Every recorded version, newest first, with what changed in each one.

Latest 3.9.16 versions

Undated · 6 versions

  1. 3.9.1

    Latest
    6 changes
    Changes
    • This update fixes product totals in Edit Entry and two issues with View links.
    • On Gravity Forms 2.9.24.2 or newer, Edit Entry did not update product prices or the Total when a quantity, product choice, or option changed.
    • Entry links in DataTables Views on the LifterLMS student dashboard did not open the entry in the "My Forms" tab.
    • Views blocked from direct access through code (with a snippet, or by turning on "Prevent Direct Access" for all Views) still appeared in the sitemap, View listings, and previous/next links.
    • 🔧 Updated
    • [Foundation]
  2. 3.9.0

    3 new1 improvement36 changes
    New
    • New Slider input type for Number, Quantity and Total fields allows users to easily select a range of values.
    • Added four modifiers to the `{get}` merge tag, especially helpful for using inside links
    • Added `GravityKit\GravityView\View\EmbedState`, which signs the settings an embed rendered with; add-ons that load a View's results in their own request can apply them with `EmbedState::apply`.
    Improved
    • Improved security when showing List field values in Views, CSV exports and the REST API.
    Changes
    • This release adds a Slider search input for Number fields, four new modifiers for the `{get}` merge tag, and improves security (we recommend updating). It also fixes issues with Edit Entry, embedded Views, the Search Bar and the entry lightbox.
    • `:urlencode` and `:rawurlencode` keep a value whole in a link. Without them, a search for "Research & Development" passed on with `?gv_search={get:gv_search}` is cut off at the "&".
    • `:esc_url` and `:esc_url_raw` make a web address safe to link to, such as ` Go back `. An unsafe address shows nothing.
    • 🔒 Security
    • DataTables Views, and Views that update their results without reloading the page, could expose entries when embedded outside the main page content, such as in a theme template. After updating, clear your page cache and update DataTables to 3.14.2.
    • Anyone could open an entry from an "Embed only" View by going straight to its lightbox address. Entries now open in the lightbox only from a page that shows the View.
    • Views with Enhanced Security created before GravityView 3.1.0 could be shown by Contributors and Authors in their own posts and drafts. Now a post shows these Views only if someone who can edit the View saved it last, or it has not changed since the update.
    • Hardened entry lightbox handling of opening outside links.
    • Edit Entry no longer opens entries from forms the View does not show.
    • Visitors could change a View's sort order by editing the page address, even with column sorting turned off. This now works only when column sorting is on ("Enable sorting by column" in a Table View, or `sort_columns="1"` in the shortcode).
    • Edit Entry
    • Deleting the file from a single-file File Upload field showed "Entry Updated" but kept the file.
    • With [multi-page forms]
    • A form placed below Edit Entry on the same page was filled in with the values of the entry being edited.
    • Since 3.7.0, searching took several seconds on forms with a GP Nested Forms field, or a field that stores several users, posts or entries.
    • Number range search showed every entry when only "From" or only "To" was filled in.
    • Some unusual search links made the View page show an error.
    • The Search Bar's "Number of Columns" setting did nothing. It now sets how many fields share a row when "Arrange Fields" is "Side by side".
    • Since 2.42, the GravityView Search widget in Appearance > Widgets named every field "Gravity Forms Field" and was missing input types for many fields.
    • Since 3.7.0, Views embedded with a shortcode or block ignored some sort settings and the shortcode's `no_entries_form` setting.
    • Search values containing `&`, `#`, `+` or `%`, such as "Research & Development", were cut off or changed when opening an entry, deleting an entry, running a new search, or following a `[gv_entry_link]` link.
    • Entry lightbox
    • Links inside the lightbox, such as `[gv_entry_link]` and the Other Entries field, showed a "No route was found" error.
    • Pressing Escape now closes the lightbox, screen readers now say what it shows, and closing it with unsaved Edit Entry changes now asks first.
    • On sites with plain permalinks, `[gv_entry_link]` links to another View's entries showed "You are not allowed to view this content."
    • Views with caching on could show old entry values for up to a day after another plugin changed the entry.
    • Custom Content fields showed nothing when their content was `0`, such as a [GravityMath]
    • Merge tags in the "Back Link Label" setting weren't being replaced.
    • On translated sites, the date picker calendar and the lightbox buttons stayed in English.
    • GravityView blocks did not load in the block editor on sites hosted on Windows servers.
    • Page caching, minifying and CDN plugins sometimes skipped part of the page.
    • PDFs from [PDF for GravityView]
    • 💻 Developer Updates
    • The View refresh REST route returns a `403` with the `gravityview/embed_unverified` code when a page sends embed settings that no longer verify, such as a page cached before the visitor logged out.
    • Breaking change: the `sort` URL parameter (`?sort=asc` and `?sort= &dir=asc`) is ignored on Views with column sorting off, including in `GravityView_frontend::updateViewSorting` and `get_view_entries_parameters`. To allow URL sorting on a View without turning on column sorting, return `true` from the `gk/gravityview/view/sorting/forced` filter.
    • The `gravityview/view/links/directory` filter passes a third `$add_query_args` parameter, `false` for the base of an entry link.
  3. 3.8.0

    1 new2 improvements37 changes
    New
    • New Views used the Legacy theme instead of the Default theme setting (GravityKit > Settings > GravityView > Appearance), as did Views created with the REST API
    Improved
    • Improved checks when deleting, approving, or rejecting entries from the front end.
    • Improved how embedded Views apply their Search Field and Search Value, so they show only the entries they are set to show (sites using the GravityView Widget for Elementor plugin also need its next update).
    Changes
    • This release adds a "Delete all Views" button and a "Use as Page Title" setting for Edit Entry, strengthens security for embedded Views and entry actions (we recommend updating), and keeps your Views when GravityView is deleted. It also fixes many issues with Views built with the [GravityKit MCP]
    • "Delete all Views" button under GravityKit > Settings > GravityView > Delete Views that permanently deletes every View, including trashed ones, without affecting forms, entries, or settings.
    • "Use as Page Title" setting on the Edit Entry tab to choose whether the Edit Entry Title also replaces the page and browser tab titles (on by default, so existing Views keep their titles).
    • Settings to choose what an embedded View shows when its search value is empty, such as when a `{get:customer}` merge tag has no value
    • "When the search value is empty" on the View field, which now shows no entries by default ("is not" searches still show every entry)
    • `search_value_empty="none"` in the `[gravityview]` shortcode
    • "Show no entries" in the View block and the Elementor, Divi, and Beaver Builder modules, selected by default for new block, Elementor, and Beaver Builder embeds (new Divi modules start at "Not set")
    • Existing shortcode, block, and page builder embeds keep showing every entry, and an admin notice lists the pages that use them.
    • 🔒 Security
    • Views built or cloned with the GravityKit MCP could show entries their settings were meant to restrict, or allow REST access that was turned off.
    • Page and browser tab titles on Views with an Edit Entry Title could show entry values to visitors not allowed to edit the entry.
    • Issues when deleting GravityView from the Plugins page
    • All Views, entry approval statuses, and GravityView entry notes were permanently deleted, and embeds of Views with Enhanced Security stopped working after reinstalling
    • A PHP fatal error was logged ("Class "ActionScheduler_Lock" not found").
    • Search Operators other than "Is", "Is Not", and "Contains" in the View block, the View field, the Elementor, Divi, and Beaver Builder modules, and the `[gravityview]` shortcode matched any entry containing the Search Value, so "Not Equal" and "Not In" listed the entries they should have excluded.
    • A search value of `0` in the `[gravityview]` shortcode or an embedded View was ignored, so the View listed every entry instead of those matching `0`.
    • Issues with Views built with the GravityKit MCP
    • Edit Entry fields were hidden from users editing their own entries
    • Unsaved View settings, such as "Show only approved entries", showed as empty instead of their default values
    • Every value of the "No Entries Behavior" setting was refused
    • View and field settings turned on or off with text values such as "yes", "no", or "off" were not applied correctly, and some showed the wrong state in the View editor
    • Single Entry fields were refused on Views whose Single Entry layout differs from the Multiple Entries layout
    • Cloned Views lost their Multiple Forms joins and unions, Layout Builder row settings, and backslashes in their title and settings.
    • Cloning a View from the Views list removed backslashes from its title and settings, such as field labels.
    • Issues with restoring View revisions
    • Advanced Filtering conditions, Multiple Forms joins and unions, and Layout Builder row settings were not restored
    • Restoring a revision saved before GravityView 3.0.0 removed the View's form, layouts, fields, and widgets
    • On sites that limit revisions, restoring the oldest kept revision did not restore View settings, and the notice showed no date
    • The revision saved by a restore held the View settings from before it, so the Revisions screen showed the wrong changes.
    • Issues saving Views in the View editor
    • Publishing a draft View left it as a draft when the View editor showed Advanced Custom Fields (ACF) fields
    • Saving a draft was blocked until every required ACF field in the View editor was filled in
    • Saving by pressing Enter, or by clicking a save button while WordPress was autosaving, asked to confirm leaving the page and saved only after confirming.
    • Issues with Custom CSS and styles
    • Custom CSS could not override the layout's styles, such as table cell padding
    • On Views using the Vantage theme, Custom CSS could not override many of the theme's styles, and rules starting with the layout's class, such as `.gv-table-view td`, had no effect on the Single Entry page or in the entry lightbox
    • On Views using the Vantage theme, Custom CSS containing a Google Fonts `@import` lost all of its rules, and a ` ` tag pasted around Custom CSS broke its first rule
  4. 3.7.0

    40 changes
    Changes
    • This release makes "Search Everything" and sorting use what fields display rather than what they store, fixes several security issues around entry visibility and exports (we recommend updating), and resolves many issues with embedded Views, search, multi-page Edit Entry, and combined forms.
    • ✨ Improved
    • Broader "Search Everything" matching that covers what fields display, not just what they store
    • Names of users, posts, entries, and database table rows that Dynamic Lookup, GP Populate Anything, and GP Nested Forms fields store by ID
    • Labels of choice fields, such as Drop Down and Checkboxes
    • Fields inside Repeater fields.
    • Sorting by fields that store the ID of a user, post, entry, or database table row, which now orders entries by the displayed name, including in Views that combine forms with the [Multiple Forms]
    • 🔒 Security
    • Views embedded with a `{user:...}` merge tag in their search (such as `search_value="{user:ID}"`) showed every entry to logged-out visitors instead of none.
    • The Entry and Entry Field blocks, the `[gventry]` and `[gvfield]` shortcodes, entry embeds (oEmbed), and the REST API's single entry route could display entries that the View's filters exclude, such as entries hidden by Advanced Filtering conditions or by the "Show only entries created by the currently logged-in user" setting.
    • Entries not listed on a page could be opened in its lightbox when the page also contained an escaped `[[gravityview]]` shortcode or a secured View embedded without its secret.
    • The Single Entry page heading of a View embedded in a reusable block could show the title of an entry the visitor wasn't allowed to view.
    • Search Bar fields restricted to logged-in users could still filter results for logged-out visitors.
    • A GravityView Search widget left in the WordPress Inactive Widgets area still allowed visitors to search by its fields.
    • Some values in CSV and TSV exports, including bulk action exports and the attachments manifest, could run as spreadsheet formulas when the file was opened in a spreadsheet application.
    • Pages with a Search Bar widget loaded more slowly after the GravityView 3.5.0 update, increasingly so with each search field, form field, and user on the site.
    • Custom CSS that arranged List or Layout Builder entries into columns with the Legacy theme, such as the grid CSS from our documentation, displayed every entry in a single column after the GravityView 3.5.0 update.
    • Entry links set to open in a lightbox, such as `[gv_entry_link lightbox="true"]`, opened a full page instead in [DataTables]
    • Single Entry Title issues
    • Single Entry pages and the entry lightbox had an empty title, and the Breadcrumbs block showed "(no title)", when the Single Entry Title setting was empty (the default) or its merge tags had no value for the entry — Single Entry pages now fall back to the page's title
    • Single Entry pages of an embedded View with a Single Entry Slug showed the page's title instead of the Single Entry Title, and GravityView Social Sharing & SEO gave them the page's SEO title and the wrong canonical URL
    • Views embedded with a merge tag in their search (such as `search_value="{user:ID}"`) showed the page's title instead of the Single Entry Title and couldn't open entries in a lightbox.
    • Issues on pages that display more than one View or entry embed
    • When the same View was embedded more than once, an embed could show another embed's search, page size, or other shortcode settings, lose its widgets, or refuse to open its own entries in a lightbox
    • When the same View was embedded more than once, its Single Entry pages displayed the entry once per embed
    • A View lost its Search Bar widget, pagination, and other widgets when it followed an Entry block or `[gventry]` shortcode showing a Map View entry, or an entry displayed through a theme's legacy single entry template
    • A View embedded in another View's field, such as a Custom Content field, pushed the parent View's remaining entries outside the View.
    • Issues in Views that combine forms using the Multiple Forms extension
    • With entry caching enabled, Views combining many forms through joins or unions could show another View's entries and ignore searches
    • With entry caching disabled, a page showing two Views of the same form, one of which combined other forms, could display the first View's entries in the second View
    • Sorting by a field that one of the combined forms lacks ordered that form's entries by entry ID and applied the second sort field as the first
    • The Entry and Entry Field blocks and the `[gventry]` and `[gvfield]` shortcodes showed nothing for entries from a form combined through a union.
    • Issues with the First and Last entry options
    • The Entry Link block and `[gv_entry_link]` shortcode set to First or Last could link to an entry from a different View on the same page, and Last stopped at the end of the View's first page
    • The Entry and Entry Field blocks and the `[gventry]` and `[gvfield]` shortcodes showed the first entry when set to Last, and both First and Last shifted with the View's current page.
    • Search Bar widget issues
    • Chained Selects fields didn't appear, and searching by them listed every entry
    • Dropdowns didn't show the Drop Down field's Placeholder as their first option
    • With "Search Everything" limited to visible fields, searching by a field the View didn't display (including through a GravityView Search widget) returned every entry.
    • "Search Everything" issues
  5. 3.6.0

    1 improvement1 fix1 removed30 changes
    Improved
    • Improved security when deleting uploaded files in Edit Entry.
    Fixed
    • Fixed a data disclosure issue in Edit Entry, limited to users already allowed to edit the entry.
    Removed
    • Deprecated `GravityView_Edit_Entry::delete_file` and removed GravityView's handler for the `rg_delete_file` AJAX action, since Edit Entry now deletes removed files when the entry is updated.
    Changes
    • This update makes removing files in Edit Entry safer, includes security fixes, and resolves issues with Edit Entry, Populate Anything fields, search, and View layouts. We recommend updating.
    • Note: GravityView now requires Gravity Forms 2.9.4 or newer.
    • ✨ Improved
    • File removal in Edit Entry, which now takes effect only after clicking Update (leaving the page without updating keeps the files).
    • 🔒 Security
    • The "Hide View data until search is performed" setting did not hide entries from the REST API, CSV and TSV exports, or `[gravityview detail]` counts, and blank searches or searches on fields the View did not offer still showed entries.
    • Issues with choice fields populated by Populate Anything
    • Saving an entry in Edit Entry changed or erased choices beyond the first 501, the default maximum Populate Anything loads
    • Inline editing with GravityEdit did not offer saved choices that were not among the loaded choices, so saving erased them
    • Merge tags used outside Custom Content fields showed the stored value instead of the label
    • Custom entry slugs built from these fields switched between the stored value and the label (they now always use the label).
    • Issues in Edit Entry
    • Conditional logic restored the wrong value to a dynamically populated field whose parameter name matched an entry property, such as `ip`
    • Calculation fields stopped updating after the first save when the entry had no stored value for them
    • With Gravity Forms 3.1.2, files uploaded to a multi-file field were rejected when the form was resubmitted after a validation error
    • Multi-file upload errors showed "Array" instead of the message for each file.
    • Gravity Flow assignees could not delete uploaded files on User Input steps while GravityView was active.
    • DataTables column filters had no effect after updating to GravityView 3.5.0.
    • View settings added by add-ons, such as GravityMath's Calculation Row Background, went missing from the View editor in GravityView 3.0.
    • Search Bar widget issues
    • A large gap appeared between each search field and the Search button in the Horizontal layout on Views not using the Vantage theme
    • Labels for radio, checkbox, date, date range, and number range fields ignored the theme's label styling and appeared at body text size
    • Searches that did not specify a search mode ignored the Search Mode saved on the View and matched any field.
    • Layout issues
    • List and Layout Builder Views set to more than one column showed every entry in the first column
    • Entries in Vantage Layout Builder Views lost the space between them
    • Vantage Table Views grew wider than the page when a field held long text instead of wrapping it within the column widths.
    • 💻 Developer Updates
    • 🔧 Updated
    • [Foundation]
  6. 3.5.0

    4 new36 changes
    New
    • Added the `GET /wp-json/gravityview/v1/views/{view_id}/refresh` endpoint, used by GravityKit layouts and extensions to fetch a View's entries, entry total, and page window for a given query, and enabled per layout with the `gk/gravityview/view/refresh/live` filter (documented in `docs/view-refresh.md`).
    • Added sorting by a joined form's field on any layout with a `sort[ : ]` URL parameter, ignoring keys that name a form the View does not join.
    • Added the `gk/gravityview/view/output` filter to modify a View's fully rendered HTML before it is returned.
    • Added the `gk/gravityview/search/field/default-value` filter to provide or override a Search Bar field's default value.
    Changes
    • This release adds default values for Search Bar fields, improves screen reader navigation, and fixes several search, sorting, and display issues.
    • Note: GravityView now requires WordPress 6.5 or newer.
    • Default Value setting for Search Bar fields, which pre-fills the field and filters the View until a visitor searches, offering a picker of choices for fields that have them.
    • "No value" option setting for radio button search fields, adding a choice that clears the field since radio buttons cannot otherwise be deselected.
    • ✨ Improved
    • Screen reader navigation
    • The Search Bar is a search landmark, the entries are a named region, and the View title names both
    • Pagination arrows and First/Last links have accessible names
    • Radio, checkbox, date, date range, and number range Search Bar fields announce their field name, which screen readers previously skipped
    • Links search fields read as a named list of choices, announcing the field name and the active option.
    • Readable query keys in search, sort, and pagination links (for example, `sort[3]` rather than `sort%5B3%5D`).
    • Vantage theme styling of DataTables Views: pagination buttons match the rest of GravityView, the page-length control sits at the end of the toolbar, and focus outlines are fully visible.
    • Keyboard and screen reader accessibility of conditional logic: focus stays in place when adding or removing a condition, the AND/OR switch is a single control, and date fields and buttons identify the field they belong to.
    • Wider Custom Value box in narrow settings panels.
    • Issues in Views that combine entries from multiple forms ([Multiple Forms]( extension)
    • A Search Bar field from a joined form searched the View's main form instead, matching the wrong entries or none at all
    • Filters on a joined form's fields did not work with relative dates such as "yesterday"
    • Sorting by a field did nothing on sites running Gravity Forms older than 3.0.0.1.
    • Vantage theme issues in the Search Bar
    • A single-checkbox search field showed its checkbox below the field name instead of beside it
    • Fields in the Advanced Search section ignored the Search Bar's grid, losing their column widths, spacing, and single-column layout on mobile.
    • Choosing an option in a Links search field cleared the other search fields' values.
    • Views added to a block theme's template or template part through the Site Editor were not recognized as part of the page.
    • The `:diff` merge tag modifier (for example, `{date_created:diff}`) was off by the site's UTC offset, so an entry created two hours ago could show as "2 hours from now".
    • A `form:` merge tag showed a value from the main form when the target form no longer had that field.
    • Filters on product prices matched the wrong entries, especially with currencies that use a comma for decimals or place the symbol first (such as Pound Sterling).
    • The page scrolled when a date picker calendar was opened or closed.
    • 💻 Developer Updates
    • Search Bar fields from a joined form now render the matching `filter_ : ` key.
    • The `gk/gravityview/view/entries/query/sorting-parameters` filter now provides a `form_id` key on each sorting parameter, identifying the form the sort column belongs to.
    • The `{gv_entry_link}` merge tag wrote a deprecation notice to the debug log every time it rendered.
    • Search Bar fields that hold a group of inputs (radio, checkbox, chained select, date, date range, number range, and entry date) now render as ` ` with a ` ` instead of a ` ` with a ` `
    • Class names, IDs, input names, and the per-choice `.gv-check-radio` labels are unchanged
    • Custom CSS works with both versions when it leaves the element name off the class (`.gv-search-box`, not `div.gv-search-box`) and targets both field-name elements (`.gv-search-box > label, .gv-search-box > legend`).
    • 🔧 Updated
    • [Foundation]

Changelog published by the developer, in their original language.