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.

Stripe Feed Meta

Stripe Feed Meta

IntroductionUsagePropertiesProduct Transaction PropertiesSubscription Transaction Properties

Introduction
The Feed Object meta for the Stripe add-on is an associative array containing the properties which determine what type of transaction should occur and what values are sent to Stripe.
12345678910$feed['meta'] = array(    'feedName'                       => 'Your Feed Name',    'transactionType'                   => 'product',    'paymentAmount'                   => 'form_total',    'receipt_field'                      => '3',    'feed_condition_conditional_logic'       => true,    'feed_condition_conditional_logic_object' => array(        'conditionalLogic' => array(),    ),);
Usage
We recommend accessing the $feed meta using the rgar() or rgars() functions, e.g.:
1$conditional_logic_enabled = rgars( $feed, 'meta/feed_condition_conditional_logic' );

Properties

feedName string
The feed name which appears on the add-ons feeds tab.

transactionType string
The type of transaction which should occur when the feed is processed. Possible values: product or subscription.

metaData array
An indexed array of custom meta information. Stripe allows a maximum of 20 custom keys to be sent. Each custom meta array contains the following properties.
12345array(    'key'        => 'gf_custom',    'value'      => '1.3',    'custom_key' => 'product_quantity',);

key string
Value should be gf_custom. Instructs the dynamic_field_map setting to use the custom_key input.

value string
The ID of the field containing the value to be sent for the specified custom_key. The mapped data will be truncated to 500 characters per requirements by Stripe.

custom_key string
The custom key you want to use when sending the custom metadata to Stripe. Must be 40 characters or less.

feed_condition_conditional_logic boolean
Is the feed condition (conditional logic) setting enabled. Default is false.

feed_condition_conditional_logic_object array
An associative array containing the conditional logic rules. See the Conditional Logic Object for more details.

Product Transaction Properties
The following properties are only applicable when the transactionType is set to product.

paymentAmount string
What to use for the payment amount. Possible values: form_total or a product field ID.

receipt_field string
The ID of the field containing the email Stripe should use when sending their receipt.

Subscription Transaction Properties
The following properties are only applicable when the transactionType is set to subscription.

recurringAmount string
What to use for the recurring amount. Possible values: form_total or a product field ID

billingCycle_length integer
How often should the recurring payment occur. Maximum values: 1 year or 12 weeks or 12 months.

billingCycle_unit string
How often should the recurring payment occur. Possible values: week, month or year.

setupFee_enabled boolean
Should a setup fee be charged? Default is false.

setupFee_product string
The ID of the product field containing the amount the user should be charged for the setup fee.

trial_enabled boolean
Should the recurring charge occur immediately or after a trial period? Default false.

trialPeriod integer
The number of days the trial period should last.

customerInformation_email string
The ID of the field containing the customer email.

customerInformation_description string
The ID of the field containing the customer description.

Upgrading to Stripe version 2.6

Upgrading to Stripe version 2.6

New FeaturesUpgrade NotesFurther Information

New Features
The Gravity Forms official Stripe add-on version 2.6 includes two new methods for collecting payment information:

Stripe Credit Card Field (Elements)
Stripe Payment Form (Checkout)

The two new methods for collecting information make the PCI compliance process easier, enhancing security because the credit card field (or the checkout form) are hosted by Stripe during the checkout process.
Upgrade Notes
When upgrading to Stripe v2.6 from a previous version, note that:

Previously created forms already using Stripe will continue to work and use the standard Gravity Forms Credit Card field.
Previously created forms already using Stripe will use the standard Gravity Forms Credit Card field even if you have chosen Stripe Payment Form (Stripe Checkout). To use the Stripe Payment Form (Stripe Checkout) Payment Collection Method instead, the Credit Card field will need to be removed from the form.
Previously created forms already using Stripe will use the standard Gravity Forms Credit Card field even if you have chosen Stripe Credit Card Field (Elements). To use Stripe Credit Card Field (Elements) instead, the Credit Card field will need to be removed from the form and the Stripe Card field added.

Further Information
For an overview of this release, refer to our blog post announcement.
For a list of changes, refer to the official change log.
For our user guides and help articles, check out the other articles contained in this section of our document site.

Stripe Change Log

Stripe Change Log

