3.8.0 on October 15, 2026
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, View revisions, Custom CSS, DataTables, Edit Entry, and Multiple Forms.
🚀 Added
- "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
- 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).
- 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.
🐛 Fixed
- 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
0in the[gravityview]shortcode or an embedded View was ignored, so the View listed every entry instead of those matching0. - Issues with Views built with the GravityKit MCP:
- New Views used the Legacy theme instead of the Default theme setting (GravityKit > Settings > GravityView > Appearance), as did Views created with the REST API;
- 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
@importlost all of its rules, and a<style>tag pasted around Custom CSS broke its first rule; - On DataTables Views, Custom CSS could not override the styles of DataTables features such as Buttons;
- Views shown inside another View, such as through a Custom Content widget or the
[gventry]shortcode, lost their Custom CSS, Custom JavaScript, layout styles, and Style settings.
- Issues with DataTables Views:
- Clearing the Search Bar widget and searching again kept the previous results instead of showing every entry (or hiding them when "Hide View data until search is performed" is on);
- The browser Back button stayed on the last search instead of returning to earlier searches and pages;
- Views set to "Embed only" showed "This table could not load" to visitors and users below the Editor role when placed with Beaver Builder, through the GravityView module or a
[gravityview]shortcode in a module.
- Issues with Edit Entry:
- GP Populate Anything Drop Down values that depend on a field placed later in the form were erased;
- When the same form was embedded on the page, Edit Entry showed every form field, or the other copy of the form showed the entry being edited;
- The Edit Entry Title setting also renamed menu items and other posts listed on the page, such as in a Latest Posts block;
- A field added to the Edit Entry tab twice showed two inputs, and changes made in one were lost.
- Issues with Views that join or union forms using Multiple Forms:
- The Entry Field block and
[gvfield]set to First or Last showed nothing in joined Views; - The Entry block,
[gventry], entry links pasted into a post, and the REST API showed the main entry's values in fields from the joined form; - Joined entry links such as
/entry/12,34/showed nothing in the Entry block,[gventry], or when pasted into a post; - The REST API returned empty values for every form field in the entry list of joined Views;
- Edit Entry showed and saved the wrong fields: a field added from another form changed the entry's own field with the same ID, including Administrative fields, and unioned entries ignored the field mapping;
- In unioned Views, CSV and TSV exports and the REST API ignored the field mapping for entries from the added form, leaving mapped columns empty or showing fields the View was not set to display;
- In unioned Views, entries from the added form ignored field settings such as "Link phone number", "Encrypt email address", and "Show as initials".
- The Entry Field block and
- Issues with merge tag modifiers:
:urlencodeencoded Dynamic Lookup field values twice, so a confirmation redirect such as?company={Company:2:urlencode}passedAT%2526Tinstead ofAT%26T;- Modifiers such as
:urlencodeprinted{(or%26%23x7b%3Bin a link) instead of{when a field value contained a curly brace.
- On block themes such as Twenty Twenty-Five, images and entry links set to open in a lightbox opened in the full browser tab when the first View on the page had "Enable lightbox for images" turned off, and a
[gv_entry_link lightbox="true"]shortcode outside a View broke the page layout. - CSV and TSV exports dropped trailing empty values, such as the empty last columns of a TSV export's last row or the empty last rows of a one-column export.
- Sites showing a View embed missing its "secret" on 404 or archive pages created a separate admin notice for every nonexistent address visited, and on category and author archives the notice named an unrelated post.
💻 Developer Updates
- Added
gk/gravityview/search/empty-value/defaultfilter to set what embeds without asearch_value_emptyvalue show when their search value is empty (returnnoneto show no entries). - Added
gk/gravityview/edit-entry/page-titlefilter to change the page title on the Edit Entry screen (return an empty string to keep the page's own title). - Added
GVEntry::is_active()andGVEntry::is_trashed()methods, which compare the entry's status case-insensitively. gk/gravityview/edit-entry/page-titleandgk/gravityview/edit-entry/document-titledefault to an empty string when the View's "Use as Page Title" setting is unchecked.- Breaking change:
gravityview()->plugin->uninstall()now removes only temporary data and keeps Views, entry approval statuses, GravityView entry notes, capabilities, and options; useGravityKitGravityViewViewViewRemover::remove_all()to delete Views. - Breaking change:
GVView::get_entry()now returns the joined row (aGVMulti_Entry) on Views that join forms and accepts joined entry slugs such as12,34; on that row,$entry['id']and$entry['form_id']arenull, so use$entry->IDor$entry->entriesinstead. - Deletes granted by the
gk/gravityview/delete-entry/can-deletefilter are now checked against the View's forms and the entry's status, while the View's filters and approval setting apply only to deletes the filter leaves to GravityView. - A View's
idsetting now stays an integer when a shortcode embeds the View, so strict (===) comparisons with the View ID, such as in agravityview/datatables/outputfilter, match correctly. gk-gravityview/view-clonenow copies every_gravityview_meta key of the source View, except the edit version counter and the "new form" notice flag.- View revisions now also track
_gravityview_filters,_gravityview_form_joins,_gravityview_form_unions, and_gravityview_row_settings, and preserve settings saved as empty values. - Each View's Custom CSS and Style settings now print from their own
gravityview_view_css_{View ID}stylesheet handle, after GravityView's stylesheets, instead of ongravityview_default_styleorgv-theme(thegk/gravityview/theme/custom-cssfilter is unchanged). - Legacy Views with more than one grid column now get a
gv-card-gridclass on their template wrapper. gk-gravityview/view-config-getandgk-gravityview/view-settings-patchnow return the default value of each core View setting that is not saved, instead of leaving it out.gk-gravityview/view-config-applyandgk-gravityview/view-settings-patchnow refuse to turn onshow_only_entries_by_current_user, withgv_rest_setting_requires_extension(400) when Advanced Filtering is not active andgv_rest_setting_conflicts_with_filters(400) when the View's Advanced Filter matches entries if any one group matches.- The entry lightbox page now includes a doctype, so browsers no longer render it in quirks mode or log jQuery Migrate's "jQuery is not compatible with Quirks Mode" warning.
🔧 Updated
- Foundation to version 1.37.0.