Advanced Tools for Gravity Forms

This plugin is a beast! It is jam-packed with Gravity Form enhancements. And the best part is, it's FREE! There are 3 sections you'll want to know about when you take a deep dive:

  • Forms > Advanced Tools: The plugin's main pages
  • Forms > Settings > Advanced Tools: Plugin settings
  • Forms > [Choose a Form] > Settings > Advanced Tools: Form settings

We'll start with the plugin's main pages.

Navigate to Forms > Advanced Tools > Global Search.

A simple tool to search keywords in all entries across all forms. You no longer have to search in individual forms. 🙂

  • Date: The entry date; click on it to go to the entry details
  • Result: The field value that includes the keyword
  • Field Label: The field label of where the keyword can be found in the value
  • Field ID: The field ID of where the keyword can be found in the value
  • Form Title: The title of the form that the keyword is found in
  • Created By: The entry author
  • Entry ID: The ID of the entry

User Entries

Navigate to Forms > Advanced Tools > User Entries.

This is useful to find all of the entries that you yourself have submitted, or if you have members that submit forms regularly. You can search by User ID or Email, and filter by a single form or all forms.

  • Date: The entry date; click on it to go to the entry details
  • Entry ID: The ID of the entry
  • Form Title: The title of the form that the entry is in
  • Form ID: The form ID of where the entry is in
  • Source Page: The page that the form was submitted on; click on it to go to that page as a reminder

Jump to Entry

Navigate to Forms > Advanced Tools > Jump to Entry.

If you only have an entry ID, you can jump straight to the entry details. This is more of developer tool.

Entries by Date

Navigate to Forms > Advanced Tools > Entries by Date.

Use the form to see how many entries there were during the timeframe you specify. This is especially helpful if you use forms for training evaluations where you need to report how many people completed the evaluations each quarter. If you use Fiscal dates, you can change to Fiscal in the Plugin Settings. You can also search all forms or look for one in particular.

  • Form Title: The title of the form you are counting; click on it to go to the form entries page
  • Form ID: The ID of the form you are counting
  • Number of Entries: The number of entries found; the list is sorted with the most entries on top

Recent Entries

Navigate to Forms > Advanced Tools > Recent Entries.

This shows you the a list of the most recent entries. You can change this number at any time and it will remember the count you chose.

  • Date: The entry date; click on it to go to the entry details
  • Form Title: The title of the form that the entry is in
  • Form ID: The form ID of where the entry is in
  • User: The entry author
  • Entry ID: The ID of the entry
  • Source Page: The page that the form was submitted on; click on it to go to that page as a reminder

Spam Entries

Navigate to Forms > Advanced Tools > Spam Entries.

Managing spam entries can be quite a task if you have a ton of forms. This is a quick way to see how many spam entries you have across the board.

  • Form Title: The title of the form; clicking on it will take you to the spam entries page
  • Form ID: The form ID
  • Number of Spam Entries: The current total number of spam entries
  • Actions: A "Delete All Spam" button will appear if there is spam; clicking it will purge all of the spam entries — note that it's best practice to actually go through the spam entries to ensure that they are actually spam and not accidentally flagged as spam, but this gives you the option none-the-less

Spam List

The plugin comes with an enhanced spam filter that you can enable and start whitelisting and blacklisting entries with certain keywords, email addresses, or email domains. The spam list is where they are stored.

To get started, navigate to Forms > Settings > Advanced Tools. Scroll down to the Entries section. Where it says, "Enable Enhanced Spam Filtering," choose "Local," "Host," or "Client." If you have multiple sites, one site would be the host and the other sites would be clients. The host site is where the list is stored in the database. The client sites connect securely to the host's database to use the same list. Keywords can be added or removed from any site, making it convenient for multiple site owners. If you only have one website or do not want to share the same spam list with your other websites, choose Local.

If you choose "Host," you'll need to generate a new API key to use on your other sites so you can connect securely.
If you choose "Client," be sure to enter the API key that you copied from the host site, along with the host website URL.