4.1.14.1 | 2021-06-304.0 | 2021-04-213.9 | 2020-12-163.8 | 2020-09-283.7 | 2020-07-163.6 | 2020-07-143.5 | 2020-05-213.4 | 2020-02-193.3 | 2019-12-183.2 | 2019-09-253.1 | 2019-09-183.0 | 2019-09-042.9 | 2019-08-152.8 | 2019-08-072.7 | 2019-04-172.6 | 2019-02-112.5 | 2018-04-092.4 | 2018-02-052.3 | 2017-04-282.2 | 2017-01-052.1 | 2016-09-232.0 | 2016-01-071.9 | 2015-10-091.8 | 2015-08-061.7 | 2015-06-231.6 | 2015-04-201.5 | 2014-11-191.4 | 2014-10-161.3 | 2014-09-241.2 | 2014-08-061.1 | 2014-07-291.0 | 2014-05-28

4.1.1

Updated the stripe API SDK methods.
Updated the styling for the disconnect alert messaging.
Fixed an issue where if future usage is set to 'on_session' and a user enters a 3DS card, they get an infinite loop and can't submit the form.

4.1 | 2021-06-30

Updated error messages when API isn't connected to be more informative.
Fixed an issue where the merge tags are replaced with fixed values when the subscription name is longer than the 200 character limit by Stripe.
Fixed an issue where an empty validation message appears if feed conditional logic is set.
Fixed an issue where an empty validation message appears as soon as a customer types in the credit card field.
Fixed an issue where the credit card icon overlaps with the placeholder text in the credit card field.
Fixed an issue where the form fails validation if the plan (price) or product, created by the add-on, is archived in the Stripe account.

4.0 | 2021-04-21

Added a warning notice when deprecated credit card field is still being used.
Added right-to-left language support to the Credit Card field in the form editor in Gravity Forms 2.5.
Updated styling on disconnect UI to look less like an error.
Fixed an issue where the add-on icon is missing on the Form Settings page for Gravity Forms 2.5.
Fixed an issue where the cardholder name sub-label setting is not correctly toggling in Gravity Forms 2.5.
Fixed an issue where HTML is output incorrectly when Stripe has not yet been set up.
Fixed an issue where authentication may not complete after attempting a connection with Stripe.

3.9 | 2020-12-16

Added support for the gform_ip_address filter.
Fixed an issue with the plugin settings where the default API mode is not set. Default is set to "test".
Fixed an issue where card details for the Stripe Card field is not rendered when the form also contains the default credit card field.
Fixed an issue where multiple feed specific callbacks can be processed for an entry at the same time.
Fixed an issue where an empty validation error can be applied to the Stripe Card field when some Stripe API errors occur.
Fixed an issue with the Stripe card field preview in the form editor.

3.8 | 2020-09-28

Added support for Gravity Forms 2.5.
Updated to support 50 metadata mappings.
Updated the Stripe SDK to version 7.36.1.
Fixed fatal errors which could occur if the Stripe API returned an error such as the payment amount not meeting the minimum amount for the currency.
Fixed subscription issues when a coupon is used.
Fixed stripe card field preview in the form editor.
Fixed an issue where the js.stripe.com/v3 script could be enqueued when not required.
Fixed an issue which results in charging the wrong amount when creating a subscription plan using a plan name that already exists on stripe.
Fixed an issue where an "Unable to authorize card. No response from Stripe.js." validation error occurs for forms using the Stripe Card and Invisible type reCAPTCHA fields.

3.7 | 2020-07-16

Fixed an issue where connecting to Stripe in live mode would revert to test mode.

3.6 | 2020-07-14

Added security enhancements.
Updated the Stripe card field scripts to use the credit card field input ID as the selector when mounting Stripe Elements.
Fixed a JavaScript error which could occur in some environments for the Stripe Card field scripts when using the form total as the payment amount.

3.5 | 2020-05-21

Added error messages to the Stripe Card field when no Stripe feed activated or Stripe Checkout is enabled.
Added accessibility enhancements to the Stripe Card Element so the screen readers can announce validation errors.
Added the gform_stripe_payment_intent_pre_create filter to allow modifying the payment data before creating a new payment intent.
Fixed the Stripe Checkout redirection issue for AJAX embedded forms.
Fixed the card type input of the Stripe Card field saving the brand slug returned by Stripe.js instead of the full brand name.
Fixed an issue where the credit card info is not updated after the customer replaces card details in multi-page forms.
Fixed an issue where the Stripe feed list would display a misleading configuration message in certain situations.
Fixed an issue with Stripe Elements where some amounts can lose precision when converted to the smallest unit of the currency.
Fixed PHP 7.4 notices on the settings and feed configuration pages.
Fixed a JavaScript error which could occur in some environments for the Stripe Card field scripts when using the form total as the payment amount.

