Third Party Resources

Third Party Resources

Community Provided Add-OnsGravity Wiz (website)Gravity Perks (plugin)Gravity Flow (plugin)

Community Provided Add-Ons
We have created a library of third party add-ons that various developers have provided to work with Gravity Forms. Gravity Forms cannot guarantee or endorse these this party solutions, but we can certainly point you in their direction as the perfect solution to your problem may only be a search away!
Gravity Forms third party add-ons library.
A few of our community add-ons are actually offered by our very own team members (though these are not provided, guaranteed or supported by Gravity Forms in any way, but are listed here as a helpful sign post for our users)…
Gravity Wiz (website)
Created by one of the rocketgenius staff, Dave Smith, Gravity Wiz has tips, tricks and code snippets that will help add new features to Gravity Forms.
Check out GravityWiz.com for more information.
Gravity Perks (plugin)
Gravity Wiz also provides a paid service called Gravity Perks, a plugin and support package that gives you some useful features including:

Conditional Pricing (for dynamic product pricing)
Unique ID (for generating unique IDs)
Submission Preview (for providing a confirmation before submission)
Multi-page Form Navigation (for navigating more quickly between form pages)
Limit Choices (for providing the concept of inventory for your choices)
Copy Cat (for copying from one field to another)
And many more!

Check out Gravity Perks for more information.
Gravity Flow (plugin)
Another plugin by one of rocketgenius』 staff, Steve Henty. Gravity Flow allows you to automate your business processes. You can monitor, optimize & secure your workflow management with zero custom code.
Check out GravityFlow.io for more information.

Stripe Card Field

Stripe Card Field

Pre-RequisitesSummaryNotes

Pre-Requisites

This field is only available in the Form Editor if you have installed the official Gravity Forms Stripe Add-on.

If you drag the Stripe Card field onto your form without having completed your Stripe setup, you will get a warning message that either setup or a feed is required. Refer to our user guides for the Stripe Add-On for assistance there.

Summary

The Stripe Card field provides Credit Card input fields tied to integrating with the Stripe payment service. If you have another Payment Gateway add-on installed and active, the Gravity Forms Credit Card Field may still available in case you are allowing users to choose from a list of payment processors, such as Authorize.Net (which requires it). Conditional logic can be used to show/hide the Credit Card field depending on the payment processor selection.

Stripe Card as displayed in the Field Library

Stripe Card as displayed in the Form Editor.

This field will add the Credit Card Detail inputs for Stripe, as securely hosted by the Stripe service. The Card Details input collects the Card Number, Expiration Date, Security Code, and Cardholder Name. All fields are required and are passed onto Stripe. You can modify the Field Label and the Description for this field.

Notes

When using Page fields to create a multi-page form, the Stripe Card field should be located on the last page of the form.For more info on the Stripe payment methods and how the Stripe Card field works with some of them, refer to this guide.

Square Change Log

Square Change Log

1.5.31.5.21.5.11.5 | 2021-10-271.4 | 2021-02-241.3 | 2021-02-231.2 | 2020-09-151.1 | 2020-08-121.0 | 2020-03-18

1.5.3

Fixed an issue with subscriptions not being able to be created for existing customers without a name.

1.5.2

Fixed an issue where clicking submit twice for a form with a form total of 0 bypasses required Cardholder Name field.
Fixed an issue where a form with a form total of 0 requires the Cardholder Name field.
Fixed a fatal error when getting refunds during the hourly gravityformssquare_cron job.

1.5.1

Updated the styling for the disconnect alert messaging.
Fixed a fatal error which occurs on form render and the add-on settings pages for some hosting environments.

1.5 | 2021-10-27

Updated the behavior when SSL is not enabled to display a better error message and prevent the field from loading.
Updated idempotency key methods to improve uniqueness.
Updated Square Connect SDK to the most-recent Square PHP SDK.
Fixed a typo in subscription cancellation error message.
Fixed a typo in the text domain for the authentication notice.
Fixed an issue that prevents payments from submitting when a Square field is used in combination with invisible reCAPTCHA.
Fixed an issue where a Javascript error occurs on multi page forms with AJAX enabled.
Fixed an issue that causes a fatal error when running the add-on on older versions of WordPress.
Fixed an issue that causes subscription metadata to be updated with every call to the Square API even if the details are unchanged.
Fixed an issue that prevents the Square field from initializing when conditional logic criteria are unmet.
Fixed an issue where the Square field is incorrectly rendered when another form field is configured with conditional logic rules.