Once enabled, you can click on the "Manage Spam List" link next to the plugin setting field, or navigate to Forms > Advanced Tools > Spam List that will now appear in the left menu.

If you chose "Local" or "Host", the first thing you'll see is a button to create a new list table. This is a custom table in your database (don't worry, you can delete it from the Plugin Settings later if you want).

There are three (3) types of records.

  • Keywords: Any keyword found in any Single Line Text or Paragraph Text fields
  • Email Addresses: Any email addresses in Email or Single Line Text fields
  • Email Domains: Any email domains in Email or Single Line Text fields; an email domain is everything after the @ symbol in an email address. For example, the domain in "john@doe.com" would be doe.com

Now you are able to manage spam records.

  • Adding a spam record: Enter the keyword, email address or email domain in the value field and choose "Allow" to whitelist it or "Deny" to blacklist it, and then Submit it. It will automatically detect whether it is a keyword, email address or email domain. If you have a lot of records, you can import them by clicking "Import" link next to the submit button (only on Local or Host sites).
  • Removing a spam record: Click the "Delete" button next to the spam record. If you are on a Local or Host site, you can do this in bulk by selecting the records from the list and clicking on the "Delete Selected Records" button on the top right of the table.
  • Updating a spam record: Enter the keyword, email address or email domain in the value field and choose a different action. If you need to change the value, you will need to delete the old one and add a new one.

The spam record table columns are as follows:

  • Value: The keyword, email address or email domain
  • Action: "Allow" or "Deny"
  • Type: "Keyword," "Email" or "Domain"
  • Date Added: The date and time that the record was added to the list
  • Added By: The user's display name (if on the same site) or user ID (if from a different site)
  • Delete: Click the button to delete the record

Front-End Reports

Navigate to Forms > Advanced Tools > Front-End Reports.

This is one of the main reasons the plugin was developed. You have the ability to generate a front-end report of all of your entries from any form. Choose which fields you want to display and place the provided shortcode on the page you want it to be displayed on.

Start by clicking on the Create New Report button.

Enter a title for your own records, it will not be displayed anywhere except on the previous page.

General Settings

  • Form: Select the form you want to report on
  • Order Page Entries By: The entry meta or field that you want to order the entries by; this will be updated with the fields after you select which ones you want below
  • Order Export Entries By: The report will include an export button if fields are selected; this field allows you to choose how you want to order the entries in the CSV file
  • Date Format: You can choose the date format you want displayed on the Date Created field (if selected)
  • Entries Per Page: The default is 10 entries per page, but you can change this to anything you want; note that the more you include, the longer it will take to process, so if you are having page load issues, keep this to a minimum
  • Export Button Text: Yes, you even have the flexibility to change the text on the button
  • Roles Required to View: If you want other roles to have access to the report, enter the role slugs here separated by commas. To find the role slugs, you can go to your Users section and click on the role you want to see all of the users with that role; in the URL you will see the slug like so: /wp-admin/users.php?role=slug
  • Include Search Bar: Adds a search bar to your report that searches exact strings in your fields
  • Include Date Filter: Adds a date filter to your report
  • Include Quarter Links: Adds buttons for each quarter of the year for you to quickly check entries during those dates; if you use Fiscal dates, you can change to Fiscal in the Plugin Settings
  • Include Link to Entry on First Column: Makes the first column value a link to the entry details page in the back-end

Fields to Display on the Page

Here you will select the form meta, entry meta, fields, and user meta that you want on your report.

  • Form Meta: The form meta section includes the Form ID and the Form Title
  • Entry Meta: The next section includes everything else, starting with the entry meta (Entry ID, Date Created, and Created By)
  • Resolved: If you enable the "Mark Resolved" feature, you will have options for adding the Resolved, Resolved Date and Resolved By values
  • Entry Fields: All of the non-HTML fields will be included
  • User Meta: You can even add user meta if the entry author is a logged-in user. For example, if you collect the user's state or country in the registration form and it updates their user profile, you can include it here in your report. To do so, navigate to the Form Settings > Advanced Tools > For Developers section. Where it says to automatically add user meta to entry meta, enter the user meta keys separated by spaces.
  • Preview Report Table: Underneath the fields, you'll see an example of what the report table will look like
  • Renaming Columns: When you select a field, an "Edit" link appears on it; click that to rename it