3.4 | 2020-02-19

Added security enhancements.
Added support for Strong Customer Authentication (SCA) to the Stripe Card field (Stripe Elements) payment collection method.
Deprecated the Gravity Forms Credit Card Field.
Fixed an issue with Stripe feeds conflicting with feeds from other payment add-ons in the browser.

3.3 | 2019-12-18

Added security enhancements.
Fixed a PHP fatal error which can occur if the customer specified by the gform_stripe_customer_id filter can't be retrieved.
Fixed an issue where the Checkout session could fail to be created when the gform_stripe_customer_id filter returns a valid id and the customer email is supplied by the feed field mapping.
Fixed an issue where PHP fatal error is thrown when Stripe account is deleting test data.

3.2 | 2019-09-25

Fixed an issue where delayed feeds aren't triggered when a subscription trial has ended.
Fixed an issue which can prevent the redirect to Stripe Checkout occurring on some sites.

3.1 | 2019-09-18

Added the gform_stripe_discounted_line_items_name filter to change the default name for the custom line item of a discounted Stripe Checkout payment.
Added the gform_stripe_fulfillment filter to allow performing extra actions when a Stripe Checkout payment is fulfilled (it is charged or the subscription has started).
Added support for the webhook event "charge.captured" so when an authorized payment is charged, the entry payment status will change to "Paid".
Fixed an issue when some products with $0 unit price are removed from the line items for Stripe Checkout, the session fails to be created.
Fixed an issue when the product line items contain one with $0 unit price, Stripe Checkout can't create the session.
Fixed an issue where the Entry ID is missing from the payment description with Stripe Checkout.
Fixed an issue where GF Coupons discounts aren't applied to Stripe Checkout.
Fixed an issue where the merge tags in the subscription name don't work when the payment collection method is Stripe Card field or Credit Card field.
Fixed an issue where the confirmation page redirection causes PHP fatal errors when users are redirected back to the site from Stripe Checkout.

3.0 | 2019-09-04

Updated to use the new Stripe Checkout, which supports Apple Pay and Strong Customer Authentication (SCA/PSD2).
Added the gform_stripe_session_data filter to allow modifying the payment data for Stripe Checkout.
Added the gform_stripe_success_url filter to allow changing the URL that users will be sent to after completing the payment on Stripe.
Added the gform_stripe_cancel_url filter to allow changing the URL that users will be sent to after canceling the payment on Stripe.
Added the gform_stripe_url_port filter to allow changing the URL port if it's not 80.
Added the validation to webhooks signing secret fields.

2.9 | 2019-08-15

Fixed an issue where the incorrect API mode is chosen when authorizing payments.
Fixed an issue where form submissions are broken when the Stripe feeds are enabled by conditional logic.

2.8 | 2019-08-07

Added security enhancements.
Added a simpler and more secure way of connecting your Stripe account with Stripe Connect.
Added feed-level Stripe Connect. Users can connect to different Stripe accounts in feed settings.
Added the gform_stripe_connect_enabled filter to allow the disabling of Stripe Connect in order to use the legacy connection settings.
Fixed an issue cancelling subscriptions when using the gform_stripe_subscription_cancel_at_period_end filter with Stripe API version 2018-08-23 or newer.
Fixed an issue where the payment amount doesn't display correctly in the Stripe Checkout modal.
Fixed an issue when a Stripe Card field is on the page of a multi-page form, users cannot go back to the previous page by clicking on the "Previous" button.

2.7 | 2019-04-17

Fixed an issue that authorization errors weren't displayed for Stripe Checkout.
Fixed the amount decimal issue for Stripe Checkout.
Fixed an issue that no error message for the Stripe Card when no feed is activated.
Fixed an issue that when the Stripe API Publishable Key is empty or invalid, the form submission would fail but there was no error showed up for the Stripe Card field.
Fixed an issue that the Stripe Card field disappears after form validation failed in AJAX mode.
Fixed an issue that Cardholder Name in the Stripe Card field is always empty if it's not on the last page of a multi-page form.
Fixed an issue that Stripe Checkout modal should not be trigger when the form total is zero.
Added support for calculating all product fields as the form total in Stripe Checkout.
Added support to deactivate Stripe feeds when the Stripe Card field is deleted.
Added support to frontend feeds regardless of the payment collection method.
Added support for the currency filter gform_currency_pre_save_entry. Added a new JS filter gform_stripe_currency.
Updated webhook event logging statement to include the webhook API version.
Fixed Stripe Card field not rendering for forms embedded in front-end pages.
Fixed the credit card field button not being displayed in the form editor for existing installs.

