{entry_url} Merge Tag

{entry_url} Merge Tag

SummaryUsageNotesSee Also

Summary
Displays a URL that will take you to detail page for the submitted entry.
Usage
{entry_url}
Notes
This merge tag can be used in areas such as notifications and confirmations after the entry has been saved. Because of this timing, they cannot be used as a field』s default value.
Clicking through to the URL requires the user to be logged in with appropriate permissions.
See Also
The {entry} merge tag.

{entry_id} Merge Tag

{entry_id} Merge Tag

SummaryUsageNotesSee Also

Summary
Displays the entry ID of the submission.
Usage
{entry_id}
Notes
This merge tag can be used in areas such as notifications and confirmations after the entry has been saved. Because of this timing, they cannot be used as a field』s default value.
See Also
The {entry} merge tag.

Entry List Page

Entry List Page

Form SelectorFilter ToolbarEntry Quick ToolbarEntry ActionsBulk ActionsEntry ColumnsFurther Info

The Entry list page allows you to browse all entries generated by form submissions. From this screen you can browse, sort, and modify your entry with a variety of options.

Form Selector

You can click on the arrow next to the current form title to select the form for which you want to display the entries list.

Filter Toolbar

The filter toolbar allows you to filter which entries you would like to view: All, Unread, Starred, Spam, and Trash. In the parenthesis beside each filter label is the number of entries currently applicable to that filter.

Entry Quick Toolbar

Each entry item has an entry toolbar that displays when you hover over the first cell of an entry row. This quick toolbar will allow you to view the entry, mark the entry as read, mark the entry as spam, or send the entry to the trash to be deleted later.

Entry Actions

With the exception of the Star action, the following entry actions are available per entry in the Entry Quick Toolbar. The Star action is available to the left of each entry item.

ActionDescriptionStarThe Star icon to the left of each entry item enables you to flag important entries. Using the filters toolbar, you can then browse all starred entries for the current form by selecting the Starred link in the filter toolbar.ViewView the entry details.Mark as Read/UnreadMuch like email, marking an entry as read is useful when you would like to indicate that the entry has been acknowledged without having to view the entry detail view. You may also mark the entry as unread.SpamMark the entry as spam.TrashSend the entry to the Trash. Please note, you are responsible for emptying your Trash. The Trash is not automatically deleted. Deleting entries from the Trash will delete those entries permanently along with any files uploaded to them.

Bulk Actions

Using bulk actions you may apply the same action to multiple entries at once. To use bulk actions you must first select the checkbox next to each entry item you would like to modify. Then select the desired action from the bulk action select box, and click 「Apply.」

ActionDescriptionMark as Read/UnreadMark all selected entries as read/unread.Add/Remove StarAdd/remove the star indicator for the selected entries.Resend NotificationsResend the default entry notifications or forward the notifications on to a specified email address.Bulk PrintPrint multiple selected entries all at once.SpamMark the selected entries as spam.TrashSend the selected entries to the Trash.

Entry Columns

One of the features of the Entries screen is the ability to pick and choose which columns should appear in the list based on available form fields. To select the columns, simply click the Edit icon on the right of the entries list table header. This will display the Select Columns window.

The Select Columns window consists of two panels, Active Columns and Inactive Columns. Simply drag the columns you would like to appear on the entries list from the Inactive Column to the Active Column to configure your entries list the way you see fit.

Further Info

For information on the entries detail view, refer to this user guide section.

Enabling No Conflict Mode

Enabling No Conflict Mode

Having issues where creating a form doesn』t show both the title and description field? Or are you unable to add or move elements on the form builder?
You might be experiencing an issue where scripts from other plugins and themes are being loaded on Gravity Forms administration pages. This causes the errors you are experiencing.
There is an easy fix to get around these issues, but it is still recommended you troubleshoot using our theme and plugin conflict steps to isolate the issue and report it to the proper developer.
To temporarily resolve the issue, go to Forms > Settings and enable No Conflict mode. This should stop third party scripts from writing to Gravity Forms administration pages and allow you to do the things you need.
We recommend finding the source of this issue as it could cause further problems later on. Please follow the Theme and Plugin Conflict troubleshooting steps.