Fields to Display in the CSV Export

This works the same way as on the page, but without the preview table. It is generally useful to select all of the fields to export everything, but you can pick and choose as well.

Publishing and Adding to a Page

After you're done building your report, publish it. Then copy the shortcode underneath the publish button. Paste this shortcode on the front-end page that you want it to be displayed on.

Shortcodes

Navigate to Forms > Advanced Tools > Shortcodes.

WordPress shortcodes allow users to perform certain actions as well as display predefined items within WordPress pages and posts. This page includes shortcodes that are available from Gravity Forms as well as some that we have made for you. Details about each parameter can be found on the Shortcodes page. To use them, copy the shortcode and paste them on a page where you want.

From Gravity Forms

  • Display a form: Used to display a form on page; works the same way as the form block in the Gutenberg editor.
[gravityform id="1" title="false" description="false" ajax="true" tabindex="49" field_values="check=First Choice,Second Choice" theme="orbital"]
  • Conditional shortcode: Used to conditionally display information on a confirmation or notification based on field values.
[gravityforms action="conditional" merge_tag="{Number:1}" condition="greater_than" value="3"]
Content you would like to conditionally display.
[/gravityforms]

Our Shortcodes

  • Remove Query String Parameters from URL Without Refreshing: An alternative method to the same option under Form Settings > Advanced Tools > Field Population, but can also be used on other pages without forms. Useful if you are passing parameters to a page, but then want to remove them from the URL so the user can't easily copy the URL or refresh the page to complete the form again if a parameter is required. If using on a form, add the shortcode to an HTML field at the bottom of your form or after the form on the page. Query string parameters look like this: http://domain.com/?page_id=1234&user_id=1 (where page_id and user_id are the parameters).
[gfat_remove_qs params="id"]
  • Display Form from ID in URL: This will pass the form ID from the URL to the shortcode and display the form you want, allowing you to use a single page for multiple forms. Add the param value to your URL like so: "https://pluginrx.com/your-form-page/?form_id=1".
[gfat_form param="form_id" forms="1, 2, 5 (Custom Form Title)"]
  • Display a Front-End Report for Any Form: Use id or add the param value to your URL like so: "https://pluginrx.com/your-report-page/?report_id=1". Using the param attribute will pass the report ID from the URL to the shortcode and display the report you want, allowing you to use a single page for multiple reports.
[gfat_report id="1" param="report_id" reports="1, 2, 5 (Custom Form Title)"]
  • Export Entries on Front-End: Allow others with specific roles (defined in Advanced Tools plugin settings) to export form entries from the front-end. You can do a single form by ID, or to include a dropdown to pick from a selection of forms you must also enable "Add to Export Entries Shortcode" in each of the forms' Advanced Tools settings.
[gfat_export_entries id="1"]
  • Content Displayed if Entry Submitted: Display content only if the current user has submitted an entry for a given form. Accepts HTML in the content between the opening and closing shortcode tags. You can use the {date} in your content to display their most recent entry's date.
[gfat_entry_submitted form_id="1" date_format="F j, Y"]You registered on {date}![/gfat_entry_submitted]
  • Content Displayed if Entry is NOT Submitted: Display content only if the current user has NOT submitted an entry for a given form. Accepts HTML in the content between the opening and closing shortcode tags.
[gfat_entry_not_submitted form_id="1"]<a href="/register/" class="button">Register now!</a>[/gfat_entry_not_submitted]
  • Return Query String Value: Returns a query string parameter value if found. Add the param to your URL like so: "https://pluginrx.com/your-form-page/?id=999". In the example the parameter is "id", and the value returned will be "999". This is especially useful to use in an HTML field when passing parameters into a link.
[gfat_qs_value param="id"]

Merge Tags

Navigate to Forms > Advanced Tools > Merge Tags.