2.6 | 2019-02-11

Added support for Stripe Checkout.
Added support for Stripe Credit Card (Stripe Elements).
Added support for the charge.expired event; changing the entry payment status from Authorized to Voided when an authorization expires.
Added the gform_stripe_entry_not_found_status_code filter enabling the status code to be overridden.
Reverted the callback error 'entry_not_found' to return a header status code of 200.
Fixed processing of "invoice.payment_succeeded" and "invoice.payment_failed" events with Stripe API version 2018-05-21.
Fixed a refund transaction being recorded in the sales tab when an authorized charge is manually released via the Stripe.com dashboard.
Fixed plan creation with Stripe API version 2018-05-21.
Fixed trials for new subscriptions with Stripe API version 2018-05-21.

2.5 | 2018-04-09

Updated callback error 'entry_not_found' to return a header status of 404.
Updated Stripe API library to version 5.9.2.
Fixed security issue.
Fixed subscriptions not being processed when using Stripe API version 2018-02-05 or newer.

2.4 | 2018-02-05

Added GPL to plugin header.
Added the gform_stripe_subscription_params_pre_update_customer filter allowing the subscription parameters to be overridden before the customer is subscribed to the plan.
Added support for webhook signing secrets.
Updated Plugin URI and Author URI to use https.
Updated webhook processing to use the API mode specified in the received event.
Updated Stripe API library to version 5.1.3.
Fixed API mode used to retrieve webhook event when signing secret is configured.
Fixed the card type validation message containing "false" in some situations.

2.3 | 2017-04-28

Added the gform_stripe_charge_pre_create filter.
Added translations.
Fixed spinner appearing when the previous button on the last page of a multi-page non-AJAX form is clicked.
Fixed Stripe.js request being made when the previous button on the last page of a multi-page form is clicked.
Fixed a fatal error which could occur if an older version of the Stripe API library is loaded by another plugin.

2.2 | 2017-01-05

Added $meta_key as the fifth parameter of the gform_stripe_field_value filter, containing the custom meta key currently being processed.
Updated string "Stripe Receipt" so it could be translated.
Updated Stripe API library to version 4.3.0.

2.1 | 2016-09-23

Added the gform_stripe_subscription_cancel_at_period_end filter.
Added the gform_stripe_charge_authorization_only filter.
Added the gform_stripe_customer_id filter.
Added logging of error retrieving Stripe Event object.
Added the gform_stripe_customer_after_create hook allowing custom actions to be performed between the customer being created and subscribed to the plan.
Updated included Stripe API library to latest version.
Updated subscription process to define subscription when customer is created if gform_stripe_customer_after_create filter is not defined.
Updated to only repopulate the card field within the last four digits on successful form submission.
Fixed a JavaScript error which occurred when the frontend scripts were included when the form had an active feed but no credit card field.
Fixed an issue where entry ID was not correctly populated in charge metadata.
Fixed an issue where entry ID was not correctly populated in customer metadata (for subscription feeds).
Fixed an issue which caused the credit card field required indicator to be missing when the form is displayed after a validation failure.
Fixed an issue with the card type validation.
Fixed an issue with the trial property from the $submission_data not being used.
Fixed an issue with the trial property from the $submission_data not being used when generating the plan id.
Fixed issue when sending empty meta data.
Fixed issue which could occur when saving an incomplete submission.

2.0 | 2016-01-07

Added support for sending notifications on payment/subscription events. Configured on the edit notification page using the 'Event' setting.
Added the gform_stripe_api_mode filter, e.g.
add_filter( 'gform_stripe_api_mode', function ( $api_mode ) {
return 'live';
} );
Added support for mapping a Coupon field when configuring a subscription feed.
Updated minimum Gravity Forms version to 1.9.14.17.
Updated billing cycle to include days.
Fixed an issue with zero decimal currencies.
Fixed an issue with the validation messages.
Fixed an issue with validation not returning an error if the stripe js response is empty or doesn』t contain an id.
Fixed an issue in authorize_product() and subscribe() where the entry currency was not being used.