1.4 | 2021-02-24

Added support for creating subscriptions.
Added a cron job to handle data sync between Square and Gravity Forms.
Added a filter gform_square_data_sync_enabled to disable cron data sync.
Added a filter gform_square_subscriptions_sync_delay to adjust how much time between data syncs.
Added an admin notice that alerts site owners to re-authenticate Square to utilize the newest features.
Fixed the payment details link displaying on the entry detail page when the payment has not been captured.
Fixed a fatal error introduced with the multi-element field in version 1.3.

1.3 | 2021-02-23

Added a form editor option to display the Square field as a multi-element credit card input which allows the input sub-labels to be customized e.g. change ZIP -> Postal Code.
Added support for refunding a payment from the entry detail page.
Added functionality to refund a payment from the entry details page.
Added support for card authorization and subsequent payment capture via the entry details page.
Fixed JavaScript error that prevented frontend forms from fully loading.

1.2 | 2020-09-15

Added support for Gravity Forms 2.5.
Fixed an issue that leads to sending empty billing information to square.

1.1 | 2020-08-12

Added the ability to authenticate a Square account using a custom app.
Added accessibility enhancements to how credit card errors are displayed and announced.
Updated missing credit card details error message.
Fixed an error that prevents updating the credit card nonce when the user enters new credit card number after SCA failure.
Fixed a PHP notice which occur when no billing address is provided.
Fixed an error that prevents creating an order when an empty line item is provided.
Fixed a PHP notice which occur when API error details is missing.
Fixed a PHP fatal error which can occur if a customer can not be created while creating an order.
Fixed naming of the Square field in various locations.
Fixed strings for translations.

1.0 | 2020-03-18

All new!

Subscription Settings in the PayPal Payments Standard Add-On

Subscription Settings in the PayPal Payments Standard Add-On

Transaction Type-specific Options

When using the PayPal Add-Ons for Gravity Forms, you can set various transaction types depending on your needs such as Products and Services, Subscription, and Donations.

Transaction Type-specific Options

If you select Subscription within the Transaction Type dropdown, additional options that are specific to subscriptions will appear.

SettingDescriptionRecurring AmountSet the amount that the subscription will bill for. Using the drop down, you can set the recurring payment amount as one of your product fields or as the form total.Billing CycleSelect the amount of time in each billing cycle. For example, if you want the subscription to renew monthly, select 1 and Month within the dropdown.Recurring TimesConfigure the number of times a subscription will be renewed. By default, it is set to infinite.Recurring RetryEnable to automatically retry again if billing fails.TrialSet the initial purchase to be a trial period with a reduced price, after which it will renew at regular price. Once enabled, additional options will appear for the trial price as well as the time that the trial will be available before renewing at regular price.

If you need more information on configuring feeds within the PayPal Payments Standard Add-On, you may review our article on Creating a Feed for the PayPal Payments Standard Add-On.

Single Line Text

Single Line Text

SummaryCommon SettingsInput MaskMerge TagsUsageModifiers

Summary

The Single Line Text field allows users to submit a single line of text. This basic field can be used for anything where no more than a single line of input is required. It is available under the Standard Fields section within the form editor.

Single Line Text field as displayed in the Field Library

Single Line Text field as displayed in the Form Editor.

Common Settings

This field uses only common field settings for the General, 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.

Input Mask

Single Line Text and Post Custom Field are the only fields that have the Input Mask setting. You can learn more about input masks in this article.

Merge Tags

For more information on the use of merge tags, refer to these articles.

Usage

{Field Name:2}

Modifiers

This merge tag does not have any modifiers.

Time Field CSS Selectors

Time Field CSS Selectors

HoursContainerInput FieldSub-LabelMinutesContainerInput FieldSub-LabelAM/PMContainerSelector

Hours
Container
Contains the hours input field and sub-label

example: time – hours container (div) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_hour {border: 1px solid red}