Please note: No Conflict mode only applies to the Gravity Forms administration pages, such as the form editor, it will not help resolve front-end issues.

Enabling the Gravity Forms Toolbar Menu

Enabling the Gravity Forms Toolbar Menu

Enabling the toolbar menu itemAccessing the toolbar menu itemCapabilitiesHelp! I don』t see the toolbar!

The Gravity Forms toolbar menu enables quick access to your most recent common actions. This article shows you how to enable it.

Enabling the toolbar menu item

First, access your Gravity Forms settings page. This done by hovering over Forms on the left side admin menu, and clicking on Settings.

Once you have accessed the Settings page, locate the option labeled Toolbar Menu and turn it on.

After the Toolbar Menu option is set, save your settings by scrolling down and clicking the Save Settings button.

Accessing the toolbar menu item

After enabling the Gravity Forms toolbar menu, you should immediately see the new menu item labeled Forms. Hovering over it will provide a listing of the most recent forms accessed, as well as links to view all forms or create a new form.

By hovering over one of the forms listed, additional items will appear. From here, you can do things such as access the form editor, view entries, change settings, and preview the form.

Capabilities

Which capabilities are enabled for your user role will determine what items will appear in the menu.

Menu ItemUser Capability RequiredNew Formgravityforms_create_formAll Formsgravityforms_edit_forms

These are the submenu items for the individual forms.

Menu ItemUser Capability RequiredEditgravityforms_edit_formsEntriesgravityforms_view_entriesSettingsgravityforms_edit_formsPreviewPreview – gravityforms_edit_forms or gravityforms_create_form or gravityforms_preview_forms

See the Role Management article for more information about the plugin capabilities and how they can be managed.

Help! I don』t see the toolbar!

If you don』t see the admin toolbar at all, you may have it disabled in your main WordPress settings. To enable it, perform the following:

Access your user profile within the WordPress admin dashboard. To do so, hover over Users on the left side admin menu, and click on My Profile.Within this page, you should see an option labeled Toolbar. Ensure the checkbox is enabled. If not, enable it and save your changes.

If you still don』t see the toolbar, you may have a theme or plugin that is interfering with it. Try enabling a default theme such as Twenty Fifteen and disabling other plugins.

Enabling Conditional Logic for a Feed

Enabling Conditional Logic for a Feed

SummaryFeed SettingsExample

Summary

Conditional logic can be used to specify when a certain feed should process based on the form data. This is useful for subscribing users to mailing lists and sending payment information to different services.

Feed Settings

Enabling conditional logic for a feed can be done in the feed settings. This will need to be done for each feed associated with the form. If conditional logic is not configured, the form will process the first feed it finds.

Example

In this example we are using conditional logic to determine if the form data should be sent to one of two payment services, either Authorize.Net or Stripe.

First, we add a field to the form which allows the user to choose a payment method. We』re going to use a drop down field labeled Gateway with the choices of Authorize.Net and Stripe.

Then we create a feed for each service via the specific add on』s feed settings page. Conditional logic is enabled and the criteria is set so that the gateway equals the appropriate payment method for that feed. Click here to view a video demonstration.

When the user is on the form, they will be presented with the Gateway field which allows them to select which payment gateway they wish to use. Then when the form is submitted, the conditional logic will determine where the payment information is sent. If they select Authorize.Net as the Gateway, then the payment information will be sent to Authorize.Net. If they select Stripe as the Gateway, then the payment information will be sent to Stripe.

Enable Use of the Total Field with Conditional Logic

Enable Use of the Total Field with Conditional Logic

IntroductionUsage LimitationsPlacementSnippetAlternatives

