Stripe Payments for WordPress – WP Simple Pay


In a few simple steps you can start accepting credit card payments with Stripe Checkout on your WordPress site.

What is Stripe Checkout?

“Stripe Checkout is an embeddable payment form for desktop, tablet, and mobile devices. It works within your site—customers can pay instantly, without being redirected away to complete the transaction.”

If accepting credit card payments quickly and painlessly is what you’re looking for, this plugin is for you.

Stripe Checkout is continually optimized across millions of transactions to maximize customer conversions.

WP Simple Pay is a standalone Stripe Checkout plugin built by Sandhills Development. No complex shopping cart, form builder or membership site plugin needed.

That’s it. No other plugins required.

Check out our demos & Pro version


  • Unlimited payment forms
  • Mobile responsive Stripe Checkout overlay
  • Display brand or product image in overlay
  • Optionally collect customer billing & addresses
  • Optionally verify zip/postal code without address
  • Support for 12 languages, 25 countries and 135+ currencies
  • Translation ready
  • AffiliateWP integration
  • Specify payment success & failure pages
  • Live/Test mode toggle
  • Code snippets & hook reference for developers


  • Everything in Lite plus…
  • Drag & drop form design controls
  • Custom fields to capture additional data
  • Custom amounts – let customers enter an amount to pay
  • Coupon code support
  • Tax rate support
  • Stripe Subscription support
  • Subscription installment plans
  • Subscription setup fees
  • Subscription trial periods
  • Easy Pricing Tables integration
  • MemberPress integration
  • Priority email support with a 24-hour response time during business days

Click here to upgrade to WP Simple Pay Pro


  • Desktop checkout overlay example
  • Mobile checkout overlay example
  • Settings: Stripe keys
  • Settings: Site-wide defaults
  • Settings: Payment confirmation details
  • Payment forms listing
  • Payment form settings: One-time amount
  • Payment form settings: Payment button
  • Payment form settings: Stripe Checkout overlay display


The easiest way to install WP Simple Pay is to search for it via your site’s Dashboard.

