A reliable WooCommerce checkout needs more than an enabled payment button. Your shop, payment provider and hosting environment must work together so that a successful payment updates the right order, customers receive the right messages and refunds can be tracked.
This guide covers WooCommerce PayPal Payments, the WooCommerce Stripe Payment Gateway and the GoCardless extension. It takes you from choosing a gateway through installation, testing and launch. Settings and button names can change between releases; use the linked official instructions alongside the version installed on your shop.
Choose the right payment methods
Start with your customers and the products you sell. A shop selling physical products may need cards and PayPal; a business collecting recurring payments may also need Direct Debit. Adding every available option can make checkout harder to understand and gives you more integrations to maintain.
| Gateway | Useful starting point | Check before choosing |
|---|---|---|
| WooCommerce PayPal Payments | Customers who prefer PayPal, with other methods where your account is eligible. | Merchant approval, supported currencies and which checkout features are available to your business. |
| WooCommerce Stripe Payment Gateway | Card payments and supported additional payment methods. | Account eligibility, currencies, payment methods and the checkout experience on your devices. |
| GoCardless | Bank payments, including Direct Debit. | Collection timing, supported schemes and how fulfilment works while payment is pending. |
Our practical recommendation is to launch with a small, tested selection, then expand when customers need another method. Before committing, review the provider’s current fees, refund arrangements, payout schedule, currency conversion and account requirements. Plugin availability does not mean a merchant account is approved or that every payment method is available in every country.
If you sell subscriptions, confirm that your chosen gateway and subscription extension support your required renewal, cancellation and payment-change flows. A gateway plugin alone does not create a subscription product system.
Prepare your shop before installation
- Take a recoverable backup. Include files and the database. Read our website backup restoration guide before you need it.
- Prepare a staging shop. Keep it separate from production payments and customer emails. A copied database can contain live gateway settings, so inspect those before testing.
- Check HTTPS. Your storefront, checkout and payment callback addresses should use valid HTTPS. Resolve certificate problems using our HTTPS and SSL guidance.
- Review compatibility. Check the extension’s current WordPress, WooCommerce and PHP requirements. Confirm support for your actual checkout, whether it uses Checkout Blocks or the classic shortcode, and for your subscription or multi-currency extensions.
- Confirm store settings. Check business location, selling currency, products, shipping and order emails. An incorrect shipping rule can make a payment problem appear to be a gateway failure.
- Arrange merchant access. The business owner should control the provider account and complete its verification. Avoid connecting a developer’s personal merchant account to a client’s shop.
Install the correct gateway plugin
Several plugins have similar names. These instructions refer to the specific extensions below; another Stripe or PayPal integration can use different settings and webhook addresses.
- WooCommerce PayPal Payments — official plugin directory listing.
- WooCommerce Stripe Payment Gateway — official plugin directory listing.
- GoCardless — WooCommerce extension page.
- For a plugin available in WordPress, open Plugins > Add New Plugin, search for its exact name and compare it with the linked listing.
- Read its requirements and compatibility information. Install and activate it on staging first.
- For an extension supplied as a ZIP, obtain the package from your legitimate WooCommerce account, choose Upload Plugin, upload it, install and activate it.
- Open WooCommerce > Settings > Payments and locate the gateway’s setup or management option.
Do not enable multiple plugins for the same provider without a clear reason. Duplicate buttons and overlapping integrations make troubleshooting more difficult. When replacing an existing gateway, plan how historical refunds, saved payment methods and renewals will continue to work before removing it.
Set up WooCommerce PayPal Payments
Connect your merchant account
- Under WooCommerce > Settings > Payments, choose PayPal’s enable or setup option.
- Follow the onboarding wizard. Select your account type and the kinds of products you sell. A PayPal Business account is the usual starting point for a business shop.
- Connect the intended merchant account through PayPal’s authorisation screen and return to WordPress.
- Review the overview, available payment methods and remaining setup tasks. Additional card or wallet features can require eligibility or a separate application.
Follow the official PayPal account connection instructions if the screen differs. The advanced connection options support manual credentials, but use the guided connection where possible.
Test PayPal before enabling live payments
Enable Sandbox Mode in the plugin’s advanced options and connect a sandbox merchant account. Create or use a separate sandbox buyer account through the PayPal Developer dashboard. The buyer and merchant have different roles; do not use your live account credentials as sandbox payment details.
- Place a sandbox order as a customer and complete PayPal’s payment flow.
- Check the matching sandbox transaction, WooCommerce order notes and confirmation page.
- Repeat with cancellation and your shop’s supported product types.
- Review payment method settings and button styling. Keep labels and placement easy to understand.
Use the PayPal Payments startup guide for current payment-method and styling controls. When ready, switch out of sandbox, connect the live merchant account and recheck connection status. Do not assume a sandbox connection becomes a live connection automatically.
Set up the WooCommerce Stripe gateway
Connect the correct Stripe account
- Find Stripe under WooCommerce > Settings > Payments and choose Complete setup.
- Select the option to create or connect an account. Complete the authorisation on Stripe’s website using the business account intended for this shop.
- Return to WooCommerce and inspect the account details. Resolve incomplete payment, payout, webhook or sync status before launch.
Use the official Stripe connection guide. If onboarding asks you to reuse a business or create another account, review the account structure before proceeding. Business verification and payout restrictions must be resolved with Stripe.
Review settings and payment methods
Enable test mode while configuring the shop. Review the customer-facing payment options, saved-payment settings and any capture settings available in your version. If you choose authorisation followed by later capture, make sure your fulfilment process includes capture rather than treating an authorisation as completed payment.
Use the Stripe settings guide for the current controls. Enable additional methods deliberately, then test each one. A wallet button may depend on the browser, device and customer’s wallet setup, so its absence on one device is not by itself proof of a fault.
Check both webhook environments
The current official extension configures webhooks during account connection. Under Stripe’s settings, open Configure connection and inspect both the Live and Test tabs. Each should show its webhook as configured. If configuration is missing, use the extension’s reconfiguration option and retest.
The documented endpoint for this extension has this form:
https://yourstore.example/?wc-api=wc_stripe
This is an example, not an address to copy into your account. Use your shop’s actual configuration, and do not substitute an endpoint from another Stripe plugin. See the official webhook instructions.
Run Stripe test payments
With test mode enabled, use Stripe’s official testing details for success, decline and authentication scenarios. Never use those details in live mode. Test an ordinary successful payment, a declined payment and a payment requiring additional authentication. Check the test transaction and corresponding order after each attempt.
Set up GoCardless bank payments
GoCardless handles bank payments. Direct Debit is asynchronous: customer authorisation does not mean funds have already been collected. Check the supported countries, schemes and account eligibility in the official GoCardless extension documentation.
- Install the extension ZIP and open WooCommerce > Settings > Payments.
- Enable its bank-payment entry, finish setup and connect your GoCardless account.
- In the GoCardless Sync section, follow the dashboard link and create the webhook using the displayed name, URL and secret. Save the shop settings.
- Review the customer-facing label, description and Direct Debit scheme. Enable Instant Bank Pay only where supported and appropriate.
- For testing, use the sandbox connection option, a sandbox account and official test bank details. Use the documented scenario simulator to exercise payment confirmation and failure.
For ordinary Direct Debit orders, an initial On hold status can be expected while confirmation is pending. Subscription orders can follow different rules. Confirm payment in the provider dashboard before fulfilment; order status alone is insufficient. Switch to the live account and recheck webhooks for launch.
Understand webhooks, hosting and checkout caching
A customer’s browser returning to the shop is only one part of a payment journey. A webhook is a separate notification sent by the payment provider to your website. It helps the integration keep track of events even when a customer closes a browser or a redirect is interrupted.
When investigating a problem, distinguish three things: what the customer saw, what the provider recorded and what WooCommerce recorded. A successful provider transaction with an unchanged order needs a different investigation from a payment that the provider rejected.
- Keep callbacks reachable. Check the actual endpoint against HTTPS, redirects, maintenance mode and password protection. A staging password can prevent external notifications from reaching WordPress.
- Inspect security rules. A firewall or bot challenge should not obstruct legitimate provider callbacks. Ask for a narrow, documented exception rather than disabling security across the site.
- Exclude customer-specific pages from page caching. Check cart, checkout, account and payment callback handling. Do not cache another customer’s order or session.
- Test script optimisation. Delaying, combining or removing payment scripts can interfere with checkout. Isolate changes on staging and verify the full journey.
- Check background processing. Review failed scheduled actions and relevant server errors when order updates or renewal jobs do not run as expected.
Our WordPress performance guide explains a measured approach to optimisation. A fast homepage does not prove that payment callbacks or checkout are reliable.
Test the complete order journey
Keep a simple record of each test: gateway, environment, device, product, expected result, order number and provider reference. This makes it possible to distinguish a repeatable fault from an isolated attempt.
| Test | What to check |
|---|---|
| Successful payment | The provider transaction, correct WooCommerce order, totals, notes and confirmation. |
| Decline or failed payment | A understandable message, a recoverable checkout and no unintended fulfilment. |
| Cancelled payment | The customer can return to the shop without a misleading success message. |
| Additional authentication | The challenge completes, or fails cleanly, without a stuck checkout. |
| Mobile and desktop | Payment fields, redirects, buttons and confirmation work on representative devices. |
| Guest and returning customer | Both intended checkout flows work, including saved methods if offered. |
| Shipping and discounts | The paid amount matches the intended basket after shipping, coupons and configured taxes. |
| Refund | The provider and order record agree on the refund and remaining amount. |
| Delayed bank payment | Your fulfilment process waits for the appropriate payment confirmation. |
| Subscription, if offered | Initial order, renewal, failure, cancellation and payment-method changes are tested separately. |
Use your real product configurations, not only a specially simplified test product. A variable product, subscription or delivery restriction may follow a different path. Read our WooCommerce shipping setup guide if delivery options or basket totals are confusing the tests.
Check refunds, order status and fulfilment
Write down who is allowed to refund orders and which system they should use. Before refunding, match the WooCommerce order with the provider’s transaction reference and check whether a refund has already been issued. Do not refund the same payment once in WooCommerce and again in the provider dashboard.
Distinguish a WooCommerce record adjustment from a gateway refund request. If you use a manual refund option, verify separately whether money has actually been returned. Test the supported gateway refund process and check both systems rather than relying only on an order note.
Payment, order fulfilment and payout to your bank are separate events. A customer payment can be recorded while the provider’s payout is still scheduled. Likewise, a pending or authorised payment should not automatically trigger the same fulfilment decision as a confirmed collection. Agree a process appropriate to the gateway and product before launch.
Troubleshoot common payment problems
The payment method does not appear
Check that the gateway is enabled and connected in the correct environment. Then inspect currency, customer location, product type, checkout compatibility and conditional-payment rules. Test a normal basket without unusual coupons or extensions on staging. A restricted payment method can disappear because the basket is ineligible rather than because installation failed.
The checkout spins or buttons stop responding
Note the exact step at which the problem happens. Test without recent checkout script optimisations on staging, then check for browser errors, blocked requests and relevant plugin logs. Restore settings between tests. Changing several plugins at once makes it harder to identify which change solved the problem.
The customer paid, but the order is still pending
First confirm the provider’s actual payment state and match the transaction reference. Then inspect webhook delivery and order notes. Do not ask the customer to pay again until you know whether money was taken. An unmatched or delayed notification may need reconciliation, not a second charge.
Payments work, but confirmation emails do not arrive
Check the order’s state and email settings separately from the payment. An email delivery fault does not automatically mean checkout failed. Gather the recipient, approximate time and message type without sharing private customer information publicly.
A provider account is restricted or payouts are missing
Review the provider dashboard for verification requests, account notices and payout information. Hosting support can investigate the website connection, but cannot approve a merchant account, release held funds or change the provider’s decision. Contact the provider for those account issues.
Launch checklist and ongoing maintenance
- Confirm the final domain and HTTPS address; recheck callback settings if staging and production differ.
- Connect the intended live merchant accounts and disable sandbox or test mode for each live gateway.
- Confirm account approval, payment settings and webhook configuration in the live environment.
- Remove test-only checkout instructions and review the payment labels customers see.
- Check payment and order records during a controlled, authorised live purchase. Sandbox testing cannot prove every live-account setting. Treat any live purchase and refund as real transactions, with possible fees.
- Confirm fulfilment, notifications and refund handling with the people operating the shop.
- Keep an alternative tested payment route available where practical, and monitor initial orders for mismatched states.
After launch, test gateway and WooCommerce updates on staging before applying them to a busy shop. Recheck checkout after changes to the theme, caching, security rules, domain or subscription system. Keep a note of plugin versions and connection changes so a future problem has a useful history.
Get help with WooCommerce payments
Ginger can help investigate the technical connection between your shop, gateway plugin and hosting environment. Explore our WooCommerce hosting and management support. For a demanding shop, we can assess whether VPS hosting suits its measured workload; moving servers alone will not repair incorrect gateway settings.
Existing customers can open a Technical Support ticket. Include the shop URL, gateway and plugin version, test or live environment, time of the problem, order number, error text and redacted screenshots. Mention recent changes and whether the provider recorded a payment. Do not include card numbers, bank details, passwords or secret credentials.
For help planning a new shop or moving an existing one, contact our team. A well-tested payment flow is part of running a dependable shop, not something to leave until the first customer reports a failed checkout.
Put the guidance into practice.
Need help with your website? Explore WordPress hosting, WooCommerce hosting and support or WordPress care.