Introduction
The Total field is not made available to configure conditional logic rules, as it is evaluated differently to other fields. The following snippet does make it possible to use in conditional logic rules, but with the limitation that this is only appropriate for conditional logic that takes place after entry submission.
Usage Limitations
Conditional logic using the Total field is only for use on notifications, confirmations and add-on feeds. That is, features where logic is evaluated based on the saved entry.
Because the total field is always the last field to be saved you cannot use it to configure conditional logic on other fields on the form. Displaying other fields based on the total would prevent those fields being saved as the conditions would never match when the logic is evaluated, during submission.
Placement
The snippet should be placed in the functions.php file of your active theme or a custom functions plugin. You will then be able to configure less than and greater than rules based on the value of the Total field.
Snippet
class RW_GF_Total_Field_Logic {

public function __construct() {
add_action( 'init', array( $this, 'init' ) );
}

function init() {
if ( ! property_exists( 'GFForms', 'version' ) || ! version_compare( GFForms::$version, '1.9', '>=' ) ) {
return;
}

add_filter( 'gform_admin_pre_render', array( $this, 'enable_total_in_conditional_logic' ) );
}

function enable_total_in_conditional_logic( $form ) {
if ( GFCommon::is_entry_detail() ) {
return $form;
}

echo "';

return $form;
}

}
new RW_GF_Total_Field_Logic();

Alternatives
Check out our community add-on library to search for the possible options.

Enable Editing of the Entry Payment Details

Enable Editing of the Entry Payment Details

The payment details panel on the entry detail page is usually only displayed when the entry was processed by a payment add-on. The ability to edit the payment details on this panel is usually only available when the entry was processed by the PayPal Standard add-on and the current payment status is set to Processing or Pending.
The following will allow you to enable the display of the payment details panel on the entry detail page and allow editing of those details for entries which were not processed by a payment add-on. Editing of Payment Details for entries already processed by a payment add-on is not supported.
For Gravity Forms 2.0 and newer you can use the Enable Gravity Forms Payment Details plugin.
For Gravity Forms versions older than 2.0, use the snippet below:
class RW_GF_Edit_Payment_Details {

public function __construct( $form_ids = array() ) {
if ( ! empty( $form_ids ) ) {
$this->_form_ids = $form_ids;
add_action( 'gform_loaded', array( $this, 'init' ) );
}
}

function init() {
if ( ! property_exists( 'GFForms', 'version' ) || ! version_compare( GFForms::$version, '1.9', '>=' ) ) {
return;
}

//add actions to allow the payment details to be modified
add_action( 'gform_payment_status', array( $this, 'admin_edit_payment_status' ), 10, 3 );
add_action( 'gform_payment_date', array( $this, 'admin_edit_payment_date' ), 10, 3 );
add_action( 'gform_payment_transaction_id', array( $this, 'admin_edit_payment_transaction_id' ), 10, 3 );
add_action( 'gform_payment_amount', array( $this, 'admin_edit_payment_amount' ), 10, 3 );
add_action( 'gform_after_update_entry', array( $this, 'admin_update_payment' ), 10, 2 );
add_action( 'gform_entries_first_column_actions', array( $this, 'maybe_set_payment_status' ), 10, 4 );

add_filter( 'gform_enable_entry_info_payment_details', '__return_false' );
}

public function maybe_set_payment_status( $form_id, $field_id, $value, $entry ) {
// payment details panel won't be displayed unless payment_status has a value
// only set the payment status when the entry is listed on the entries list page
// only set the payment status if its not already set and if it is the form we want
if ( rgempty( 'payment_status', $entry ) && in_array( $form_id, $this->_form_ids ) ) {
GFAPI::update_entry_property( $entry['id'], 'payment_status', 'Processing' );
}
}

public function admin_edit_payment_status( $payment_status, $form, $entry ) {
if ( $this->payment_details_editing_disabled( $entry ) ) {
return $payment_status;
}

//create drop down for payment status
$payment_string = '';

return $payment_string;
}

public function admin_edit_payment_date( $payment_date, $form, $entry ) {
if ( $this->payment_details_editing_disabled( $entry ) ) {
return $payment_date;
}

$payment_date = $entry['payment_date'];
if ( empty( $payment_date ) ) {
$payment_date = gmdate( 'y-m-d H:i:s' );
}

$input = '';

return $input;
}

public function admin_edit_payment_transaction_id( $transaction_id, $form, $entry ) {
if ( $this->payment_details_editing_disabled( $entry ) ) {
return $transaction_id;
}

$input = '';

return $input;
}

public function admin_edit_payment_amount( $payment_amount, $form, $entry ) {
if ( $this->payment_details_editing_disabled( $entry ) ) {
return $payment_amount;
}

if ( empty( $payment_amount ) ) {
$payment_amount = GFCommon::get_order_total( $form, $entry );
}

$input = '';

return $input;
}

public function admin_update_payment( $form, $entry_id ) {
check_admin_referer( 'gforms_save_entry', 'gforms_save_entry' );

//update payment information in admin, need to use this function so the lead data is updated before displayed in the sidebar info section
$entry = GFFormsModel::get_lead( $entry_id );

if ( $this->payment_details_editing_disabled( $entry, 'update' ) ) {
return;
}

//get payment fields to update
$payment_status = rgpost( 'payment_status' );
//when updating, payment status may not be editable, if no value in post, set to lead payment status
if ( empty( $payment_status ) ) {
$payment_status = $entry['payment_status'];
}

$payment_amount = GFCommon::to_number( rgpost( 'payment_amount' ) );
$payment_transaction = rgpost( 'custom_transaction_id' );
$payment_date = rgpost( 'payment_date' );
if ( empty( $payment_date ) ) {
$payment_date = gmdate( 'y-m-d H:i:s' );
} else {
//format date entered by user
$payment_date = date( 'Y-m-d H:i:s', strtotime( $payment_date ) );
}

global $current_user;
$user_id = 0;
$user_name = 'System';
if ( $current_user && $user_data = get_userdata( $current_user->ID ) ) {
$user_id = $current_user->ID;
$user_name = $user_data->display_name;
}

$entry['payment_status'] = $payment_status;
$entry['payment_amount'] = $payment_amount;
$entry['payment_date'] = $payment_date;
$entry['transaction_id'] = $payment_transaction;

//update lead, add a note
GFAPI::update_entry( $entry );
GFFormsModel::add_note( $entry['id'], $user_id, $user_name, sprintf( __( 'Payment information was manually updated. Status: %s. Amount: %s. Transaction Id: %s. Date: %s', 'gravityformspaypal' ), $entry['payment_status'], GFCommon::to_money( $entry['payment_amount'], $entry['currency'] ), $payment_transaction, $entry['payment_date'] ) );
}

public function payment_details_editing_disabled( $entry, $action = 'edit' ) {
$gateway = gform_get_meta( $entry['id'], 'payment_gateway' );

if ( ! empty( $gateway ) ) {
// Entry was processed by a payment add-on, don't allow editing.
return true;
}

if ( rgar( $entry, 'payment_status' ) != 'Processing' ) {
// Editing not allowed for this entry.
return true;
}

if ( $action == 'edit' && rgpost( 'screen_mode' ) == 'edit' ) {
// Editing is allowed for this entry.
return false;
}

if ( $action == 'update' && rgpost( 'screen_mode' ) == 'view' && rgpost( 'action' ) == 'update' ) {
// Updating the payment details for this entry is allowed.
return false;
}

// In all other cases editing is not allowed.

return true;
}

}

