Gravity Forms Dynamic Lookup Changelog

Release notes and version history for Gravity Forms Dynamic Lookup . Add a dynamic field to your forms with choices pulled from connected data sources, including Gravity Forms entries and WordPress users.

1.11.0 on October 15, 2026

This release improves sorting and searching of Lookup fields in GravityView, and fixes issues with multi-select Lookup searches and GravityCharts labels.

✨ Improved

  • Sorting and searching Lookup fields that store IDs by their displayed name now also works in Views using Multiple Forms and for fields showing a first name, last name, or nickname (requires GravityView 3.7.0 or newer).

🐛 Fixed

  • Views searching a Lookup field for entries that "is" an ID, such as a View embedded in an entry with an {entry_id} search value, left out entries with more than one selection in a multi-select Lookup field, and "is not" searches kept them in.
  • The Search Bar widget's Search Everything field treated _ and % in Lookup field searches as wildcards instead of plain characters (requires GravityView 3.7.0 or newer).
  • GravityCharts charts of Lookup fields that store IDs labeled bars, slices, and legends with IDs instead of displayed names.

💻 Developer Updates

  • Added Field::gk_get_search_target() method, which tells GravityView where to search and sort by a stored ID's label.

🔧 Updated

Version 1.11.0 permalink

1.10.0 on October 8, 2026

This release exports Lookup fields by name with an optional ID column for re-importing, includes security fixes for how Lookup values are displayed and submitted, and resolves several merge tag and saved-selection issues.

🚀 Added

  • Optional "(ID)" column for each Lookup field that stores IDs in Gravity Forms' Export Entries page and GravityExport, for re-importing entries into a Lookup field.

🔒 Security

  • The "Show only entries created by current user" setting on Lookup fields was not enforced when a form was submitted (users who can edit entries and scheduled jobs such as imports are exempt).
  • The :value modifier on Lookup fields that store text, and {all_fields:value}, did not escape HTML in HTML notifications.
  • Content in Lookup names, such as a user's display name, could be processed instead of shown as plain text when output through a merge tag modifier such as :display_name.

🐛 Fixed

  • Gravity Forms' Export Entries page and GravityExport exported IDs instead of names for Lookup fields that store IDs (use the new "(ID)" column to export IDs for re-importing).
  • Lookup fields that store IDs saved submitted values that matched no record in their source, such as names from an import, instead of showing an error naming the rejected value.
  • Lookup field merge tag issues:
    • Names containing characters such as & or an apostrophe appeared with HTML codes in text notifications (for example, Smith & Jones);
    • Merge tags with modifiers such as :title were not URL-encoded in confirmation redirect query strings, so names containing & broke the redirect URL;
    • {all_fields:admin} showed IDs instead of names, and {all_fields:noadmin} included Lookup fields set to admin-only;
    • The :label and :urlencode modifiers returned the stored ID instead of the label or encoded name.
  • Post titles could appear differently on the entry screen and in exports than in the field's dropdown and merge tags, for example with curly instead of straight apostrophes.
  • Issues with saved Lookup selections:
    • When a selected record was no longer one of the field's choices (for example, an entry moved to the trash or a page set to Draft), the merge tag showed the record's ID instead of its name, and saving the entry on Gravity Forms' entry screen or in GravityView's Edit Entry replaced the selection with the first choice or cleared it;
    • Fields displayed as checkboxes could show the wrong boxes checked on edit screens after their choices changed (which saving then stored), and saving the entry elsewhere, such as through the REST API, could remove selections that were no longer among the choices;
    • GravityView's Edit Entry did not show the saved selection for Lookup fields added through code rather than the form editor, so saving the entry replaced it with the first choice.

💻 Developer Updates

  • Added gk/lookup/export/field/use-display-value filter to control whether a Lookup field's export column contains display names (the default) or stored IDs, as in earlier versions.
  • Added gk/lookup/validation/bypass-user-limit filter to control whether a submission can link records outside the "Show only entries created by current user" restriction.
  • Post titles in Lookup fields now use the title as written, without the "Protected:" prefix or changes from the_title filters.

🔧 Updated

Version 1.10.0 permalink

1.9.0 on October 1, 2026

This update fixes a blank page that could appear without Gravity Forms active and several issues with Lookup fields that store IDs, and improves compatibility with Gravity Forms 3.0.