Step-by-step instructions

  1. Log in to your site’s dashboard (e.g.
  2. Click on the “Plugins” tab in the left panel, then click “Add New”.
  3. Search for “Stripe” or “WP Simple Pay” and find our plugin near the top.
  4. Install it by clicking the “Install Now” link.
  5. When installation finishes, click “Activate Plugin”.
  6. A new menu item “Simple Pay Lite” should appear in your dashboard.

If you prefer installing manually you can download the plugin ZIP file here.

Additional documentation at


Where’s your plugin documentation?

Find our docs at

Can I get notified by email of new releases?

Subscribe here to be notified by email of major features or updates.

How do I contribute to WP Simple Pay?

We’d love your help! Here are a few things you can do:


Better than PayPal, but they also hide info about refunds and fees

I use Stripe and so far have only found one major issue which they seem to hide. It’s not mentioned in any online articles or other reviews here.

When you refund a customer Stripe DOES NOT refund the transaction fees. Any of it. In ANY case. See here:
“You can issue either partial or full refunds. There are no fees to refund a charge, but the fees from the original charge are not returned.”
It’s not mentioned at all here:

Very sneaky indeed Stripe! I thought you were trying to be better than PayPal? Guess not. Shame too, as this is the only major issue I have had with them. However if they are willing to lie about this and hide any mention of it in their FAQs then what else have I yet to discover? PayPal in comparison will refund and adjust all fees except the $.30 transaction fee.

So users should be aware if they refund a customer they will out ALL of the transaction fees. Stipe will not refund ANY of the 3.9% or the $.30 charge. PayPal on the other hand will. As much as I hate PayPal this is a major reason to use them as a seller. $500 sale is $19.80 you will never see again – unlike with PayPal’s $.30. HUGE difference!

Beware and be warned!

No help regarding subscriptions

Very helpful except when you need to set up a recurring payment (subscription). The documentation then says: You must set it up in Stripe.
I tried. The Stripe documentation is also very non-existing. Then I tried to simply set a plan the best I could. Trial and error.
This one – of course – never showed up in Simple Pay Pro.
I even have the Simple Pay Business account, but the service remains go-help-yourself???
At first I headed for a 4 star review, but this disappointment makes it minus three. Sum: 1 star.

Extremely Satisfied. Delivers as promised.

I am extremely satisfied with wp simple pay. I have been using the free version for about a year now.
The best thing I can say about a plugin applies to this one:
After set up, I don’t have to baby sit it. It does what it says it will do reliably and without having to spare my thoughts on it.

There was recently a catch 22 issue with php after an update and it took less than a day for the creators to 1. offer me a temp solution 2. fix the issue. 3. release the update.

Peace of mind when it comes to whether or not your payments are being handled correctly. That’s priceless.

Rock solid

An easy, solid, smooth way to set up a very sensitive and complex thing: payments.

Missing one crucial feature

I like their Payment Forms setup for simple cases, but for my needs, the legacy 1.6 system works better. (I don’t know the final price ahead of time — it’s calculated in my system depending on the order.)

However, what I don’t see anywhere in their system is feedback following a purchase attempt. Yes, they direct to a success or a failure page, but there’s no way to connect the data that page receives to a specific sale attempt. My system can’t know what to (automatically) deliver to whom because there’s no identifier on the results pages to indicate what transaction it was linked to. If this functionality exists, I couldn’t find it in the documentation, and there’s no way I can find to include an order id in the $_POST or $_GET data sent to the pages. I can only get the Stripe charge ID, but I don’t have access to that earlier to store it in my database linked to a particular transaction.

So it’s good for SIMPLE stuff with manual follow-up, but it doesn’t work for me. I should have taken the word SIMPLE in the plug-in name more literally, but this seems like a really basic function to me.

Read all 45 reviews

Contributors & Developers

“Stripe Payments for WordPress – WP Simple Pay” is open source software. The following people have contributed to this plugin.


“Stripe Payments for WordPress – WP Simple Pay” has been translated into 3 locales. Thank you to the translators for their contributions.

Translate “Stripe Payments for WordPress – WP Simple Pay” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


2.0.12 – November 1, 2018

  • Dev: Added filter hook to add or modify arguments when a Stripe customer is created.
  • Dev: Added filter hook to allow additional attributes to be added to the payment form tag.
  • Dev: Updated to Stripe PHP library v6.20.0.

2.0.11 – July 27, 2018

  • Tweak: Various updates from Pro version.
  • Dev: Updated Accounting JS & Chosen JS libraries.
  • Dev: System report: Update Stripe API endpoint for the TLS 1.2 compatibility check.
  • Dev: Updated to Stripe PHP library v6.11.0.

2.0.10 – May 21, 2018

  • Tweak: PHP 5.4 or higher now required.
  • Dev: Updated to Stripe PHP library v6.7.1.

2.0.9 – April 2, 2018

  • Fix: Fix and simplify payment form previews.
  • Fix: Detection and warning about upcoming PHP 5.4 requirement.
  • Fix: Dequeue legacy public CSS in addition to main public CSS when “Default Plugin Styles” option is disabled.
  • Fix: Error when activating plugin with WP-CLI.
  • Tweak: Removed Bitcoin support inline with Stripe (
  • Dev: System report: Add mbstring (Multibyte String) check.
  • Dev: Updated to Stripe PHP library v5.9.2.

2.0.8 – January 5, 2018

  • Fix: Add option of switching to native PHP sessions.
  • Fix: Force use of native PHP sessions when hosting with Pantheon.

2.0.7 – December 21, 2017

  • Fix: (Better) session handling to work across various hosts. Back to using the current version of WP Session Manager ( (2.0.2).
  • Fix: Force use of native PHP sessions when hosting with Pantheon and using their native PHP sessions plugin.
  • Dev: Updated to Stripe PHP library v5.8.0.
  • Dev: Updated jQuery Validation & Chosen JS libraries.

2.0.6 – December 12, 2017

  • Fix: Check for an existing session before starting a new one.

2.0.5 – December 12, 2017

  • Fix: Session handling updated to work across various managed hosts. Now uses code from WP Native PHP Sessions ( over previously used WP Session Manager (
  • Fix: PHP 7.2 incompatibility – Misuse of reserved keyword “Object”.
  • Fix: Payment receipt session error message produced by a shortcode was improperly appearing in WP admin.
  • Dev: Added action hook for adding metabox setting panel content.
  • Dev: Updated to Stripe PHP library v5.7.0.

2.0.4 – October 25, 2017

  • Feature: Added option to set the payment success page (or redirect URL) per payment form.
  • Dev: Various structure related improvements.
  • Dev: Better handling of alternate Stripe API keys.
  • Dev: Updated to Stripe PHP library v5.4.0.

2.0.3 – September 10, 2017

  • Fix: Change directory path for legacy Stripe PHP library inclusion.
  • Fix: Undefined PHP constant that could sometimes cause a PHP warning.

2.0.2 – September 8, 2017

  • Fix: Prevent activation when WP Simple Pay Pro is active to avoid a fatal error.

2.0.1 – September 5, 2017

  • Fix: Change plugin main file name so it doesn’t deactivate on upgrade.

2.0.0 – September 5, 2017

  • Feature: Payment form settings overhauled to match WP Simple Pay Pro v3 update.
  • Feature: Payment forms can be optionally saved as drafts and previewed.
  • Feature: Button added to post editor for quickly adding payment forms to pages.
  • Feature: Shortcodes for payment forms have been notably simplified.
  • Feature: Shipping information can now be captured in the Stripe Checkout overlay.
  • Feature: Added currency formatting options to settings.
  • Feature: Payment details can now be edited using the standard post editor.
  • Feature: Admin bar now indicates if in test mode.
  • Fix: Removed support for Alipay since it is no longer supported through Stripe Checkout.
  • Dev: Removed POT file since WordPress has better ways of handling translations now.
  • Dev: Now using custom post type to hold individual form settings and to match Pro v3 update.
  • Dev: Add official PHP version requirement check from to readme.txt header.
  • Dev: Tested up to WordPress 4.8.
  • Dev: Updated to Stripe PHP library v5.2.0.

1.6.0 – March 29, 2017

  • Dev: System report: Fix for MySQL connection error output.
  • Dev: System report: Add SSL check.
  • Dev: Updated to Stripe PHP library v4.5.1.

1.5.9 – January 5, 2017

  • Dev: Added action hook taking place after a charge but before the page redirect. Props @ancentz

1.5.8 – December 8, 2016

  • Dev: System report tweaks for PHP 7 compatibility.
  • Dev: Updated to Stripe PHP library v4.3.0.

1.5.7 – November 17, 2016

  • Dev: Fix JavaScript type casting console warnings originating from Stripe.
  • Dev: Tested up to WordPress 4.7.
  • Dev: Updated to Stripe PHP library v4.1.1.

1.5.6 – October 27, 2016

  • Fix: Additional check for Pro version active.

1.5.5 – October 21, 2016

  • Fix: Corrected test mode not getting set correctly when using new alternate Stripe API key filters.

1.5.4 – October 17, 2016

  • Tweak: Removed alternate Stripe API key support using shortcode attributes due to reliability issues. They must now be added through filters.
  • Dev: Now sending application info with each Stripe API call to assist Stripe in debugging issues with accounts using the plugin.
  • Dev: Updated to Stripe PHP library v4.0.0.

1.5.3 – September 14, 2016

  • Fix: URL encode store name properly so it displays on payment details screen correctly.
  • Dev: Add filter for payment form CSS classes.
  • Dev: Move before payment button filter to proper place.
  • Dev: Updated to Stripe PHP library v3.22.0.

1.5.2 – July 29, 2016

  • Fix: Extra TLS compatibilty check via updated Stripe PHP library (v3.19.0).
  • Feature: Added Stripe TLS requirement to system report.
  • Dev: System report tweaks for PHP 7 compatibility.
  • Dev: Tested up to WordPress 4.6.

1.5.1 – June 18, 2016

  • Fix: Check for Pro version of WP Simple Pay to prevent fatal error in some cases.
  • Dev: Improve store name url encoding and escaping for display on payment success page.
  • Dev: Improve product name escaping for display on payment success page.

1.5.0 – March 6, 2016

  • Tweak: Admin toggle switch UI for Test/Live modes updated.
  • Tweak: Translations moved from .po/.mo files to official translation packs.
  • Tweak: Always enqueue scripts option removed. Now forced on unless dequeued in code.
  • Tweak: Stop execution of plugin instead of deactivating if Pro version detected.
  • Dev: Harden security by escaping text variables in inline JavaScript with esc_js().
  • Dev: Now using Composer to handle PHP library dependencies (i.e. Stripe PHP).
  • Dev: Tested up to WordPress 4.5.

1.4.6 – November 19, 2015

  • Dev: Tested up to WordPress 4.4.

1.4.5 – September 29, 2015

  • Fix: Re-added missing files to repository.

1.4.4 – September 29, 2015

  • Fix: Fixed undefined variable PHP error.
  • Dev: Updated to most recent Stripe PHP library (v3.4.0).

1.4.3 – August 31, 2015

  • Tweak: Updated locale setting to allow specific languages recently added by Stripe. Also now defaults to “auto” (user’s browser configuration).
  • Feature: Added System Report page to assist with troubleshooting and support.

1.4.2 – August 14, 2015

  • Fix: Added admin message when trying to activate Pro with Lite still active.
  • Tweak: Adjusted name of admin menu label to be shorter.
  • Dev: Updated existing sc_redirect filter.
  • Dev: Added new sc_redirect_args filter.

1.4.1 – August 9, 2015

  • Tweak: Added deactivation code so Lite and Pro versions don’t run at the same time.
  • Fix: Prevent conflicts with other plugins using Stripe.
  • Dev: Now using Grunt to automate build and file minification tasks.
  • Dev: Now JS & CSS files referenced are the minified versions. If SCRIPT_DEBUG set to true, all JS & CSS files referenced are the debug/unminified versions.
  • Dev: No longer using the WPupdatePHP library. – July 29, 2015

  • Fixed a bug that was causing a PHP fatal error in some cases. – July 27, 2015

  • Temporary revert back to old domain name ( due to DNS issues.

1.4.0 – July 25, 2015

  • Added shortcode attributes to allow alternate Stripe API keys other than those stored in the default settings.
  • Change of product name (WP Simple Pay Lite for Stripe).
  • Major code refactor.
  • Updated to most recent Stripe PHP library (v2.3.0).
  • Tested up to WordPress 4.3.

1.3.3 – May 20, 2015

  • Added the ability to accept Alipay payments via shortcode (alipay=”true” or “auto”).
  • Added optional Alipay shortcode attributes (alipay_reusable=”true” and/or locale=”true”).
  • Added the ability to accept Alipay payments via default settings.
  • Added the ability to show payment details below post content via shortcode (payment_details_placement=”below”).
  • Upon payment failure, the human-readable payment failure message is displayed instead of the failure code.
  • Updated to most recent Stripe PHP library (v2.1.4).

1.3.2 – April 24, 2015

  • Fixed bug where the data-sc-id attribute of each form was not incrementing when also using custom form IDs.

1.3.1 – April 22, 2015

  • Updated calls to add_query_arg to prevent any possible XSS attacks.
  • Added the ability to accept Bitcoin payments via default settings.
  • Now checks that host is running PHP 5.3.3 or higher using the WPupdatePHP library.
  • Option to always enqueue scripts & styles now enabled by default.
  • Updated to most recent Stripe PHP library (v2.1.2).
  • Tested up to WordPress 4.2. – March 13, 2015

  • Corrected the Stripe PHP class check to include new v2.0.0+ namepace. Should fix issues when running other Stripe-related plugins that utilize a version of the Stripe PHP library less than v2.0.0.

1.3.0 – March 12, 2015

  • Added the ability to accept Bitcoin payments via shortcode (bitcoin=”true”).
  • Updated to most recent Stripe PHP library (v2.1.1), which now requires PHP 5.3.3 or higher.
  • Scripts and styles now only enqueued on posts and pages where required.
  • Added option to always enqueue scripts and styles on every post and page.
  • Added function to remove unwanted formatting in shortcodes.
  • Cleaned up payment success and error details HTML.
  • Fixed duplicate payment success and failure output for rare themes that render multiple post content areas.
  • Added id attribute to shortcode to allow custom form id’s.
  • Now sanitizes Stripe API keys with invalid copied characters following a space.


  • Test/Live mode toggle switch updated. Now CSS only.


  • Updated to most recent Stripe PHP library (v1.17.3).
  • Updated to most recent Bootstrap Switch library (v3.2.2).
  • Tested up to WordPress 4.1.


  • Removed shipping address support. Not supported natively by Stripe Checkout now (see docs).
  • Simplified text domain function.


  • Added option to disable the default success message output.

  • Added missing PHP file.


  • Fixed a bug with the remember me option.
  • Fixed a bug with the test_mode attribute.


  • Allow display of more charge details on the payment success page. This is made possible by utilizing the Stripe charge ID to retrieve the entire charge object via the Stripe API.
  • Updated to most recent Stripe PHP library (v1.17.2).
  • Updated 3rd party JS/CSS library Bootstrap Switch.
  • Improved messaging for minimum required amount by Stripe (50 units).


  • Added option to save settings when uninstalling.
  • Added test_mode attribute to specify test mode per form.


  • Removed unnecessary code previously required for add-ons.
  • Updated to most recent Stripe PHP library (v1.17.1).


  • Fixed a bug with the disable CSS option.
  • Fixed a warning appearing for Network Admins of a multisite installation.


  • Added verify_zip shortcode attribute.
  • Added failure_redirect_url shortcode attribute.
  • Updated sc_redirect filter to allow modification for failed redirect URLs.
  • Fixed compatibility issue with the WordPress SEO plugin.
  • Tested up to WordPress 4.0.


  • Fixed bug where a blank email address was getting sent and causing some payments to hang or fail.
  • Now using WP Session Manager to handle session data.


  • Added prefill_email shortcode attribute.
  • Shipping name and address are now stored in payment metadata if enabled. Stripe does not store them natively.
  • Added basic form CSS and the option to disable it.
  • Added many filters and hooks for extensibility.
  • Implemented add-on infrastructure.
  • General usuability improvements to settings pages.
  • Updated to most recent Stripe PHP library (v1.16.0).
  • Included most recent Parsley JS validation library.
  • Moved in-plugin help to online help at


  • Added image_url shortcode attribute.
  • Added currency shortcode attribute.
  • Added checkout_button_label shortcode attribute.
  • Added payment_button_label shortcode attribute (thanks @enollo).
  • Added billing shortcode attribute.
  • Added shipping shortcode attribute.
  • Added enable_remember shortcode attribute.
  • Added success_redirect_url shortcode attribute.
  • Updated to most recent Stripe PHP library (v1.13.0).
  • Added a couple of action and filter hooks.
  • Fixed bug where other instances of Stripe class were causing errors.
  • Removed a default string being added to customer description in Stripe dashboard.


  • Fixed bug where customers would not receive an email receipt after purchase.


  • Initial release.