Configuring PayPal Standard IPN Settings

Configuring PayPal Standard IPN Settings

Notice: As of September 2016, the PayPal IPN will require SSL/HTTPS on all IPN callbacks. If you are using the PayPal IPN, you will need to obtain an SSL certificate.
When using the PayPal Payments Standard Add-On from Gravity Forms, PayPal talks to the add-on using IPN which simply lets Gravity Forms know that the payment has been processed by PayPal. In this article, we will show you how to set up your PayPal IPN to communicate with the Gravity Forms PayPal Payments Standard Add-On.

Log into your PayPal account.
To access your PayPal IPN settings, you may either:

Access the IPN settings page directly. Or:
From within your PayPal account, click on the account icon (looks like a gear) at the top right of the page, then click on Profile and Settings. Click the My selling tools menu item to the left of the page. Click on Update to the right of Instant payment notifications.

Click on the Choose IPN Settings button.
You will be prompted with a field labeled Notification URL. Enter the following, replacing example.com with the domain that the Gravity Forms PayPal Payments Standard Add-On is installed.
https://example.com/?callback=gravityformspaypal (version 3.3.1+)
https://example.com/?page=gf_paypal_ipn (version 3.3 and older)

Select the radio button labeled Receive IPN messages (Enabled).

Save your changes.

PayPal Standard IPN is now enabled. When a purchase is made, it will send a notification to the PayPal Payments Standard Add-On, letting it know that the payment was successful. If you need further information on using the PayPal Payments Standard Add-On within Gravity Forms, review our article on setting up the PayPal Payments Standard Gravity Forms Add-On.

Confirmation Object

Confirmation Object

IntroductionUsageProperties

Introduction
The Confirmation object contains the form confirmation settings such as confirmation text or redirect URL. It is defined as an associative array.
Usage
$form["confirmation"]["type"]; // returns the confirmation type
$form["confirmation"]["message"]; // returns the confirmation message

Properties

type string
Determines the type of confirmation to be used. Possible values: message, page, redirect

message: displays a simple message
page: redirects to a WordPress page
redirect: redirects to an exterior page

message string
Contains the confirmation message that will be displayed. Only applicable when type is set to message.

pageId string
Contains the Id of the WordPress page that the browser will be redirected to. Only applicable when type is set to page.

url string
Contains the URL that the browser will be redirected to. Only applicable when type is set to redirect.

queryString string
Contains the query string to be appended to the redirection url. Only applicable when type is set to redirect.

Using Confirmation Query Strings to Populate a Form Based on Another Submission

Using Confirmation Query Strings to Populate a Form Based on Another Submission

The ChallengeHow To SolveQuick SummarySetting up the first form to send data using confirmationsSetting up the second form to receive the submitted data

The Challenge

You have two forms. The first form is used to capture general customer information, and the second is used to create a new user account on your site. Instead of creating an account with the first form using the user registration add-on, you would rather only register the user with the second form (maybe that form is used directly ions one circumstances, or the first form only creates the account under certain conditional logic criteria). In such a scenario, it is unfriendly to ask the customer to enter their information twice.

This tutorial covers a method to pass data submitted from the first form over as default values in the second.

How To Solve

The method described here uses query strings passed in the confirmation redirect, which allow you to pre-populate the second form based on the first form』s submission.

In this article, we will show you how to configure your forms and the confirmation such that data from the first form can automatically populate fields on the second form.

Want a simpler (third party) solution? For an alternative solution that is easier to setup and keeps your URL strings nice and clean, check out the third party plug-in Easy Passthrough from the folks at GravityWiz. They have a detailed 「how to」 article as well.

Quick Summary

For those that just need a quick summary, these steps may be enough. If not, review the detailed screens below.

In the first form:

Modify a confirmation of the first form to have Confirmation Type: Redirect.Enter the Redirect URL as the web page address of the second form. In the Pass Field Data via Query String field enter the query strings you wish to pass in a parameter_name=field_merge_tag format.

In the second form:

Select a field you want to receive from the first form. Check the box for 「Allow field to be populated dynamically」. Enter the query string you passed into the Parameter Name box for that field. Repeat for all passed fields.

Setting up the first form to send data using confirmations

To begin reading data from the first form, it must output the data in some way to allow the second form in the process to read from it. This is where confirmation query strings come into play. In this section, we will show you how to set up confirmation query strings to be passed from the first form to the second.

First, you will need to access your first form that will be entered by the user. In this example, we will be using a general customer information form. We will be including a Name, Email, Address, Website, and Phone field.

Next, hover over Form Settings and click on Confirmations. Select an existing confirmation, or add a new one. Most users would simply edit the default confirmation.