1.9 | 2015-10-09

Updated feed list and edit pages to display configure settings message if the api keys for the selected mode are invalid.
Fixed an issue with credit card field validation when the field is marked as required.

1.8 | 2015-08-06

Updated Stripe Receipt drop down to only list email or hidden type fields.
Updated to use object notation when accessing $field.
Updated minimum Gravity Forms version to 1.9.10.19.
Fixed an issue which allowed feeds to be created with only partially configured metadata.
Fixed PHP notice related to the Metadata setting on the feed edit page.
Fixed php notice when saving a feed without any custom metadata.

1.7 | 2015-06-23

Added the ability to pass custom metadata to Stripe.
Added logging of API key validation failure (key is obfuscated).
Added $feed as the fifth parameter of the gform_stripe_charge_description filter.
Updated instructions on the settings tab for configuring Stripe webhooks.
Updated form submission to ensure form is only submitted once.

1.6 | 2015-04-20

Fixed a low severity security vulnerability in the admin area which could be exploited by authenticated users with form administration permissions.
Fixed issue where jQuery JSON library wasn't getting included.
Fixed issue that caused credit card field to get validated even when payment amount was zero.

1.5 | 2014-11-19

Added capability support and Member plugin integration.
Updated POT file.
Added Spanish (es_ES) translation.
Fixed a text domain typo in class-gf-stripe.php.
Fixed issue that prevents the form from being submitted if jQuery is put into no-conflict mode by subsequent plugins.
Created POT file.
Updated translation strings to using gravityformsstripe instead of gravityforms.

1.4 | 2014-10-16

Added text domain/path to header.
Added function gf_stripe to easily get a Stripe instance.
Updated to have the file class-gf-stripe.php and organized code into this file and stripe.php.
Updated protected functions to be public.
Updated key validation so that is is more forgiving with conflicts by trimming response before using it.

1.3 | 2014-09-24

Fixed conflict with the PayPal Add-On.
Fixed issue with email receipt feature displaying a warning when 'Do not send receipt' option was selected.
Fixed Notice message.

1.2 | 2014-08-06

Fixed issue when validating the live publishable key.

1.1 | 2014-07-29

Added receipt email feature so that Stripe receipts can be sent.
Updated key validation so that keys are trimmed before being validated and saved.
Updated API include statement so that it checks if API has already been included.
Fixed scripts from being output on every page of admin.
Fixed issue where credit card field generated validation error when navigating form.
Fixed issue with javascript error caused by the admin.js not being enqueued.
Fixed issue causing notification and confirmation to be sent blank.
Fixed issue with credit card validation.
Fixed issue where credit card was failing validation even when feed condition was not met.

1.0 | 2014-05-28

Initial release.

Using the Stripe Add-On

Using the Stripe Add-On

IntroductionPre-RequisitesSetup StripeSetup Your FormSetup Stripe FeedsViewing Sales ResultsAbout Payment Collection MethodsStripe Subscription CancellationsStripe Add-On HooksAdd-On Framework Hooks

Introduction
Gravity Forms and Stripe allows you to quickly and easily implement credit card payments with WordPress. With the Stripe Add-On you can capture one time credit card payments or setup recurring payment subscriptions.
If you are familiar with our other Gravity Forms Add-Ons, or even if you』re not, you』ll be right at home getting started with the Stripe Add-On!
Pre-Requisites

Gravity Forms v2.4+
WordPress v3.8+
SSL Certificate Installed and Configured
Download and install the add-on
A Stripe account

