Gravity Forms + Stripe Plugin
Build your own completely custom credit card payment forms with Stripe & Gravity Forms!
Accept one-time and recurring subscription payments directly on your WordPress site with Stripe — no coding (not even shortcoding) required.
“My client was getting killed with his prior e-commerce solution. (triple dipping, high gateway fees from 2 banks, prior site developer charging per reg fees, you name it)…”
That’s just one of the many quotes we get from our customers on why they look to Stripe to easily and securely process credit cards directly on their site, without having to deal with merchant accounts, PCI-compliance, or PayPal.
But why is it so hard to find a WordPress plugin that allows you to accept any type of Stripe payment?
AND doesn’t force you to jump through hurdles or completely limit the ability to collect the additional data you need?
You just want to be able to easily
- collect any type of custom data from your customer
- accept one-time and/or *recurring subscription payments
- allow your customer to enter their own payment amount
- *display prices and accept payments in multiple currencies
- *save or authorize cards instead of charging them right away (great for pre-orders)
- *accept Stripe discount coupon codes
- provide custom payment receipts
- create a user or a post on your site only if a payment was successful
- *allow your customers to log in and update their billing information or subscription plan, or
- *re-use their payment information without having to fill in credit card details again (great for one-click upsells)
without any coding at all, even “short”coding.
You’ve gone through all of the Stripe plugins you can find and they all seem to be missing one thing you really need to do.
What if you didn’t have to spend time trying to wrestle a plugin into submission and instead found exactly what you need?
“…Your plugin and Stripe have processed$38,000+worth of transactions in the past few monthswithout a hiccup. My client is thrilled” -David F.
The plugin is perfect for our requirement of having a multi-functional recurring payment form that gives more dynamism than a more generic payment form would allow. A+ -Cian O.
How much easier would your life be if you found a plugin that bends over backwards to help you be successful with your Stripe payments?
Built by someone that actually knows what they’re doing with Stripe, and keeps you and the plugin updated with changes to make sure your payments continue running smoothly without disruption?
“Naomi has hadthe most amazing customer supportwhile personally helping me through a problem until 3:00 a.m. (her time!) She’sknowledgeable about her product working with other plugins and stays current and up to date! I almost feel like she’s a friend now…” – Laurie
Gravity Forms + Stripe integrates with Gravity Forms — one of the best WordPress visual form builders (why reinvent the wheel?) – to allow you to create completely custom payment forms that are processed with Stripe.
Try it out
OR
*Get additional features with More Stripe here
Support Options
Support
Get important plugin updates
Get professional support
Request a new feature
Have the plugin setup or customized for you
Submit a translation
Report a bug
Contact me
Follow on Twitter for Gravity Forms tutorials and other resources
Current Limitations
- Cannot have Stripe Add-On activated at the same time as Authorize.Net, PayPal Pro or any other Stripe Add-Ons
- One Stripe form per page
Initial Supporters
daveshine, admodiggity, pnommensen, Linda C., jacobdubail, Michael S., Mark C., willshouse, Dan B., Aaron A., wpcdn, feshin, Scot R., Teresa O.
Installation
This section describes how to install and setup the Gravity Forms Stripe Add-On. Be sure to follow all of the instructions in order for the Add-On to work properly. If you’re unsure on any step, there are screenshots.
Requirements
Requires at least WordPress 3.9, PHP 5.3, Gravity Forms 1.9, and Stripe API version 2016-03-07. Works with WordPress Multisite.
Steps
Make sure you have your own copy of Gravity Forms. This plugin does not include Gravity Forms. It will work with any of the Gravity Forms licenses.
You’ll also need a Stripe account
Upload the plugin to your WordPress site. There are three ways to do this:
Visit the Plugins menu in your WordPress dashboard, find Gravity Forms + Stripe
in your plugin list, and click the Activate link
Visit the Forms->Settings menu, select the new Stripe tab, and add your Stripe API keys in the Stripe Account Information section. Save your settings.
Select the Settings tab and set your desired currency. The default currency for your Stripe account will chosen by default.
Create a form, adding at least one product field along with the new Credit Card field that appears under Pricing Fields.
In the Form Settings->Stripe menu, add a new Stripe rule for your form
If you need help, just click the Stripe Help button to access the documentation included in your WordPress dashboard
Screenshots
Activate Gravity Forms
Activate Gravity Forms + Stripe
Stripe settings page
Product and Credit Card field
Form Settings->Stripe menu
Create Stripe Rule
Stripe Rule page
Need help?
FAQ
Do I need to have my own copy of Gravity Forms for this plugin to work?
Yes, you need to install the Gravity Forms plugin for this plugin to work.
Does this version work with the latest version of Gravity Forms?
Just look at the version number! This plugin is structured to use the Gravity Forms version number in its own version number. So if the Add-On version number starts with a Gravity Forms major release number like 1.8, then it will work with Gravity Forms 1.8 and all of its minor releases — 1.8.1, 1.8.2, etc.
Does your plugin use Stripe.js?
Yes.
Do I need to have SSL?
Yes, according to the Stripe Terms of Service regarding PCI-compliance. Click the Stripe Help button in your WordPress dashboard for how to setup SSL on your site.
I’m having an issue — how do I figure out what’s wrong?
Click the Stripe Help button in your WordPress dashboard and the detailed troubleshooting section will appear
Your plugin just does not work
That’s not a question 😉 but I can assure you that is not the case — use the Stripe Help button in your WordPress dashboard to get help or check out all of the support options
Changelog
1.9.2.14 (Nov 2020)
1.9.2.13 (Oct 2020)
Default Stripe Settings
- Fix API key not validating due to new Stripe account restrictions
1.9.2.12 (Sep 2020)
Developers
- Update Stripe PHP library
1.9.2.11 (Jan 2018)
Developers
- Add missing Stripe PHP library files
1.9.2.10 (Jan 2018)
Developers
- Update to latest Stripe PHP library
Miscellaneous
- Update Gravity Forms helper functions
1.9.2.9 (Oct 2016)
Processing
- Add latest Stripe API changes
Developers
- Update to latest Stripe PHP library
1.9.2.8 (Sep 2016)
Processing
- Add latest Stripe API changes
Developers
- Update to latest Stripe PHP library
1.9.2.7 (March 2016)
DO NOT UPDATE if you also use More Stripe and don’t have version 1.9 or greater (email support for latest version).
Miscellaneous
- Fix issue with upgrader check preventing other plugins from installing. Credit: Mahbubur.
1.9.2.6 (March 2016)
DO NOT UPDATE if you also use More Stripe and don’t have version 1.9 or greater (email support for latest version).
Currency
Miscellaneous
- Fix fatal error when an incompatible version of More Stripe is installed
1.9.2.5 (March 2016)
Currency
- Clear currency cache
- Update currency retriever with latest Stripe API changes
1.9.2.4 (March 2016)
Processing
- Add latest Stripe API changes
1.9.2.1 (March 2015)
Processing
- Add latest Stripe API changes
Developers
- Update to latest Stripe PHP library
1.9.1.1 (February 2015)
Miscellaneous
- Bump version number to indicate support for Gravity Forms 1.9
1.8.20.1 (December 16, 2014)
Stripe Rules
- Give Stripe rule a custom name
Miscellaneous
- Bump version number to indicate support for Gravity Forms 1.8.20
- Update readme
Developers
- Add
gfp_stripe_edit_feed_js_data
filter - Add additional parameter to
stripeFormSelected
JS event
1.8.19.1 (November 6, 2014)
Data
- Add meta column to Stripe transaction table
- Save old Stripe rule ID before migration to new format
Processing
- Only enqueue JS if there’s a credit card field on the form
- Don’t look for credit card info if Stripe rule allows credit card to be omitted
- Make sure Stripe validation runs last
Miscellaneous
- Bump version number to indicate support for Gravity Forms 1.8.19
- Update readme
Developers
- Add
gfp_stripe_is_ready_for_capture
filter - Update Stripe PHP API
1.8.17.1 (October 28, 2014)
Form Editing
- Choose the Stripe card funding types you’d like to accept. Generously sponsored by Two Paper Dolls http://twopaperdolls.com/
Processing
- Perform card validation on the front-end
Miscellaneous
- Add latest version of FontAwesome because the Gravity Forms version is behind and the newer icons are needed
- Update POT
- Bump version number to indicate support for Gravity Forms 1.8.17
Developers
- Move inline JS to a separate JS file
- Add $form parameter to gfp_stripe_gform_get_form_filter
- Change
gfp_stripe_gform_get_form_filter
to gfp_stripe_rule_field_info
- Add option to retrieve transactions by user ID
- Add GF payment hooks
1.8.13.1 (September 8, 2014)
Languages
- Link to project on Transifex
Miscellaneous
- Bump version number to indicate support for Gravity Forms 1.8.13
1.8.12.1 (September 1, 2014)
1.8.2.13/RC5 (August 6, 2014)
1.8.2.12/RC4 (July 3, 2014)
1.8.2.11/RC3 (June 11, 2014)
1.8.2.10/RC2 (May 30, 2014)
1.8.2.9/RC1 (May 9, 2014)
1.8.2.8/beta5 (May 2, 2014)
1.8.2.7/beta4 (April 23, 2014)
Data
- Change Stripe transaction table structure
API
- Update Stripe PHP library to 1.17.2
Currency
- Fix incorrect path to Gravity Forms currency functions
- Add all Stripe currencies
- Handle zero-decimal currencies properly
Stripe Rules
- Allow extension functions to run before showing the Stripe customer fields
- Pass the Stripe rule type to extension functions
Default Stripe Settings
- Fix fatal error with checking account currencies with invalid API key
- Check for all possible query variables when determining current Gravity Forms settings page
- Use new Stripe dashboard link
- Display invalid key error message for live keys
- Add useful gravity+ links
Form Editing
- Add Stripe form settings page
- Add in-dashboard help
Form Display
- Only add scripts if there is a feed for the form
Processing
- Only save credit card field value if this was a Stripe form submission
- Convert old sack functions to jQuery ajax functions
- Use wp_send_json functions instead of manually dying
- Use new Gravity Forms API functions in place of deprecated ones
- Use stripe.js v2 and use new token response variables
Entry Details
- Use new Stripe dashboard link
- Save Stripe card ID instead of fingerprint
- Add Stripe Payment Details box since Gravity Forms doesn’t allow editing theirs
- Style entry notes for Stripe
Languages
- Update textdomain to support WordPress language packs. Textdomain is now gravity-forms-stripe instead of gfp-stripe
- Update POT
Miscellaneous
- Remove images and files that are available in Gravity Forms and use the Gravity Forms versions
- Remove unnecessary libraries
- Remove text version numbers
- Fix fatal error when upgrading Gravity Forms
- Move back to original version structure, using Gravity Forms version number
- Update for WP 4.0
- Minify JS
- Remove screenshots from plugin files and move to WordPress.org assets folder
- Bump version number
Developers
- Remove
gfp_stripe_entry_created_subscriber_id
. Use gfp_stripe_entry_post_save_insert_transaction
$id. - Remove
gfp_stripe_entry_created_insert_transaction_type
. Use gfp_stripe_entry_post_save_insert_transaction
- Remove
gfp_stripe_entry_created
. Use gfp_stripe_entry_post_save
- Fix WP PHP coding style issues
- Change
gfp_stripe_feed_transaction_type
from action to filter and reverse arguments order - Allow access to
is_last_page
, has_creditcard_field
, has_visible_products
- Allow transaction to be filtered before inserted into database
- Add the Stripe form data to the
gfp_stripe_get_order_info_shipping
hook - Replace autoloader
- Add & update PHPDoc comments
- Add helper function is_stripe_entry
- Add
gfp_stripe_feed_after_transaction_type
action - Add filter
gfp_stripe_entry_post_save_update_lead
- Add filter
gfp_stripe_entry_detail_payment_status
- Add filter
gfp_stripe_entry_detail_transaction_id
- Add action
gfp_stripe_payment_details
- Add JS event
gfp_stripe_rule_select_type
- Add JS event
gfp_stripe_rule_invalid_creditcard_error
- Add action
gfp_stripe_form_settings
- Add filter
gfp_stripe_pre_form_settings_save
1.8.2.6/beta3 (April 9, 2014)
Stripe Feeds
- Change feed terminology to rule due to constant confusion
Form Display
- Fix issue where conditional logic JS wasn’t added for forms with only one feed
Miscellaneous
- Remove unused code
- Make sure admin scripts and styles work in Gravity Forms no conflict mode
- Automatically deactivate if parent plugins deactivated
- Allow for multiple types of admin notices
- Check for necessary server requirements on activation
1.8.2.5/beta2 (April 6, 2014)
Data
- Fix upgrade functions running on new install
Stripe Feeds
- Fix Stripe feed CSS
- Fix PHP notice when adding a new feed
Default Stripe Settings
Miscellaneous
- Remove unused code
- Remove PressTrends
- Fix admin notices showing even though version numbers are correct
- Fix PHP notices
- Add new usage stats
Developers
- Remove Stripe Connect references
- Allow default mode override when creating error messages
- Add current settings to
gfp_stripe_feed_options
action - Add
gfp_stripe_gform_entry_created
1.8.2.4/beta1 (March 21, 2014)
Data
- Change Stripe table structure to store all Stripe form data, including new global form settings
Stripe Feeds
- Delete Stripe feeds when a form is deleted
Default Stripe Settings
Form Display
- Improve performance on form load — reduce calls to DB and implement caching
- Make sure only active feeds are retrieved
Miscellaneous
Developers
- Add
gfp_stripe_after_save_feed
hook - Add
gfp_stripe_get_publishable_key
hook - Add the form and temporary lead data to
gfp_stripe_form_data
filter
1.8.2.3/dev5 (March 3, 2014)
Stripe Feeds
- Fix Stripe Form Settings menu not showing on Entries page
Miscellaneous
- Remove images no longer needed
- Bump version number
Developers
- Make get_form_fields public
1.8.2.2/dev4 (March 2, 2014)
Stripe Feeds
- Remove Stripe subnav menu
- Add Stripe Form settings menu
- Move Stripe feeds to Stripe form settings page
Miscellaneous
- Fix WP coding style
- Use new WP and Gravity Forms admin styles
- Add new roles: gfp_stripe_settings, gfp_stripe_form_settings
- Bump version number
Developers
- Remove
gfp_stripe_save_feed
— use gfp_stripe_before_save_feed
- Remove symlink workaround due to symlink support added in WP core
1.8.2.1/dev3 (January 23, 2014)
API
- Update Stripe PHP library
Default Stripe Settings
- Fix broken license key image icons
Processing
- Fix proper currency not displaying in line item’s product price
- Update credit card field validation to account for multiple payment methods
- Save transaction details for all transactions
- Save currency used in transaction instead of default Gravity Forms currency
- Make sure credit card field is not empty when saving entry
- Allow More Stripe to process payments if it is available
Miscellaneous
- Use new WP and Gravity Forms admin styles
- Bump version number
Developers
- Make helper functions public
- Allow the mode to be specified when retrieving API keys
- Add
gfp_stripe_gform_field_validation
hook
1.8.1
- Fix menu not showing with Gravity Forms 1.8
- Fix fatal error when Gravity Forms is deactivated
- Fix validation result hook
- Fix duplicate admin notices
- Automatically set currency
- Bump version number
1.7.11.2
- Fix critical issue resulting from undocumented Stripe API change
- Bump version number
1.7.11.1
- Add new conditional logic options and fields for Stripe feed
- Add notice for incorrect version of Gravity Forms
- Update Stripe PHP library to 1.8.3 since 1.9.0 has issues
- Update for GF1.7.11
- Update for WordPress 3.7
- Bump version number
1.7.10.1
- Ensure GF1.7.10 compatibility
- Bump version number
1.7.9.1
- Add hook for customer description: gfp_stripe_customer_description
- Add hook for charge description: gfp_stripe_customer_charge_description
- Add hook for live mode error messages: gfp_stripe_error_message
- Add charge creation override
- Add check for curl when plugin activated
- Add filter ‘gfp_stripe_display_billing_info’
- Add action ‘gfp_stripe_set_validation_result’
- Add PSR-0 autoloader
- Add UI improvements
- Add PHPDoc to all the things!
- Add PressTrends
- Add check for Gravity Forms when plugin activated
- Add Gravity Forms deactivation prevention if Stripe Add-On is still activated
- Add support for Stripe accounts with multiple currencies
- Add Gravity Forms Logging Tool integration
- Update Stripe PHP API library to 1.8.4
- Update ‘gfp_stripe_customer_description’ hook to pass all of the submitted form data, and not just the name
- Update ‘gfp_stripe_create_error_message’ to show actual card error in live mode, since they are safe to show per Stripe API
- Update ‘gfp_stripe_customer_description’ hook parameters to replace $form_data with $form
- Refactor & reorganize code
- Rename hook ‘gform_stripe_action_fields’ to ‘gfp_stripe_feed_options’
- Rename hook ‘gform_stripe_add_option_group’ to ‘gfp_stripe_feed_setting’
- Rename hook ‘gfp_stripe_after_submission_update_lead’ to ‘gfp_stripe_entry_created_update_lead’
- Rename hook ‘gfp_stripe_gform_after_submission’ to ‘gfp_stripe_entry_created_subscriber_id’
- Rename hook ‘gfp_stripe_after_submission_insert_transaction_type’ to ‘gfp_stripe_entry_created_insert_transaction_type’
- Fix hook ‘gfp_stripe_gform_after_submission’ to include correct return value
- Fix undefined variable notice on stats page
- Fix PHP warnings
- Fix Stripe JS to get correct address fields from feed
- Fix Stripe condition not properly handling checkboxes and dropdowns
- Fix double form submissions if AJAX and 2+ forms on a page
- Move after submission processing from gform_after_submission to gform_entry_created
- Remove KLogger
- Remove currency disable
- Remove Stripe JS check for address_field_required
1.7.2.3
- Fix IE9 JS issue preventing card number submission
- Prevent Stripe API key whitespace error by stripping whitespace from API keys
- Fix annoying PHP warnings
- Clean up duplicate and unneeded code
1.7.2.2
- Fix issue with billing address not being sent to Stripe
- Add new billing address city field to Stripe token creation
- Remove hidden condition for sending billing address state and country to Stripe
1.7.2.1
- Update JS for credit card field change
- Fix currency detection performance issue
- Use original Stripe error in test mode, pretty errors in live mode
- Allow multiple Stripe feeds for multiple address fields on one form
- Fix annoying PHP warnings
- Update Stripe PHP library to 1.8.0
- Bump version number to latest version of Gravity Forms
1.6.11.1
- Add support for Canadian Stripe accounts
- Fix annoying PHP warnings
- Update Stripe PHP library
- Bump version number to latest version of Gravity Forms
1.6.9.1
- Switch to new version scheme that follows Gravity Forms
- Create a customer in Stripe for all transactions
- Fix Stripe JS to work without AJAX
- Fix issue with plugin not deactivating on uninstall
- Update to work with new Gravity Forms 1.6 fields
- Remove deprecated Stripe token parameter
- Allow unactivated Stripe test accounts to use in Test mode only
0.1.3
- Fix credit card field conflict with other GF payment add-ons
- Load Stripe JS only when form with a credit card field and Stripe feed is loaded
- Fix removal of credit card expiration date from information sent to server
- Add validation check for cardholder name and address
- Don’t process payment if total is less than $0.50
0.1.2
0.1.1
- Fix “Class ‘Stripe’ Not Found” error
0.1
- Initial release. Process charges (one-time payments) only.