The moment a customer clicks "Place Order," a chain of decisions you made weeks ago either works perfectly or costs you the sale. Most WooCommerce store owners choose a payment gateway based on name recognition. That's not a strategy — that's guessing with someone else's money.
Payment gateways are not interchangeable commodity tools. They differ in fee structures, authorization logic, failure behavior, webhook reliability, and how cleanly they integrate with WooCommerce's order pipeline. The wrong choice costs you in conversion rate, reconciliation overhead, and — in the worst cases — failed transactions you never know happened.
Let's break down how this actually works under the hood, what separates the serious options from the convenient ones, and how to make the right call for your specific store architecture.
How Payment Gateways Actually Connect to WooCommerce
WooCommerce doesn't process payments. It manages the order state machine — pending, processing, completed, failed — and delegates the actual transaction to whichever gateway plugin you've connected. That distinction matters because the gateway plugin is a live integration point between your store and an external API.
When a customer checks out, here's what happens in sequence:
- WooCommerce collects cart and customer data
- The gateway plugin fires a payment request to the provider's API
- The provider authorizes (or declines) and returns a response
- WooCommerce updates order status based on that response
- Webhooks from the gateway fire asynchronous status updates (refunds, disputes, captures)
Step 5 is where most integration failures hide. If your webhook endpoint is broken — due to a caching conflict, a .htaccess misconfiguration, or a WP Cron failure — you'll get orders stuck in "pending" indefinitely. You won't see a PHP error log entry. You'll just see a customer who paid but received no confirmation email and no order update.
This isn't theoretical. Misconfigured WP Cron jobs and webhook delivery failures are among the most common issues we find during WooCommerce store audits — and they're nearly always invisible until a customer complains.
The Real Fee Math
Every gateway advertises a transaction fee. Most store owners look at that number and stop thinking. Here's what the actual cost model looks like across the major options:
Stripe: 2.9% + $0.30 per successful card charge (US standard). No monthly fee on the standard plan. Supports card vaulting, Stripe Link, and SEPA/BACS for European stores. The Stripe for WooCommerce plugin is actively maintained by WooCommerce/Automattic and integrates directly with WooCommerce Subscriptions.
PayPal: Standard rate matches Stripe at 2.9% + $0.30, but PayPal's legacy redirect checkout introduces real conversion friction. Every redirect is a measurable drop in completion rate. PayPal's newer Advanced and Complete Payments products support inline checkout, which recovers some of that loss.
Square: Competitive on in-person rates (2.6% + $0.10 per swipe), but online rates align with Stripe and PayPal. Square's real value is inventory sync across physical and digital storefronts.
Authorize.Net: Flat monthly fee ($25) plus a lower per-transaction rate ($0.10 + 2.9%). Better unit economics at high volume. But the developer experience is dated, and the WooCommerce plugin lags behind Stripe in feature parity.
Here's the math no one runs:
Consider a WooCommerce store processing $50,000/month. At 2.9% + $0.30 with an average order value of $80 (roughly 625 transactions):
- Standard gateway fees: ~$1,637.50/month
- Authorize.Net with monthly fee: ~$1,437.50/month
That's a $2,400/year difference — not transformative on its own, but the point stands: your gateway choice is a financial decision layered on top of a technical one.
Stripe vs. PayPal: The Honest Comparison
This is the question most store owners ask first. Here's the direct answer.
Stripe wins on developer experience, reliability, and feature velocity. The plugin is tightly integrated with WooCommerce's native order pipeline. It supports 3D Secure, saved payment methods, and handles SCA compliance automatically.
PayPal wins on buyer trust in specific demographics. Older buyers and certain international markets still actively prefer PayPal. Removing it entirely can damage conversion in those segments.
The practical answer for most stores: run both. Set Stripe as primary. Add PayPal as an alternative. WooCommerce's checkout supports multiple active gateways. You're not choosing one or the other — you're building a payment stack.
What Compatibility Actually Means
When someone says a gateway is "compatible with WooCommerce," they usually mean the plugin installs without a fatal error. That's a low bar.
Real compatibility means:
Subscriptions support: Does it work with WooCommerce Subscriptions for recurring billing? A failed renewal that doesn't retry is lost revenue — silently.
Blocks compatibility: WooCommerce's Cart and Checkout blocks require gateways to implement the Payment Block API. Older gateway plugins don't support this, forcing you to use the legacy shortcode checkout, a dead-end architecture.
Object cache conflicts: Gateway plugins that use transients for session state can behave unpredictably on sites running Redis or Memcached. The result is a checkout that appears functional but fails intermittently under load.
The Decision Framework
Stop asking "which gateway is best" as an abstract question. Here's how to choose based on your actual store profile:
Standard store selling physical or digital products: Stripe as primary, PayPal as secondary. Done.
WooCommerce Subscriptions or membership billing: Stripe (native subscription support, reliable recurring charge behavior).
Hybrid retail (online + physical POS): Square for inventory sync.
High-volume processing (>$100K/month): Negotiate custom rates with Stripe or model Authorize.Net's flat-fee economics.
International sales: Stripe handles 135+ currencies and manages SCA/3DS automatically. PayPal has strong brand presence in specific international markets.
For any serious migration, run it through a staging workflow first. A broken checkout on production is a revenue outage, not a development inconvenience.
The Checkout Is Where Revenue Lives
A broken payment gateway doesn't always look broken. It looks like a cart that didn't convert. An abandoned order you can't recover. A customer who paid and heard nothing back.
For a WooCommerce store averaging $3,000/day, that's roughly $125/hour in revenue flowing through a system most owners have never stress-tested. That's not a setup problem. That's an ongoing maintenance and integration problem — and the cost of getting it wrong accumulates in lost conversions, unresolved disputes, and failed subscription renewals.