Gravity Forms uses merge tags to allow you to dynamically populate submitted field values and other dynamic information in confirmations, notification emails, post content templates, and more! For additional reference and a list of all Gravity Forms Merge Tags, you can reference their docs here: https://docs.gravityforms.com/category/user-guides/merge-tags-getting-started/

This page gives you a list of all available merge tags from Gravity Forms along with some that we have made for you.

Search filters are included for you to get an idea of what kind of information you will get depending on how and where you place them. User meta will only show if you filter by User or Entry ID (if completed by a logged-in user). Post tags will only show if you filter by Connected Post ID. Entry data will only show if you filter by Entry ID. Form data will only show if you filter by Form or Entry ID. Some other values may also be blank here if we cannot pull them. Note: The values that are provided may or may not exactly match what you'll see where you use the merge tags! It does its best, but depending on the data and use, things may be off a bit.

The table includes the following:

  • Merge Tag: The merge tag that needs to be included to get the data you want
  • Name: What the merge tag is labeled as in the merge tag drop downs
  • Value: If a value can be generated, one will be provided here
  • Copy: Click to copy the merge tag to your clipboard
  • Reference: A link to the documentation for the merge tag

Pre-Populate Fields

Navigate to Forms > Advanced Tools > Pre-Populate Fields.

In your form editor when editing a form field, go to Advanced > "Allow field to be populated dynamically." Checking this option will enable data to be passed to the form and pre-populate this field dynamically. Data can be passed via Query Strings, Shortcode and/or Hooks. After checking this option, you will need to specify the name of the parameter you will be using to pass data to this field. For more detailed information on how to dynamically populate a field and known limitations please see Gravity Forms' documentation on dynamic population.

Below are parameters that we have pre-built for you.

  • Previous Value: previous_value
    • Populate the field with the previous value submitted for the current form and field by the logged-in user.
  • Timezones: timezones
    • Adds all available timezones to a drop down field with the current time in each timezone. Great for setting timezones in registration forms.
  • List All Users: users
    • Adds all users to a drop down field in alphabetical order. Values are their user IDs.
  • List Users for a Specific Role: users_[role]
    • Adds all users with a specific role to a drop down field in alphabetical order. Values are their user IDs.
  • Connected Post/Page Data: connection_[meta_key]
    • If you have a connected post ID or query string parameter set in your form's Advanced Tools settings (under Field Population > "Enter the Post ID or Query String Parameter Used to Connect To"), you can use populate its meta value. Works with posts, pages, or any custom post type.
  • Query String Post Meta Value: qs_post_[meta_key]
    • If you add post_id as a query string parameter to your form's URL, it will populate the respective post's meta value. Works with posts, pages, or any custom post type.
  • Query String User Meta Value: qs_user_[meta_key]
    • If you add user_id as a query string parameter to your form's URL, it will populate the respective user's meta value.
  • Cookie Data: cookie_[name]
    • You can populate a field with cookie data, too.
  • Session Data: session_[name]
    • You can populate a field with session data, too.

Plugin Settings

Navigate to Forms > Settings > Advanced Tools.

Customize Gravity Forms

  • Position of the Gravity Forms’ “Forms” menu in the WordPress admin menu: Default value ‘16.9’. May need to refresh after saving to see the changes.

Reports

  • Set Quarterly Links to Federal Fiscal: Quarterly links are found with the date filters on our reports.

Forms Table

  • Track When and Who Created and Modified Forms: Stores the information on the form meta, and also adds a column on the forms table that displays this information.
  • Add an Action Link to the Forms Table to Copy Form Shortcode to Clipboard: Does just that.
  • Disable Forms View Counter: Hides the "Views" column in the forms list.
  • Hide Forms Conversion Column: Hide the "Conversion" column in the forms list. The conversion column indicates the percentage of individuals who complete your form after viewing it.