Note: Gravity Forms Dynamic Lookup now requires PHP 7.4, WordPress 6.5, and Gravity Forms 2.9.4 or newer.

🐛 Fixed

  • A blank page could appear when Gravity Forms was inactive and another plugin or cached data loaded the Lookup field.
  • Deactivating Gravity Forms Dynamic Lookup while Gravity Forms was inactive caused a critical error and left the plugin active.
  • Issues with Lookup fields that store IDs:
    • Source entries, users, or posts sharing a name appeared only once, so the others could not be selected and editing an entry linked to a hidden one silently switched it (each record now appears; set the Storage Format to Text to list each name once);
    • Fields reading from a Checkboxes field listed a source entry once per checked value instead of once with all of its values;
    • In GravityView, dropdown and radio fields sorted by stored ID instead of displayed name and were not matched by the Search Bar widget's Search Everything field.
  • A PHP deprecation notice for GF_Field::get_value_save_entry() was triggered on every entry save with Gravity Forms 3.0 or newer.

🔧 Updated

Version 1.9.0 permalink

1.8.1 on July 30, 2026

This update resolves a critical error that could prevent pages with forms from loading.

🐛 Fixed

  • Fatal error ("There has been a critical error on this website") on any page with a Gravity Forms form when using a theme or plugin that requires a whole number for translated plural strings, such as Divi 5.

🔧 Updated

Version 1.8.1 permalink

1.8.0 on July 16, 2026