Once here, select the Redirect option for the Confirmation Type. This is because instead of simply displaying a confirmation message, we need to redirect data to the secondary form.

In the Redirect URL field, enter the URL of your secondary form. If you have not already created a second form, go ahead and do so as well as embed it within a page and obtain the URL for that page.The Pass Field Data via Query String field will be formatted such a way that you will have a variable containing a variable. The contents of these variables will be populated using merge tags. For example, it will look something like this: first_name={Name (First):1.3}&last_name={Name (Last):1.6} In the example above, we are creating variables for first_name and last_name, and assigning them to the corresponding submitted fields using merge tags. As we have multiple variables here, they are separated with an & symbol. To review and insert available merge tags, click the merge tag icon to the right of the field.Once all of your fields are configured to send the appropriate query strings to your secondary form, save your settings and continue on to the next steps to set up the second form that will receive the submitted data from the first.

Setting up the second form to receive the submitted data

Now that your first form is configured properly to send the submitted data via a query string, you will now need to set up the second form the receive that data and automatically populate fields from it.

Begin by accessing the second form that will receive data from the first.

Once you have done so, select a field that you would like to be automatically populated. In the screenshot below, we would like the Name field to be automatically populated.

From within your selected field, click on the Advanced tab and select the checkbox labeled Allow field to be populated dynamically. This will allow the field to become populated based on the data sent to it.

Now that dynamic population has been enabled for this field, you will simply need to map the query string variables that are sent in the first form, to be accepted and used in the second form. In the prior example that we used, the First Name field was set to the first_name query string variable. To allow the second form to accept and use this query string, simply enter first_name into the box labeled First, under Parameter Name. Of course, the exact information you will enter here will vary based on the query strings that you have created earlier.

That』s all there is to it. Any fields you configure this way will now become automatically populated based on the content you have configured them to receive from the initial form submission.

You should now have a solid understanding of how to dynamically populate a form based on another form』s submission.

Confirmations List Page

Confirmations List Page

ListingQuick Toobar ActionsConfirmation ColumnsEditing A ConfirmationDefault Confirmation

Listing

The Confirmation list page allows you to see all the confirmations for a particular form.

As of Gravity Forms 2.4, the list of confirmations may be sorted alphabetically by clicking on the 「Name」 column header.

Hovering over the confirmation name reveals the quick toolbar confirmation actions, each of which is described below:

Quick Toobar Actions

Active/Inactive: Active sets the current confirmation to use. Inactive means the confirmation is there but it is not currently in use.Edit allows to make any modifications to your confirmations.Duplicate will make a copy of that entire confirmation.Delete permanently removes the confirmation. This cannot be undone.

Confirmation Columns