Form Editor

  • Enable the Password Field: Adds a password field to your editor.
  • Always Bypass Template Library when Creating New Forms: The template library pops up when you first create a new form; you can prevent it from popping up if you never use those templates.
  • Disable AJAX Saving for All Forms: This will disable saving the form in the form editor without having to refresh. Sometimes the AJAX will cause conflicts, so this just saves the form on refresh.
  • Move United States to Top of Countries List on Address Fields: If your users primarily live in the United States, it might be useful to add it to the top of your list so users don't have to scroll down to find it.
  • Add Associated States to US States List: Includes Federated States of Micronesia, Palau, and Marshall Islands. They are nations with a unique relationship with the United States, typically under the Compact of Free Association, but they are not U.S. states.
  • Disable Post Meta Query on Form Editor: The post meta query, which retrieves the custom field names (meta keys), can be disabled to help improve editor performance on some sites.
  • Remove "Add Field" Buttons: This can be useful for minimizing clutter or preventing users from adding fields that should never be used. Includes the option to hide the Section field, File Upload field, all post fields, and all pricing fields.

Form Display

  • Add Additional Classes to the Submit Buttons: Adds CSS classes to the submit buttons for more flexibility on front-end design.=

Entries

  • Disable All Spam Filtering on Form Entries for Logged-In Users: Users that complete forms repeatedly may find themselves getting flagged as spam, especially admins during testing. You can disable it so that admins or all logged-in users never get flagged.
  • Block Form Entries with Links: To help combat spam. Checks all Single Line Text and Paragraph Text fields, and will not allow the form to be submitted if a link is present. Does not check URL fields.
  • Enable Enhanced Spam Filtering: Adds an option to whitelist or blacklist individual emails, entire email domains, and keywords. You can also choose to select a host website in which all of your other (client) websites will share one spam list. You must set an API Key for authentication for it to work remotely. For more information on setting this up, see the Spam List section above.
    • Host:
      • API Key for Remote Spam List Access: Click to generate an API key for your other (client) sites.
    • Client:
      • API Key for Remote Spam List Access: Paste the API key from your host site here.
      • Host Website URL: Enter the host website URL.
  • Prevent User's IP from Being Saved: Stops saving the users' IP addresses on all forms. Note that IP addresses can be useful if you are getting spammed to use block them with other security plugins. But if you're not worried about that, there is no reason to collect it and waste database storage.

Exporting

  • Exclude BOM Character from Beginning of Entry Export Files: Preferred when working with systems that might display BOM as a strange character or do not handle BOM correctly. If you don't know what this means, simply ignore it.
  • Export Form Filename: You can change the filename of the export form json file here. The date format uses PHP Date and Time Formatting and may be changed. A form id can be included by using the {form_id} tag; if more than one form is exported, this value will display "multiple". Note: Do not include a file extension. The extension “.json” is added automatically.
  • Which Additional Roles (Besides Administrator) Can Export Entries on gfat_export_entries Shortcode: The shortcode can be used to export entries on the front-end. You must also enable "Add to Export Entries Shortcode" in the forms' Advanced Tools settings.

Confirmations

  • Confirmations Signature: Set a generic signature to be added to the bottom of your confirmations. Use {confirmation_signature} merge tag to display this global signature on any confirmation.

Notifications

  • Notifications Signature: Set a generic signature to be added to the bottom of your notifications. Use {notification_signature} merge tag to display this global signature on any notification.
  • Disable Default Admin Notifications Automatically Generated for New Forms: When creating a new form, an Admin Notification is normally added by default; this prevents that notification from being created.
  • Format the TO Email Address Properly to Improve Spam Score: By default, emails sent from Gravity Forms have a TO address formatted as [to] => samuel@example.com. This option will format the address as [to] => "samuel@example.com" ‹samuel@example.com›.

Merge Tags

  • Include Form Field Labels on Merge Tags Dashboard: The merge tag dashboard can be found at Forms > Advanced Tools > Merge Tags. This option includes the optional field label to the merge tag so it is easier to remember what the merge tag represents. For example: {Field Label:2} vs {:2}
  • Add Your Own Custom Merge Tags: You can create your own merge tags here by using {gfat:[modifier]} merge tag. The modifier must be all lowercase without spaces. If Callback Function is selected, the callback is your function's name — ie. function callback_name( $form, $entry ) { return "your value"; }