example: time – hours container (div) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_hour {border: 1px solid red}

example: time – hours container (div) – applies just to specific container (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_hour {border: 1px solid red}

Input Field

example: time – hours input field (input) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_hour input {border: 1px solid red}

example: time – hours input field (input) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_hour input {border: 1px solid red}

example: time – hours input field (input) – applies just to specific form field (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_hour input {border: 1px solid red}

Sub-Label

example: time – hours sub-label (label) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_hour label {color: red}

example: time – hours sub-label (label) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_hour label {color: red}

example: time – hours sub-label (label) – applies just to specific sub-label (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_hour label {color: red}

Minutes
Container
Contains the minutes input field and sub-label

example: time – minutes container (div) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_minute {border: 1px solid red}

example: time – minutes container (div) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_minute {border: 1px solid red}

example: time – minutes container (div) – applies just to specific container (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_minute {border: 1px solid red}

Input Field

example: time – minutes input field (input) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_minute input {border: 1px solid red}

example: time – minutes input field (input) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_minute input {border: 1px solid red}

example: tim – minutes input field (input) – applies just to specific form field (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_minute input {border: 1px solid red}

Sub-Label

example: time – minutes sub-label (label) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_minute label {color: red}

example: time – minutes sub-label (label) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_minute label {color: red}

example: time – minutes sub-label (label) – applies just to specific sub-label (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_minute label {color: red}

AM/PM
Container
Contains the minutes input field and sub-label

example: time – AM/PM container (div) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_ampm {border: 1px solid red}

example: time – AM/PM container (div) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_ampm {border: 1px solid red}

example: time – AM/PM container (div) – applies just to specific container (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_ampm {border: 1px solid red}

Selector

example: time – AM/PM selector (select) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_time_ampm select {border: 1px solid red}

example: time – AM/PM selector (select) – applies just to form ID #1
body #gform_wrapper_1 .gform_body .gform_fields .gfield .gfield_time_ampm select {border: 1px solid red}

example: time – AM/PM selector (select) – applies just to specific drop-down field (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper .gform_body .gform_fields #field_XX_X.gfield .gfield_time_ampm select {border: 1px solid red}

Stripe Marks Charge As Recurring When It Is Non-Recurring

Stripe Marks Charge As Recurring When It Is Non-Recurring

IssueExplanation

Issue
Charges made through the Stripe Add-On have shown up flagged as 「recurring」, when they are not part of a recurring subscription plan.
Explanation
Stripe have confirmed that this is an expected behavior when the storage of customer card details is required.
The 「recurring」 flag in this instance does not necessarily indicate the customer is subscribed to a recurring billing plan, only that the card was saved for future charges.
Cards attached to non-recurring transactions cannot have all details stored, in keeping with PCI compliance requirements. Therefore the recurring flag must be used by Stripe in order to store card details for future charges, even if future charges are not automated as part of the plan.
Stripe have created this document to explain the change: https://support.stripe.com/questions/non-recurring-charges-show-as-recurring-on-customer-bank-statements.

Testing for a Theme/Plugin Conflict

Testing for a Theme/Plugin Conflict

IntroductionBefore you startA backup is always advisedIf using a third-party builder or modal to embed the formIf the page is being cached or minified by a plugin or hosting companyTesting for Theme ConflictsTesting for Plugin Conflicts

Introduction
Gravity Forms uses WordPress』 best practices to make it as compatible as possible with all themes and plugins; however, some theme and plugin authors do not adhere to these best practices which can often result in a theme or plugin conflict with Gravity Forms.
The following sections provide instructions for determining if an issue you are experiencing with Gravity Forms is caused by a third-party. If you determine that your issue is not caused by a third-party following these instructions, please open a support ticket. If you were directed to this topic after having opened a ticket please reply to the ticket confirming that you have followed these steps and were still able to recreate this issue.
Before you start
A backup is always advised
It is advised to create a backup of your WordPress as good practise. Because you know what will happen the one time you forget this step…
If using a third-party builder or modal to embed the form
For the troubleshooting, you will want to create a test page, to embed your form directly using the WordPress form editor, without third-party builders or modal solutions.
Both WordPress Classic Editor and Gutenberg are supported.
If the page is being cached or minified by a plugin or hosting company
Caching and automatic JavaScript optimization techniques have been known to cause issues with plugins and even core WordPress features. It』s great to cache static pages to speed up loading times, but caching dynamic pages where you do changes often is not always a good practice. additionally, trying to automate the optimization of the scripts on the page without knowing each script』s needs is a possible way to break JavaScript related features.
So if your page is being cached or using any JavaScript related optimization done by a plugin, a CDN (e.g. CloudFlare, Sucuri, KeyCDN, etc) or your host using an internal proxy, Varnish, Redis object cache or any other caching engine, make sure to flush the cache and turn off caching and JavaScript optimizations completely during testing. Failure to do this can create false positives due to cached resources or the optimizations done.
Below you can find links to instructions to exclude your form page from caching for most used cached solutions
Breeze – CloudWays
CloudFlare
SG Optimizer
Sucuri
W3 Total Cache
WP-Optimize
WP Fastest Cache
WP Rocket
Some Hosts like WP Engine or Kinsta require the user to contact their support to request excluding the desired pages from their cache.
Fresh Forms for Gravity is a plugin that can help to deal with caching automatically in most cases.
Testing for Theme Conflicts
To test for a theme conflict:

Activate a default theme such as Twenty Thirteen, Fourteen, Fifteen, Sixteen, or Seventeen
Check to see if the issue still occurs

If the issue does not occur after having activated a default 「Twenty」 theme, your theme is causing a conflict with Gravity Forms.
If the issue continues to occur, you should then test for plugin conflicts.
Testing for Plugin Conflicts
To test for a plugin conflict:

Deactivate ALL plugins
Activate Gravity Forms
Check to see if the issue occurs

For multisite installations, you will need to ensure ALL plugins are disabled both on the sub-site Plugins menu (if it』s available) and the Network Admin Plugins page.
Also note Must-Use and Drop-ins plugins don』t have a deactivate option, if you have any of these installed, you will want to download their files to a safe place and remove them for testing.
If the issue does not occur, one (or more) of your plugins is causing a conflict with Gravity Forms. To determine which plugin(s) is causing the conflict, follow these steps:

Activate each plugin one by one
Check to see if the issue occurs after each plugin is activated

Square Field

Square Field

Pre-RequisitesAboutGeneral SettingsSub-LabelsAppearance SettingsField StyleSimplifiedTraditionalNotes

Pre-Requisites

This field is only available in the Form Editor if you have installed the official Gravity Forms Square Add-On

About

The Square field provides Credit Card and Cardholder input fields as provided by the Square payment service.

It can be found in the Pricing Fields section of the Field Chooser sidebar.

This field will add inputs for card details (card number, expiration date, CVC, and zip code) and Cardholder Name. Those fields are actually provided by Square and hosted on Square』s servers for end-to-end security of payment information.

General Settings

Sub-Labels

You can set a custom sub-labels for the available input fields by modifying these fields. What fields are available for this is dependent upon the Field Style you choose.

General settings for simplified and traditional layouts

Appearance Settings

Field Style

You can set the field style for the input fields by selecting Simplified or Traditional. This determines how the card detail inputs are organized. Changing the field style type will change the sub-label and placeholder options respectively.

Simplified

The Simplified style presents all inputs for card details (card number, expiration date, CVC, and zip code) on a single line.

With this layout, you can only set a placeholder for the Cardholder Name.

Traditional

The Traditional style presents each input for card details (card number, expiration date, CVC, and zip code) in its own delineated field.

This configuration allows you to add placeholders for each card detail field.

Notes

See also the article creating a Square compatible form.

Note that both Credit Card Details and Cardholder Name are required fields for the Square field:When using Page fields to create a multi-page form, the Square field should be located on the last page of the form.If you delete the Square field from your form, the Square feeds will automatically deactivate. This prevents them from running during form submission and generating a validation error due to missing Square fields.Your Gravity Forms Currency Settings must match the Currency Settings in your Square account.If you have another Payment Gateway add-ons installed and active, other card fields may be available. To allow users to choose from multiple payment processors, conditional logic can be used to show/hide the Credit Card field depending on the payment processor selection.