Stripe checkout plugin enables Stripe payment gateway on your WordPress site. It seamlessly integrates Stripe checkout functionality into your site and allows you to collect credit and debit card payments. Stripe checkout plugin offers SCA-ready (Strong Customer Authentication) checkout option with mobile-ready experience for your customers.
Features
- Accept payments on a Stripe-hosted payment page
- Accept Stripe one-time payments
- Validate cards in real-time with built-in error messaging
- Accept Stripe recurring payments
- Multiple payment methods for international payments
- Accept donations via Stripe
- Customize Stripe payment buttons
- PCI compliant and SCA-ready (strong customer authentication)
- Send email receipts to customers automatically
- Accept Apple Pay payments
- Accept Google Pay payments
- Accept Alipay payments
- Accept WeChat Pay payments
- Accept Bancontact payments
- Accept EPS payments
- Accept giropay payments
- Accept iDEAL payments
- Accept Przelewy24 payments
- Accept Sofort payments
- Accept Afterpay/Clearpay payments
- Accept Boleto payments
- Accept OXXO payments
- Accept ACH Direct Debit payments
- Accept Bacs Direct Debit payments
- Accept BECS Debit payments
- Accept Canadian pre-authorised debit (PAD) payments
- Accept SEPA Direct Debit payments
- Allow billing address collection at checkout
- Allow shipping address collection at checkout
- Allow shipping charges at checkout
- Allow phone number collection at checkout
- Allow user redeemable promotion codes at checkout
- Enable VAT/tax ID collection at checkout
Stripe Checkout Plugin Installation
- Login to your WordPress admin dashboard
- Go to Plugins->Add New
- Enter WP Stripe Checkout in the search box
- Once you find the plugin hit the install button
Option 2
- Download the zip version of the plugin
- Go to Plugins->Add New and switch to the Upload tab
- Select the zip file on your computer
- Upload and install it
Option 3
- Download the Stripe checkout plugin and extract the zip file
- Connect to your website via FTP (you can use a software like Filezilla to transfer files to your server) and browse to the “/wp-content/plugins” folder
- Select the folder containing the plugin files on your computer and upload it
- Once all the files have been uploaded to your web server you can activate the plugin from the Plugins menu (WordPress admin dashboard)
Stripe Checkout Plugin Configuration
Once you have installed the plugin you will be able to access the settings by navigating to “Stripe Checkout -> Settings”.
General Settings
In the general settings area, you will need to configure some options related to your Stripe merchant account.
Click on the “Save Changes” button when you are done.
Email Settings
In the email settings area, you can choose to configure some email related settings.
Email Sender Options
In this section, you can specify a From Name and From Email Address that will be used by the plugin when sending an email. You can leave them empty to use the default.
Purchase Receipt Email
WP Stripe checkout plugin allows you to send a purchase receipt email to the customer after completion of a successful purchase. By default, this feature is disabled. In order to use this feature, you need to enable it in the settings.
You can customize the following options in the purchase receipt email,
Purchase Receipt Email Subject: The subject line for the purchase receipt email.
Purchase Receipt Email Type: The content type of the purchase receipt email (Plain Text/HTML).
Purchase Receipt Email Body: The main content of the purchase receipt email. You can use various tags in the email body to dynamically change its content when it is sent.
Sale Notification Email
WP Stripe checkout plugin can send a sale notification email to your chosen recipient after completion of a successful purchase. By default, this feature is disabled. In order to use this feature, you need to enable it in the settings.
You can customize the following options in the sale notification email,
Sale Notification Email Recipient: The email address that should receive a notification anytime a sale is made.
Sale Notification Email Subject: The subject line for the sale notification email.
Sale Notification Email Type: The content type of the sale notification email (Plain Text/HTML).
Sale Notification Email Body: The main content of the sale notification email. You can use various tags in the email body to dynamically change its content when it is sent.
Email Tags
The following email tags can be used in the email body to dynamically change its content when an email is sent,
{first_name} – The buyer’s first name.
{last_name} – The buyer’s last name.
{full_name} – The buyer’s full name.
{customer_email} – The buyer’s email address.
{txn_id} – The unique transaction ID for this purchase.
{product_name} – The name of the product purchased.
{product_id} – The ID of the product.
{price_id} – The price ID of the product.
{currency_code} – The currency code used to make the payment.
{price} – The price of the product.
{quantity} – The purchased quantity of the product.
{amount_total} – The total amount of the purchase.
{amount_shipping} – The shipping amount of the purchase.
{billing_name} – The buyer’s billing name.
{billing_address} – The buyer’s billing address.
{shipping_name} – The buyer’s shipping name.
{shipping_address} – The buyer’s shipping address.
{wp_user_id} – The ID of the WordPress user. (WP User Tracking add-on is required)
Stripe Webhook Setup
Go to Developers > Webhooks > Add endpoint from your account dashboard and insert the URL shown in the plugin settings.
Select this event – checkout.session.completed and click Add endpoint. This is where Stripe will send a notification after a checkout payment is successful.
You will also need to add the checkout.session.async_payment_succeeded and checkout.session.async_payment_failed events if you plan to use a payment method where there can be a delay in payment confirmation. For example:
- Bacs Direct Debit
- Boleto
- Canadian pre-authorised debits
- OXXO
- SEPA Direct Debit
- SOFORT
- ACH Direct Debit
Stripe Orders
When you receive a new order you will be able to view it in the orders menu.
How to Use Stripe Checkout
The easiest way to get started is to add the following shortcode to a post/page.
[wp_stripe_checkout_session name="My Product" price="2.99"]
The shortcode will create a one-time payment button. Replace the value of name with your product name and price with the actual product price.
Shortcode Parameters
wp_stripe_checkout_session shortcode currently supports the following parameters:
description
The description of the product (optional). No description is set by default.
[wp_stripe_checkout_session name="My Product" price="2.99" description="My Product Description"]
button_text
The text displayed inside the button (optional). The default is “Buy Now”.
[wp_stripe_checkout_session name="My Product" price="2.99" button_text="Pay Now"]
button_image
If you want a custom image to act as the button you can use the button_image parameter instead (optional). The default is a plan button with the text “Buy Now”.
[wp_stripe_checkout_session name="My Product" price="2.99" button_image="https://example.com/wp-content/uploads/pay-now-button.png"]
success_url
The URL to which Stripe will redirect upon completion of a successful payment (optional). The default is the Return URL specified in the settings.
[wp_stripe_checkout_session name="My Product" price="2.99" success_url="https://example.com/success"]
cancel_url
The URL to which Stripe will redirect when a payment is canceled (optional). The default is the home URL for your site.
[wp_stripe_checkout_session name="My Product" price="2.99" cancel_url="https://example.com/cancel"]
billing_address
You can specify whether Stripe should collect the customer’s billing address (optional). By default this parameter is not set which means Stripe will only attempt to collect the billing address when necessary.
[wp_stripe_checkout_session name="My Product" price="2.99" billing_address="required"]
You can also set this parameter to “auto” which is equivalent to empty at the moment.
phone_number_collection
You can specify whether Stripe should collect the customer’s phone number (optional). By default this parameter is not set.
[wp_stripe_checkout_session name="My Product" price="2.99" phone_number_collection="true"]
When phone number collection is enabled, a required phone number field is added to the payment form.
allow_promotion_codes
You can specify whether Stripe should allow user redeemable promotion codes at checkout (optional). By default this parameter is not set.
[wp_stripe_checkout_session name="My Product" price="2.99" allow_promotion_codes="true"]
tax_id_collection
You can specify whether Stripe should collect the customer’s VAT/tax ID (optional). By default this parameter is not set.
[wp_stripe_checkout_session name="My Product" price="2.99" tax_id_collection="true"]
When tax ID collection is enabled, a tax ID collection form will be automatically shown on the payment page depending on your customer’s location.
consent_collection_promotions
You can specify whether Stripe should automatically collect consent from customers for promotions (optional). This gives you the permission to send promotional emails which are often sent to inform customers of new products and to share coupons and discounts. By default this parameter is not set.
[wp_stripe_checkout_session name="My Product" price="2.99" consent_collection_promotions="auto"]
prefill_wp_email
You can specify whether the current user’s email address should be automatically passed to Stripe (optional). By default this parameter is not set.
[wp_stripe_checkout_session name="My Product" price="2.99" prefill_wp_email="true"]
This requires the user to be logged in to WordPress.
class
Custom CSS class for the button (optional).
[wp_stripe_checkout_session name="My Product" price="2.99" class="btn"]
Multiple CSS classes can be added in a space-delimited format.
[wp_stripe_checkout_session name="My Product" price="2.99" class="btn btn2 btn3"]
target
You can specify whether the button should open in a new tab (optional). By default this parameter is not set.
[wp_stripe_checkout_session name="My Product" price="2.99" target="_blank"]
WP Stripe Checkout Add-ons
WP Stripe Checkout plugin comes with various add-ons that you can use to enhance its functionality on your website.
Variable Price
Variable Price addon lets customers set the amount they will pay. It can also be used for accepting donation payments via the Stripe payment gateway.
Variable Quantity
Variable Quantity add-on lets customers set the quantity they will purchase. This is done by creating adjustable product quantity fields for Stripe payment buttons.
Submit Type
Submit Type add-on allows you to customize the type of the submit button that appears on the Stripe payment page.
Terms of Service
Terms of Service add-on allows you to show a terms of service checkbox on the Stripe payment page.
Variable Currency
Variable Currency add-on lets customers pay in their preferred currency. It can be great for accepting donation payments via the Stripe payment gateway.
WP User Tracking
WP User Tracking add-on tracks payments made by logged-in WordPress users on your website.
WP User Only Button
WP User Only Button add-on allows only logged-in WordPress users to view payment buttons.
How to Use Stripe Payment Links
Payment link is a Stripe feature that allows you to sell online easily. You can create payment links with a few clicks and share easily with your customers to accept payments. When someone follows a payment link, they will go straight to the Stripe payment page. This makes the checkout process faster and easier for customers without you having to worry about coding.
If you wish to integrate Stripe payments links with our plugin you can follow this method.
1. Create a Payment Link
Log in to your Stripe account dashboard and navigate to the Payment links page (Payments > Payment links). Select an existing payment link or create a new one (by selecting an existing product or adding a new one).
2. Use the Payment Link in a Shortcode
Add the following shortcode to a post/page to create a button with the payment link.
[wp_stripe_checkout_payment_link url="https://buy.stripe.com/live_6gPE4jw7dMbUKdd3345"]
Replace the value of url with your payment link url.
Here is a video that shows how Stripe payment links integration works: https://www.youtube.com/watch?v=M0lMMlJVw4M
Shortcode Parameters
Stripe payment link shortcode currently supports the following parameters:
button_text
The text displayed inside the button (optional). The default is “Buy Now”.
[wp_stripe_checkout_payment_link url="https://buy.stripe.com/live_6gPE4jw7dMbUKdd3345" button_text="Pay Now"]
button_image
If you want a custom image to act as the button you can use the button_image parameter instead (optional). The default is a plan button with the text “Buy Now”.
[wp_stripe_checkout_payment_link url="https://buy.stripe.com/live_6gPE4jw7dMbUKdd3345" button_image="https://example.com/wp-content/uploads/pay-now-button.png"]
target
You can specify whether the payment link button should open in a new tab (optional). By default this parameter is not set.
[wp_stripe_checkout_payment_link url="https://buy.stripe.com/live_6gPE4jw7dMbUKdd3345" target="_blank"]
Custom Button/Link Integration
If you have a custom button/link that you wish to integrate with our plugin and Stripe payment links, you can do so by adding “?client_reference_id=wpsc_payment_link” to the original payment link url.
https://buy.stripe.com/live_6gPE4jw7dMbUKdd3345?client_reference_id=wpsc_payment_link
Please note that our add-ons will not work with this custom button/link integration.
WP Stripe Checkout Add-ons for Payment link Buttons
The payment link integration offers add-ons that you can use to enhance its functionality on your website.
Payment Link Email
Payment Link Email add-on can collect email addresses from buyers and prefill on the Stripe payment page.
WP User Tracking
WP User Tracking add-on tracks payments made by logged-in WordPress users on your website.
WP User Only Button
WP User Only Button add-on allows only logged-in WordPress users to view payment buttons.
Stripe Email Receipt
Stripe can automatically send a receipt to your customer via email after completion of a purchase. All that is required for this option is the email address of the customer at checkout. The plugin will collect the email address entered in the simple pay form and notify Stripe so a receipt is automatically sent to the customer upon purchase.
Stripe Customer Portal
Stripe customer portal is a Stripe-hosted portal that allows your customers to manage their subscriptions and billing details themselves. The easiest way for your customers to access this portal is through a customer portal link that you can generate from your Stripe account dashboard.
How to Activate Stripe Customer Portal
1. Go to Settings > Billing > Customer portal from your Stripe account dashboard.
2. Click Activate link.
You can add the customer portal link to your website or send it to your customers via email.
Technical Support
Note:
* We will try our best to resolve the issue. But there is no refund/cancellation whether or not the issue is resolved.
can we add extra parameters for email using option 2?
@Ubaid, What parameters do you want to add?
Hello, is it possible to have a tag for custom fields in checkout page ?
@KZalm, Could you please elaborate?
Hello, how to add Email via shortcode?
[shortcode email="test@test.com" price=""]
and so on
why does it not work?
@peter, There is no such thing. Stripe will automatically collect this on the payment page.
Hello, the customer needs to put the email again in the payment form.
But before with other plugins it was possible to pre set the Email.
In your addon you give the option to automatically add the wordpress email, why not inside the shortcode? because then we can add the email via database and PHP
@peter, Thank you for the feedback. Unfortunately this feature was never available in the plugin. Also it’s not possible for the plugin dynamically add this as a shortcode parameter.
Hello, somehow I cant see my reply:
what I need is a email field inside the shortcode.
Stripe doesnt automatically collects the email if customer is not logged in, but we want to give the Email via PHP inside the shortcode.
please activate that feature.
thank you
Hi,
If I use STRIPE recurring payments will I get an API call from STRIPE every time a new payment has been made (e.g. every month)? If not, is there another way I can check that a subscription is still valid?
Cheers // Christer in France
@Christer, rebill payments are not recorded at the moment. However, you should be able to check by logging in to your Stripe account.
Hi there!
Thank you for developing this plugin.
I was looking for something similar based on use of “Stripe Payment Element” that I could embed into a template using a short-code but I am not having any luck. The element is described here:
https://stripe.com/docs/payments/payment-element
I like it because it is done well, has some configuration options for design and use and it would look nice embedded into other wp pages.
I am not holding my breath 🙂 but if you know of something like that I will take suggestions.
I do like the design of the checkout pages so I am exploring your plugin as a possible solution. I have some custom data that I need to pass/process during the purchase and after.
For example,
I want to pre-fill the email field which I think I can do with your short code params but I don’t see if it is possible to hide the email field on the form. Is this possible?
I am also interested in potentially adding some custom fields (or hidden form fields) to the checkout form to pass additional information such user ID so that I can tie the purchase in with the user account. Do you know if this is possible?
Also, I think it is possible to embed the checkout into a site page or run the payment page on the domain of the website instead of sending the user to stipe domain. Any suggestions on this?
Either way, thank you!
@Kris, You’re welcome :). Unfortunately the plugin does not support these features at the moment. You can check this link that explains why Stripe moved to offsite checkout:
https://stripe.com/docs/strong-customer-authentication
I chose to use a custom domain with stripe checkout as it is clean and works well. I am trying to work through somehow uniquely identifying a product so I can tie it in with the post purchase process. Can we pass a product_id to the shortcode and fetch it back after payment is processed?
In the dashboard you have products but you noted them as deprecated. This is not supported any more? How does this work?
I need a way to know that a user bought a specific product based on some kind of unique identifier.
@Kris, The plugin page shows all the current integration options.
Hello all!
When I use the shortcode I get the following message:
You need to provide a return URL page in the settings
I have the cancel page set up…
@Andrei, Please provide a “Success URL” in the plugin settings.
Hi Noor,
Can I use this if I want to use 2 Stripe accounts on my WordPress using Memberpress? Different products need to go to different stripe accounts. Let me know if its possible. Thank you.
@Arlene, The plugin works independently. It has no integration with MemberPress.
Can you help me find a solution to my concern please? We have memberships/courses for sale via Memberpress and the checkout is Stripe built into Memberpress. The courses are owned by 2 individuals, depending the product they buy, each payment is separated. Do you think its a Stripe concern and not Memberpress? Thanks.
@Arlene, We are not Stripe or MemberPress unfortunately. You should contact MemberPress regarding this matter.
Hi again Noor. Turns out we will not use Memberpress anymore but we are selling products that must go to 2 different stripe accounts. Can I use this plugin for that, ie. set up 2 stripe accounts and attache the checkout button on a particular, depending on the product they sell (ex. product 1 goes to Stripe account 1, product 2 goes to stipe account 2)? If this is posslbe, please tell me how to set it up. Thank you.
@Arlene, The buttons created by our plugin will only accept payments for the account configured in the settings.
Have you tried Stripe payment links? It does not require any additional setup and you can easily create links from different accounts to accept payments.
Like this link
https://stripe.com/docs/no-code/payment-links
? I dont have a stripe account though so I would not know. Thank you for your suggestion. its much simpler than going through woocommerce and use stripe from there, not to mention its too costly. What do you think?@Arlene, Yes, that’s the one. You can easily create payment links for products to directly accept payments.
hello team thank you for this plugin
I have done the settings and now am adding the checkout button to my wordpress page.
when I add the shortcode for the checkout button to the page in editing mode – the code shows on the front page in viewing mode – and no checkout button is there. please help!
thank you so much.
@AW, The shortcode that you place in the page editor will be the button when you view it on the front end.
Hello, would it be possible to add a parameter to open the payment gate in a new tab or window, please?
@Jordi, You can do this with the “target” parameter in the shortcode. Please update the plugin and check the documentation.
Many thanks!
However, the code
target="_blank"
does not work for me.@Jordi, Have you updated the plugin? What shortcode are you using?
Hi,
Thanks for your support.
I use the Version 1.2.2.41. For some reason, that I do not know, my website does not accept to enable auto-updates (I changed the theme recently), and that is very frustrating
Is there any way to manually update it? (I deactivated and activated it again, but it did not work)
Thanks.
@Jordi, The plugin has no control over the “auto-update” feature. Can you deactivate and delete the plugin? Then you will be able to reinstall the latest version.
Hi,
OK, I did it, and I have now the latest version (1.2.2.43). I still do not know why my website is not updating the plugins, as I have enabled the automatic updates, and that is worrying me so much.
However, the open in new tab or window option does not work either (the target=”_blank” is inserted).
I use this short code:
[wp_stripe_checkout id="55099" target="_blank" success_url="https://sheetmusiclibrary.website/sheet-music-libraryxxxxxxxxxxxxxxxxxxxxxxxxxx/" cancel_url="https://sheetmusiclibrary.website/incomplete-subscription/"]
Thank you so much again!
@Jordi, We have just added support for shortcode that you are using. Updating the plugin should fix the issue.
Yes, it works fine now. Thank you so much!
Hi, We are using this plugin to collect donations and would like to be able to add the name field so we can collect the donors name to add it to the receipt. Can you please advise how we can add the name field.
Thank you
@Kerri, Stripe automatically collects the customer’s name on the payment page.
Hi, thanks for coming back to me. I may need some more assistance as this is not how it works on our website. Are you able to take a look here
https://www.beatbladdercanceraustralia.org.au/about-beat/get-involved/#donate
After a user selects the amount they want to donate, then clicks on the yellow donate button, a pop-up asks for email and payment details. We’d like to be able to add the name fields here as well, first name and last name.
Can you advise how we can add this?
Thanks
@Kerri, Stripe will collect it automatically on the payment page.
Hi, the name is not being collected at any point during the process. We have been using this for a few years now and no names have been collected. We would like to start collecting names so that we can provide a personalised thank you and receipt. Maybe it is the way it has been set up on our website by a developer. Is there someone who could look at our site and assist? Thanks
@Kerri, It seems you are using the older version of Stripe checkout which was discontinued like 7 years ago. For backwards compatibility, the button code may still be in the plugin. But we have removed the documentation from our website.
Try adding the
billingAddress="required"
parameter and see what happens.Hi,
I have 3 different sites using my Stripe account:
– public API key is the same,
– secret API keys are different,
– webhook addresses are different.
Why is the purchase on 1 site also recorded on the other 2?
As a result, other sites also send a thank you email which can be scary for donors.
I saw that each webhook had a secret key, would it be possible to filter by this key?
Thank you
@pym, We have just released an update to support this feature. Please add your webhook’s signing secret in the settings and test to make sure everything is working.
Is it possible to set the purchase email content per product? I have 2 digital products and I want to include the download link in the email content.
Sending the Purchase and Sales emails is not working. The setting is turned on. I used default From name and From email address, and I also used custom values. When I test a purchase (Live and Test mode), no emails are sent.
Nevermind! I had to set up the Stripe Webhook and event listeners. Now it’s working! Maybe this should be noted in the Email settings tab of the plugin.
Hi,
You show the plugin settings via the shortcode [wp_stripe_checkout_session]
Will the old shortcode, for example
[wp_stripe_checkout id="387"]
work?Thank you
@Oksana, It’s still in the plugin for backwards compatibility.
Hello, We redesigned our website, and the buttons changed the color to red. Can we change the color of the buttons?
https://bocatech.com/bta-service-packages-internal/
andhttps://bocatech.com/bta-deposit-page-internal/
. We want them Green – #008751.@Marcio, What shortcode are you using? The plugin doesn’t apply any color by default. It comes from your theme.
Hi, I’m facing the same issue as Philippe above – the test order goes through and I get forwarded to the correct page, but the order is not visible under “Orders” and I don’t get the confirmation email although the settings are enabled to do so. I’ve also enable the webhook that seemed to fix Philippe’s issue.
@Christina, Please enable debug and check the log after a payment is made.
@Christina, Please send us a link to the log using the contact form on the site.