Because of the secure nature of capturing credit card information, you will be required to purchase and install an SSL certificate on your web site if you have not already done so. You will also need to configure your WordPress site to work properly with SSL.
Contact your web host if you need assistance purchasing and configuring an SSL certificate.
If you need assistance configuring your WordPress site to work with SSL, we recommend the WordPress HTTPS (SSL) Plugin which you can find here: http://wordpress.org/extend/plugins/wordpress-https/
Setup Stripe
Learn how to setup the Stripe Add-On in our Setting Up the Stripe Add-On article.
Setup Your Form
Refer to the Setting Up a Stripe Compatible Form article for detailed instructions on how to setup your form to be compatible with the Stripe Add-On.
Setup Stripe Feeds
Now that you have configured the Stripe Add-On to work with your Stripe account, and you have a form configured and ready to interact with Stripe, it』s time to bring it all together by configuring the form to integrate with Stripe. Just like all of Gravity Forms Add-Ons, this integration is done by creating a feed.
Review our Creating a Feed for the Stripe Add-On article for step-by-step instructions.
Viewing Sales Results
After creating a feed and making your first sale, you can view the results on the Sales Results page.  Review Viewing Sales Results article for more information.
About Payment Collection Methods
The Stripe Add-On offers multiple methods to collect payment information. Each method offers a different split of responsibilities between your form and Stripe as pertains to the collection and storage of payment related information. See this help article for more information on the payment collection methods offered.
Stripe Subscription Cancellations
When setting up a Stripe Subscription, please keep in mind that the only way to currently cancel a subscription is via the WordPress Admin or the Stripe admin. You can cancel an existing subscription by viewing the entry associated with the subscription and choosing the cancel option for the Stripe subscription.
Stripe Add-On Hooks
The Stripe Add-On provides hooks that can be used to modify the default functionality or extend it. For more information, review the Stripe Add-On Hooks.
Add-On Framework Hooks
Because the Stripe Add-On is built using the Add-On Framework it also inherits any hooks available in the framework methods it uses such as:

gform_short_slug_field_value for changing a field value before it is passed to Stripe.

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.

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!

Fighting Spam

Fighting Spam

IntroductionSolutionsHoneypotCaptchaSubmit Button Conditional LogicMulti-Page FormsBlock Search IndexingPluginsField ValidationSpam BlockersBlock by IPCloudflareCode SnippetsField ValidationSpam Filter

Introduction

Spam is a problem which impacts all publicly accessible forms and fighting it is complicated by the fact that spammers and bots are constantly evolving their methods. The good news is there are a number of solutions you can use to reduce the amount of spam which is successfully submitted. But note that there』s not any single anti-spam method in the world able to catch 100% of spam, because of that you can find hundreds of different anti-spam techniques and services, therefore for better results we recommend using multiple solutions at the same time.

Solutions

Honeypot

Gravity Forms includes a built-in honeypot feature which can be enabled on the Form Settings page of each form. When enabled the form will include a field which is hidden from visitors but is visible to bots. If this field contains a value when the form is submitted the submission will be ignored; the entry is not saved, notifications, and add-ons are not processed.

The gform_honeypot_labels_pre_render filter can be used to change the labels used by the honeypot field.

If HTML5 is enabled on the Forms > Settings page the autocomplete='off' attribute will be added to the input, which should help prevent the input being filled by browsers.

Captcha

Our reCAPTCHA Add-On adds Google reCAPTCHA v3 functionality into your toolbox. Refer to documentation here.

The built-in Captcha field is another method to reduce spam from bots although it can introduce accessibility issues. This integrates Google』s reCAPTCHA version 2.

Submit Button Conditional Logic

Add a single line text field to your form which asks a simple question. A real person should be able to answer the question correctly whereas most bots won』t.

Here are some examples:

A panda is black and _____4 + 7 = _____What goes up, must come _____A cow has how many legs? _____

On the Form Settings page of the form you would enable button conditional logic based on this question field. If the submitter doesn』t input the correct answer the form can』t submit.

Multi-Page Forms

If you will be accepting payments using a card or payment add-on field position it on the last page of the form. Enabling the required setting on a number of fields located on earlier pages can help ensure the card/payment add-on field is only used by those who have successfully completed the earlier pages in the form, reducing the chances of your form being used for fraudulent carding activity.

Block Search Indexing

Preventing search engines from indexing the page containing the form can help prevent your form being targeted by bots and spammers.

Google recommends using the noindex directive but if the page is already indexed you』ll also need to remove it via webmaster tools.

Plugins

Gravity Forms includes built-in support for the Akismet Anti-Spam plugin by Automattic. We also have an Akismet Add-On which enhances the integration with form level settings to help improve the quality of the data sent to Akismet for evaluation.

The following add-ons are from certified developers:

Gravity Perks Blocklist by Gravity Wiz can be used to validate submissions against the WordPress Disallowed Comment Keys. Disallowed Comment Keys was previously known as Comment Blocklist (WordPress 5.4) and Comment Blacklist (WordPress 5.3 and earlier).Gravity Perks Limit Submissions by Gravity Wiz can be used to limit the number of entries that can be submitted by almost anything (user, role, IP, URL, field value) for almost any time period.Gravity Forms Zero Spam by GravityView uses JavaScript to append a custom input to the form; if the input is not found in the submission or value does not match the expected value the submission is marked as spam.