// pass in an array of form ids you want to allow editing the payment details for
new RW_GF_Edit_Payment_Details( array( 11, 407, 48 ) );

The code snippet would go in your theme functions.php file or a custom functionality plugin.

Enabling Conditional Logic For A Field

Enabling Conditional Logic For A Field

IntroductionBasic Conditional Logic ExampleConditional Logic Example using SectionsLimitationsPerformance

Introduction

The Enable Conditional Logic option in the field settings allows you to create rules to dynamically display or hide the field based on values from another field. In order to use conditional logic, you will need to add a field to your form which supports conditional logic.

After enabling conditional logic for a field, you will have the option to show or hide the field depending on whether all/any of the conditions you specify are met. You can specify additional conditions by clicking the plus icon to right of the conditions. Clicking the minus sign will remove the corresponding condition.

Basic Conditional Logic Example

In this example, we will use conditional logic to show different products based on a parent category. A dropdown field will determine what products may be purchased based on the current selection.

First, set up your fields. As we will be using a dropdown to handle the display of various products, start off by creating a single dropdown, a few product fields, and a total field to display the order total. In this example, we have created 3 different options within the dropdown for Jeep, Ford, and Honda, as well as product fields such as Wrangler, Cherokee, and Mustang.

As we want Jeep models to show up when Jeep is selected, Ford models when Ford is selected, and Honda models when Honda is selected, we will need to enable conditional logic on each of these products. Open the options on one of your products by clicking on the field, and click on the Conditional Logic section.