Name of your confirmation. The list may be sorted alphabetically by clicking on the column header. Type: Different types of confirmations are listed. The Text confirmation will produce text you have entered in that field. The Page type links to the WordPress related page you have specified. The Redirect will redirect you to the URL you have provided. See Confirmation Settings for more information on types. Content is the information that is included in the type you have specified. Ex: Type (redirect) Content (http://www.google.com).

Editing A Confirmation

For information on configuring a confirmation, refer to this help article.

Default Confirmation

A form needs to always process one confirmation, and therefore the Default Confirmation cannot be deleted, removed, or inactivated.

To display a custom confirmation message, you will need to edit the Default Confirmation or create a new confirmation with conditional logic enabled appropriately. The Default Confirmation will be used if the logic fails on all other confirmations.

Connecting to Stripe in Live or Test Mode

Connecting to Stripe in Live or Test Mode

IntroductionPre-RequisitesConnect to a Live Account Connect to a Test AccountScreenshots

Introduction

You have two Mode options when connecting Gravity Forms to your Stripe account: Test and Live.

The process to connect to either is very similar, but we have noticed some differences when connecting a test account and using the 「Skip This Form」 option. This document explains how to connect to either Mode.

Pre-Requisites

See this guide for all the pre-requisites.

Connect to a Live Account

If connected to the live Stripe environment, any transactions passed will attempt to generate real charges.

Navigate to your Forms → Settings → Stripe Settings, and look for the Stripe Account section.Set the Mode to LiveClick the 「Connect with Stripe」 button.You will be presented with the Stripe sign-in page. Complete the sign-in process.You should now see a Stripe account selection page (these accounts are created from within your Stripe service dashboard, see this guide). The email address of your Stripe account will be displayed at the top of the page. Select the account you wish to use to collect live payments and click the 「Connect」 button. You may be presented with various Stripe forms requesting additional business information if your account is not fully setup for live payment. Complete any information Stripe requires, and then authorize the account to confirm connection to your Gravity Forms. You will be returned to the Stripe Settings page. You should see 「Connected to Stripe as」 with your account name as well as a 「Disconnect」 button.

Connect to a Test Account

Connecting to a Test account allows you to have a sandbox for testing the passing and behavior of submissions between your form and Stripe, but will not generate real transactions.

Unlike when connecting to a live account, this time you will not 「Connect」, but will instead 「Skip This Form」. This avoids all the Stripe account and connected bank verification steps that would otherwise be requested, and are not necessary when doing test submissions. To skip this step, you must have two-factor authentication enabled in your Stripe account

Login to your Stripe account and navigate to your Profile screen (click the icon in the top right corner). Ensure that you have two factor authentication (2FA) enabled in your Settings. See this Stripe guide for assistance. Go back to your WordPress dashboard, and navigate to your Forms → Settings → Stripe Settings, and look for the Stripe Account section.Set the Mode to TestClick the 「Connect with Stripe」 button. You will get a 「redirecting you to Stripe」 screenIf you logged into Stripe at Step 1, you should now see a Stripe account selection page (these accounts are created from within your Stripe service dashboard, see this guide). If not, you will bet presented with the Stripe login dialog first.Once logged in, this screen shows the email address of your Stripe account, and the words Test Mode, will be displayed at the top of the page. From the list of Stripe accounts provided, choose the account you wish to connect to for testing.Click 「Skip this Form」 at the top of page (next to where it states 「You』re currently in test mode」).You should now be redirected back to your Gravity Forms settings page, and see the the Stripe Account panel now says 「Connected to Stripe Account…」 and the name of the account you chose in step 7 should be displayed.

If your Settings screen shows 「Unnamed account「, this most likely means you did not have 2FA properly set. This is a newly created anonymous account, but as it is not connected to your account, you will not be able to see any of the test transactions you run. Disconnect this newly created account, and follow the instructions above.

Screenshots

The Stripe login dialog, as presented at the start of the connection process.

The account selection screen will present multiple options if you have multiple Stripe accounts connected to your email. This screenshot shows a Test mode connection.

The Skip This Form button, as described above for Test Mode connections.

Once successfully connected, the Gravity Forms Stripe Settings page will display the connected account.

Consent

Consent

SummaryCommon SettingsGeneral SettingsDetailsEntry ManagementForm RevisionsRelated Filters

Summary

The Consent field allows you to offer a 「yes/no」 consent checkbox and a detailed description of what is being consented to. It is available under the Advanced Fields section within the form editor.

Consent field as displayed in the Field Library

Consent field as displayed in the Form Editor.

When an entry is submitted, the consent field will record the status of the consent checkbox, and if it was checked (consent was provided), then the consent title and description (as presented at the time of submission) will also be recorded. See the Entry Management section below.

This field type was introduced in Gravity Forms 2.4.

Common Settings

This field uses only common field settings for the Appearance and Advanced settings. For a description of each of the common field settings, refer to this article. Below you will find description of specialty settings that are particular to this field.

General Settings

SettingDescriptionCheckbox LabelThis option allows you to specify the text the user will see next to the consent checkbox.

Details

HTML can be included in the consent description.The value of the consent description will not be displayed with the {all_fields} merge tag, but can be accessed by specifying the full input ID (i.e. {Consent:3.3}).

Entry Management

When processing an entry, the consent field will record the state of the consent checkbox (checked or not checked) . If the consent checkbox was checked, then the entry will also record the consent title and description, as was displayed at the time of form submission.

This allows you to modify the form and the details of consent, without affecting the historical record of exactly what previous submissions were agreeing to.

When displaying the entry detail, the entire consent description will be shown.

Form Revisions

Consent detail is recorded with an entry by storing the revision ID of the form that was consented to. This saves space in the entry table by reducing duplication. When displaying the entry detail though, Gravity Forms will show the entire consent description.

If you delete the form, all revision data is also deleted (along with all the entries, which is normal behavior).

Related Filters

The following filters were added to Gravity Forms in support of the consent field:

gform_consent_checked_indicatorgform_consent_checked_indicator_markup

Constant Contact Change Log

Constant Contact Change Log

1.5 | 2020-09-161.4 | 2020-07-201.3 | 2020-03-161.2 | 2019-11-271.1 | 2019-08-061.0 | 2019-03-11

1.5 | 2020-09-16

Fixed a PHP fatal error which can occur during form submission if the contact exists request fails.

1.4 | 2020-07-20

Added security enhancements.
Added a mapping for mobile phone number on the feed settings page.
Added partner code.
Added support for Gravity Forms 2.5.

1.3 | 2020-03-16

Added translations for Hebrew, Hindi, Japanese, and Turkish.
Fixed an issue with the position in the Form Settings menu when multiple add-ons are installed.
Fixed a PHP 7.4 notice which occurs when the API is initializing and the access and refresh tokens are not available.
Fixed a PHP 7.4 notice which occurs when processing the feed for a new contact.

1.2 | 2019-11-27

Fixed an issue where submissions may fail to be sent to Constant Contact because of an authentication error.

1.1 | 2019-08-06

Fixed a PHP fatal error which could occur on the feed settings page if a WP_Error was returned when getting the custom fields.
Fixed a PHP error which could occur when using the http_request_timeout filter with WP 5.1+.

1.0 | 2019-03-11

It's all new!

CSS Element Naming Structure

CSS Element Naming Structure

Element IDsConfigurable ClassesForm Wrapper ClassesTheme & Markup ClassesLabel Position ClassesField Size ClassesCustom ClassesMore Information

Gravity Forms are structured so that every element can be targeted and manipulated via CSS. Most elements share reusable class names to affect styling, and many elements have unique ID』s that you can use to target specific elements within the form. By using CSS inheritance, you can effectively style every element in your form.
Element IDs
Element ID』s utilize the unique ID of the form or field.
For example:

#gform_wrapper_xx where 「xx」 is the form ID, or
#field_xx_yyy where 「xx」 is the form ID and 「yyy」 is the field ID.

Configurable Classes
Form Wrapper Classes
Theme & Markup Classes
There are 2 classes applied to the form wrapper based on whether or not legacy mode is enabled for a form. The class .gravity-theme is applied to all forms that do no have legacy mode enabled. The class .gform_legacy_markup_wrapper is applied to all forms that have legacy mode enabled.
Label Position Classes
There are 3 label classes that are applied to the form wrapper based on the individual form settings, .top_label, .left_label and .right_label.
Other elements change positions, widths, etc. based on inheritance from these label classes.
Field Size Classes
For many of the individual fields, there are classes of .small, .medium and .large which are defined in the form admin by changing the field size setting.
Custom Classes
Finally, for most of the fields, the user can define additional class names with the Custom CSS Class setting in order to apply additional custom styles or to target elements for other types of manipulation.
More Information
We』ve put together a help guide and a visual CSS diagram to illustrate the structure of a form and the CSS class relationships in an article here.
Additionally, review our article of CSS targeting examples for an expanded list of elements.

Batchbook Change Log

Batchbook Change Log

1.3 | 2018-04-091.2 | 2017-01-051.1 | 2016-07-291.0 | 2015-07-28

NOTICE: The Batchbook service was ended, and the official Gravity Forms Batchbook Add-On was also retired . All user guides were removed in 2021.
1.3 | 2018-04-09

Added security enhancements.
Added GPL to plugin header.
Added gform_batchbook_person filter to modify person being created or updated.
Updated Plugin URI and Author URI to use https.
Renamed API class to prevent naming conflicts with other API libraries.

1.2 | 2017-01-05

Fixed strings for translations.
Fixed fatal error related to processing the person company data.
Fixed PHP warning.

1.1 | 2016-07-29

Added feed duplication support.
Added support for delaying feed processing until payment by PayPal Standard is successfully completed.
Updated available field types for mapping to the person first name, last name, and email.

1.0 | 2015-07-28

It's all new!

Breeze Change Log

Breeze Change Log

1.5 | 2020-09-241.4 | 2020-03-301.3 | 2018-04-091.2 | 2017-05-161.1 | 2016-05-161.0 | 2016-05-12

1.5 | 2020-09-24

Added support for Gravity Forms 2.5.

1.4 | 2020-03-30

Added translations for Hebrew, Hindi, Japanese, and Turkish.
Added support for feed duplication.
Fixed PHP 7.4 notices which occur on the feed configuration page when creating a new feed.
Fixed a PHP fatal error which occurs when accessing an existing feed after the add-on is connected to a different Breeze account.

1.3 | 2018-04-09

Added security enhancements.
Added GPL to plugin header.
Updated Plugin URI and Author URI to use https.
Fixed a PHP warning regarding http_build_query.

1.2 | 2017-05-16

Updated plugin description to be consistent with other Gravity Forms add-ons.
Fixed strings for translations.
Fixed an issue where a due date of Jan 1, 1970 was set on the card.

1.1 | 2016-05-16

Fixed a fatal error when using Gravity Forms 1.9.x.

1.0 | 2016-05-12

It's all new!