The following third-party plugins also offer integrations with Gravity Forms. Any listing here is not a recommendation or endorsement of fitness for any purpose.

Field Validation

BSK Forms Blacklist by BannerSky.comGravity Forms Block Email Domains by Road Warrior CreativeGravity Forms Email Blacklist by hallmeG-Forms hCaptcha by Web & App Easy B.V is an alternative to reCaptcha.Byteplant Email Validator by byteplant.com enhances validation of Email type fields.Byteplant Phone Validator by byteplant.com enhances validation of Phone type fields.Dilli Email Validator by Dilli Labs LLC enhances validation of Email type fields.

Spam Blockers

Toolbelt by Ben GillbanksAnti-Spam by CleanTalkCerber Security, Antispam & Malware ScanWPBruiser + Gravity Forms ExtensionHuman Presence by Human Presence Technology

Block by IP

Block IPs for Gravity Forms by Team Bright Vessel

Cloudflare

Cloudflare offers a number of services which can protect your site (and forms) such as IP Access Rules that would allow you to even block entire countries easily, DDoS Protection, WAF, Bot Management, Rate Limiting, SSL/TLS, and DNSSEC to name just a few.

Code Snippets

Code snippets can be used in the theme functions.php file or custom functionality plugins.

Field Validation

The gform_field_validation and/or gform_validation filters can be used to perform custom validation of field values.

Integrate with QuickEmailVerification API

Spam Filter

The gform_entry_is_spam filter can be used to mark submissions as spam.

Integrate with OOPSpam Anti-SpamIntegrate with the Plino spam filtering serviceIntegrate with the ZeroBounce Email Validation APICheck field values for URLsRate limit submissions based on the IP addressCheck that first and last name inputs contain different valuesUse ipapi.co to check country code for IP addressGravity Forms and Disallowed Keys by Ipstenu (Mika Epstein)

{$SHORT_SLUG}_feed_actions

{$SHORT_SLUG}_feed_actions

DescriptionUsageParametersPlacementSource Code

Description
The SHORT_SLUG plus 「_feed_actions」 filter in Gravity Forms adds action links to feed items. *SHORT_SLUG* is replaced with the add-on short slug.
The article Gravity Forms Add-On Slugs lists the slugs and short slugs for the available add-ons.
Usage
1add_filter( '{$SHORT_SLUG}_feed_actions', 'your_function_name' );
To run the filter for MailChimp, replace {$SHORT_SLUG} as follows.
1add_filter( 'mailchimp_feed_actions', 'your_function_name' );

Parameters

$this->_action_links array
Existing actions links on the feed item.

$item array
The feed item.

$column array
The column ID.

Placement
This code should be placed in the functions.php file of your active theme.
Source Code
This filter is located in class-gf-feed-addon.php.

Slack Update for New API

Slack Update for New API

SummaryEffect of Deprecation on Versions 1.12 and PriorUpgrade ProcessTeam Invite Feature Deprecation

Summary

On Feb 24th, 2021, Slack will be deprecating their older API methods in favor of their updated Conversations API.
Users of the official Gravity Forms Slack Add-on will need to update to version v1.13 or later to use the new API methods..
Failure to update will affect feed settings after the Slack API deprecation date of Feb 24.
The 「Team Invites」 feature offered in previous versions will no longer work as of this update. Refer to this section.

Effect of Deprecation on Versions 1.12 and Prior
Users who do not upgrade will no longer be able to modify their Slack feed settings after February 24th, as the API endpoints used to list channels and group IMs will not be accessible. Upgrading will restore expected functionality to the feed settings.
Upgrade Process
Users who update to the new version will need to re-authenticate with their Slack service. You do that by disconnecting and reconnecting.

Disconnect from Slack using the 「Disconnect」 button in the Slack Add-On Settings page.
Connect to Slack again using the normal process described here.

After that, functionality should continue to work as it previously did with no changes needed, except the Team Invite feature, as described below.
Team Invite Feature Deprecation
Previous versions of our Slack Add-On offered the Team Invite feature, which relied on a legacy API endpoint and the admin scope of a legacy API token.
Under the new Slack API and tokens, the endpoints offered for this feature are now only available to Slack Enterprise Grid accounts.
As of this update, this feature will no longer function within our Slack Add-On.