Within the fly-out, you should see a toggle labeled Enable Conditional Logic. When toggled on, the options to conditionally display or hide this field will be shown.

On each of your products, simply enable conditional logic, and use the dropdowns to only show when your dropdown equals the desired selection. For example, for our Wrangler product, we have set it to only show if the Option field equals Jeep.

That』s all there is to creating basic conditional logic within products. You should now be able to conditionally show or hide fields based on other fields in your form.

Conditional Logic Example using Sections

In this example, we will use conditional logic to show different sections of a form based on the user』s input. A radio button field will determine which form section displays based on the current selection.

As we will be using a radio button field to handle the display of the sections, start off by creating a single radio button field. In this example, we have created 3 different options within the radio button for Cat, Dog, and Fish.

Next you will need to create the different sections of the form using the Section field. Create the 3 sections of Cat, Dog, and Fish with the necessary fields under each section break. In this case we used Single Line Text, Number, and Paragraph fields.

As we want the Cat section to show up when Cat is selected, Dog section when Dog is selected, and Fish section when Fish is selected, we will need to enable conditional logic on each of these sections. Open the options on one of your sections by clicking on the field, and click on the Conditional Logic section.

Within the fly-out, you should see a toggle labeled Enable Conditional Logic. If you click the toggle on, the options to conditionally display or hide this field will be shown.

On each of your sections, simply enable conditional logic, and use the dropdowns to only show when your dropdown equals the desired selection. For example, for our Cat section, we have set it to only show if the radio button field equals Cat.

Limitations

As mentioned above in the introduction, conditional logic rules must be based on values from another field, configuring conditional logic to display or hide a field based on its own values is not supported. Fields hidden by conditional logic are ignored on form submission, this is one of the main reasons to use conditional logic and can』t be changed. This means fields hidden will be not available for any process done after form submission (e.g. Calculations) and not saved in the entry.Certain special characters, like pipe (|) greater than and less than ( < > ) or HTML tags in field values, can prevent conditional logic rules from working as expected. To avoid this problem when using a field with pre-defined choices, like a Drop Down or Radio Buttons field, we recommend enabling the 「show values」 setting in the field and ensure you use only plain text in the Value column for the choices, without any special character or HTML tags. Nested conditional logic. Please check the following documentation page for more details.

Performance

Conditional logic evaluation is done at client side (the browser) using JavaScript, and unfortunately browsers are not super fast doing these tasks. The browser has to process all fields to evaluate conditional logic and know which fields to display/hide, along with any other JS scripts that you may have in the page. Also some conditional logic use cases can add extra work to the browser, e.g. If you』re using conditional logic to show/hide a field and also using this same field as value in another field conditional logic that would make the browser to be constantly checking both fields rules, creating a loop and increasing the CPU resource usage of the browser.

This means if you have a huge form with lots of fields you may experience slowness in the form displaying or usage, this is something expected due to the explained above. The only workaround for improving the conditional logic performance in this case would be to reduce the number of fields or split your form in many smaller forms.

In the following tutorial you can see how to pass data from one form to another if you need it: Using Confirmation Query Strings to Populate a Form Based on Another Submission. There』s also a third-party add-on that could help to simplify the process: Easy Passthrough.

Enabling Conditional Logic for Notifications

Enabling Conditional Logic for Notifications

SummaryNotifications SettingsExample

Summary

Conditional logic can be used with Notifications to determine which notification is sent to the user based on the data they input into the form.

Notifications Settings

Go to the Notifications settings page of the form to enable conditional logic.

Here you can determine the criteria for sending the Notification.

Example

In this example we are using conditional logic to determine which notification should be sent to the user based on their answer to the question 「Do you own a pet?」.

First, we create a form with a field containing the question 「Do you own a pet?」.

Then we create two separate notifications: one for people who answer no and one for people for answer yes.

Then we enable conditional logic for each form accordingly. For the notification for people who do not have a pet, we set the conditional logic to 「Do you own a pet?」 is 「No」. This will send this notification to the users who said they do not own a pet.

For the notification for people who do have a pet, we set the conditional logic to 「Do you own a pet?」 is 「Yes」. This will send this notification to the users who said they do own a pet.

Click here to view a video demonstration.