For Developers

  • Add Debug View of Form and Entry Objects to Toolbar: Quickly view form and entry object data. Links on forms are in top toolbar of edit screen and in a meta box on the entry detail page. Also shows a quick view of the field IDS and their visibility.
  • Write All Gravity Forms Log Messages to System Debug Log: Writes them to your debug.log file.
  • Add Your Own Custom Fields to the Form Settings Page: Values are stored in the form object meta. Meta Key must be all lowercase without spaces.

Form Settings

Navigate to Forms > [Choose a Form] > Settings > Advanced Tools.

Form Display

  • Display the Form During Specified Dates and Times: You can leave dates blank if you only want to show the form after the start date or until the end date, or if you want to display the form only during those times every day. Leave the times blank if you want to start at 12:01am and end at 11:59pm.
  • Display a Message Instead of the Form BEFORE Start Date: If a user visits the page before the start date, this message will automatically appear to let them know it's not time yet and to come back soon.
  • Display a Message Instead of the Form AFTER End Date: If a user visits the page after the end date, this message will automatically appear to let them know the form is no longer available to complete.
  • Remove the Submit Button: You may have a form that calculates information or displays information conditionally where you don't actually want them to be able to submit an entry for. This removes the submit button altogether.
  • Convert the Submit Input to a Button Element: This is more for the design team. Sometimes it's better to use a <button> element rather than a <input type="submit"> element. This will switch the type of element used.
  • Enable Review Page Prior to Form Submission: Replaces the Submit button with a Preview button, and allows the user to preview their entry before submitting it. The submit button is moved to the preview page instead.
  • Review Page Content - Must Enable Above: You can modify the preview page content as you like.

Field Population

  • Remove Query String Parameters from URL Without Refreshing: Useful if you are passing parameters to a form to populate fields, but then want to remove them from the URL so the user can't easily copy the URL or refresh the page to complete the form again if a parameter is required. Query string parameters look like this: http://yoursite.com/?page_id=1234&user_id=1 (where page_id and user_id are the parameters). Enter parameters separated by commas.
  • Enter the Post ID or Query String Parameter Used to Connect To: You can connect this form to a another post, page, or custom post type to populate meta data into your form automatically. You can use merge tags {connection:[meta_key]} to display the data. If the meta data is on the page that the form is on, you can use {embed_post:[meta_key]} for post objects like ID, post_title, post_author, etc. or {custom_field:[meta_key]} for custom meta instead. Example: http://yoursite.com/?page_id=# - query string parameter would be page_id.

Entries

  • Disable All Spam Filtering for This Form: There is an option in the plugin settings under Forms > Settings > Advanced Tools > Entries that allows you to disable all spam filtering for logged-in users site-wide. There is no need to enable this if you have that selected and this form is for logged-in users only. If this form is open to the public, then disabling spam filtering is NOT recommended except for testing purposes.
  • Auto-Delete Previous Entries for Logged-In Users: When a logged-in user submits a new entry, you can have it automatically delete their previous entries, ensuring a single entry per user. Other options available with other add-ons.
  • Enable "Mark Resolved" Feature: Adds ability to mark an entry as "resolved" or "in progress" so your team can keep track of if, when, and who resolved a support request on a contact form (or whatever else you want to use it for).

Exporting

  • Add to Export Entries Shortcode: Adds this form to the gfat_export_entries shortcode, which can be used to export entries on the front-end.

Confirmations

  • Disable Confirmations Anchor: Disable the confirmation anchor functionality that automatically scrolls the page to the confirmation text or validation message upon submission.

Notifications

  • Allow Text and Select Fields in "Send To" > "Select a Field" Dropdown: By default, only email fields can be selected, but we don't always use email fields.

Admins Only

  • Disable Required Fields for Admins Only: Very useful for testing forms.

For Developers

  • Automatically Add User Meta to Entry Meta: You can add user meta to the entry meta directly if the user completing the form is logged in. You can then use {entry:[meta_key]} to display it on confirmations and notifications. You can also include the user meta on reports in the Front-End Reports generator.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.