This release adds a developer API that lets other GravityKit products (like Advanced Filter's enhanced filter picker) search, paginate, and count Lookup field choices on demand, and hardens output escaping for the Lookup field's displayed value.

🔒 Security

  • A Lookup field's displayed value was not escaped on output, so certain content from the source form could render incorrectly.

🐛 Fixed

  • Post Lookup choices ignored the configured sort order when the site had sticky posts, which were moved to the top of the list.
  • The form editor's "maximum results" notice for user-based Lookup fields loaded every matching user ID into memory and could report a count that disagreed with the visible choices when ordering by post count.
  • Searching Lookup choices from Advanced Filter's condition picker treated % and _ as wildcards for Gravity Forms sources.

💻 Developer Updates

  • Added a choice API on Lookup fields for searchable, paginated, and counted choices: search_lookup_choices(), count_lookup_choices(), resolve_lookup_choices(), and get_lookup_display_selector(), used by GravityKit Query Filters' searchable choice picker. Counts honor the search term, and paginated results stay contiguous and duplicate-free.
  • Added gk/lookup/choice-query/bypass-filter filter to control whether the choice API bypasses "Filter by Field".
  • Added gk/lookup/choice-query/bypass-user-limit filter to allow capability-checked callers to resolve labels for entries created by other users.

🔧 Updated

Version 1.8.0 permalink

1.7.0 on July 9, 2026

This release adds relational 'Filter by Field' lookups and searchable dropdown support to Dropdown Lookup fields, and resolves multiple issues with lookup choices serving stale results.

🚀 Added

  • "Filter by Field" setting for Dropdown Lookup fields using the Gravity Forms source: choices narrow to entries whose selected source field matches the value entered in another field on the same form (for example, matching an email address between two forms).
  • Support for Gravity Forms' "Enable enhanced user interface" setting on Dropdown Lookup fields: the choice list renders as a searchable dropdown, including while choices are being filtered.

🐛 Fixed

  • Lookup choice lists could serve stale results:
    • Entries created or updated via the Gravity Forms API (REST API, imports, automations) did not appear until the cache expired, up to 24 hours later;
    • Empty choice lists were cached for up to 24 hours (now 5 minutes, and the form editor always shows current data);
    • Clearing the cache did not work on multisite and could keep serving stale results on sites using a persistent object cache.
  • Lookup fields with "Show only entries created by current user" enabled did not always reflect the viewing user, so the available choices could be inaccurate.

💻 Developer Updates

  • Added gk/lookup/filter/value filter to modify the value used to filter lookup choices.
  • Added gk/lookup/filter/max-results filter to change the maximum number of filtered choices (default: 100).
  • Added gk/lookup/filter/allow-public filter to disable filtered choice lookups for logged-out visitors.

🔧 Updated

Version 1.7.0 permalink

1.6.0 on June 4, 2026

This release improves Lookup field rendering performance in Views.

✨ Improved

  • Lookup fields no longer run duplicate database queries each time they render in a View.

🔧 Updated

Version 1.6.0 permalink

1.5.1 on February 26, 2026

This update fixes display issues with Source of Choices cards in the form editor.

🐛 Fixed

  • Source of Choices cards in the form editor:
    • Missing Gravity Forms icon;
    • Broken alignment on narrow screens.

🔧 Updated

Version 1.5.1 permalink

1.5.0 on January 29, 2026

This release ensures Lookup fields show display values instead of raw IDs when using the {all_fields} merge tag.

✨ Improved

  • Lookup fields now display their configured display value (e.g., user names, post titles) instead of raw IDs when used with the {all_fields} merge tag in confirmations and notifications.

🔧 Updated

Version 1.5.0 permalink

1.4.0 on January 22, 2026

This release adds merge tag modifier support for Lookup fields, allowing access to any attribute from the referenced object (e.g., user email, post permalink, entry fields) across Gravity Forms and GravityView.

🚀 Added

  • Merge tag modifiers for Lookup fields:
    • Access additional attributes beyond the configured Display Value using {Field Label:field_id:modifier} syntax (e.g., {Assigned User:2:user_email} for the user's email).
    • Supported in notifications, confirmations, and anywhere Gravity Forms merge tags are used.
  • Lookup fields in GravityView Views now display readable values instead of raw IDs.

💻 Developer Updates

  • Added gk/lookup/field/source-object filter to substitute a custom object (WPUser, WPPost, or entry array) when resolving lookup IDs.
  • Added gk/lookup/field/display/value filter to transform attribute values before display.
  • Added gk/lookup/field/display/separator filter to change the delimiter between multiple lookup values (default: ", ").
  • Added gk/lookup/field/display/missing filter to customize what appears when a referenced object has been deleted (default: raw ID).
  • Added gk/lookup/field/access/meta-key filter to allow access to protected meta keys (default: false for underscore-prefixed keys).
  • Added gk/lookup/field/access/private-taxonomy filter to allow access to private taxonomies (default: false).

🔧 Updated

Version 1.4.0 permalink

1.3.0 on November 20, 2025

This update adds configurable selection limits to Lookup fields that use the Multiple Choice input type.

🚀 Added

  • Lookup fields using the Multiple Choice input type can now enforce selection limits, including single choice, unlimited choices, exact numbers, or min–max ranges.

🔧 Updated

Version 1.3.0 permalink

1.2.0 on October 30, 2025

This update adds support for more Gravity Forms field types and WordPress content sources, and improves how lookup fields appear in GravityView’s Search Bar.

🚀 Added

  • Support for Name, Address, Date, Time and Number fields.
  • WordPress posts, pages and custom post types can now be used as lookup sources.

✨ Improved

  • Lookup fields in GravityView’s Search Bar can now be displayed using different input types (Select, Multi-select, Radio, Checkbox or Links) instead of being limited to a text input.
Version 1.2.0 permalink

1.1.0 on September 25, 2025

This release makes Lookup fields available for use in conditional logic.

🚀 Added

  • Support for using the Lookup field in conditional logic, both in Gravity Forms and in GravityKit products.
Version 1.1.0 permalink

1.0.3 on March 12, 2025

This hotfix prevents a fatal error when Gravity Forms is missing.

🐛 Fixed

  • Fatal error on plugin activation if Gravity Forms is not installed and activated.
Version 1.0.3 permalink

1.0.2 on March 7, 2025

✨ Improved

  • Changing the source of a Lookup field only gives a warning if the field has existing entries.
  • Reduced the number of database queries when loading choices for sites without object caching.
  • Changed the default storage format to "ID" to better take advantage of the dynamic nature of the field value: when the field is configured to use the ID as the value, the value will update dynamically when the source entry field is updated.
  • When the storage format is "ID", the label will be displayed in the Entries table in Gravity Forms.

🐛 Fixed

  • The "Lookup Field Settings" label was showing for all fields.
Version 1.0.2 permalink

1.0.1 on March 3, 2025

This update resolves caching issues and improves data source handling for better performance.

🐛 Fixed

  • Gravity Forms entry cache was not clearing for new or modified entries, preventing new values from being visible.
  • Prevented using the current form as a data source to avoid infinite loops.
Version 1.0.1 permalink