WooCommerce payment gateway not showing at checkout

You enabled a payment gateway in WooCommerce settings but it does not appear on the checkout page. The cause is usually one of five things: the gateway does not support the Checkout Block, the site lacks a valid SSL certificate, the gateway is in test mode with live credentials (or vice versa), a plugin conflict prevents the gateway JavaScript from loading, or geographic restrictions silently exclude the customer's country. This article walks through each cause with a diagnostic for every step.

The symptom is always the same: WooCommerce settings shows the gateway as enabled, but the checkout page displays no payment options or skips the gateway entirely. The customer cannot complete an order. The cause is almost never a single setting toggle — it is usually a mismatch between how the gateway was built and how the checkout page is rendered.

Why payment gateways disappear from the WooCommerce checkout

WooCommerce has two checkout systems running in parallel. The Classic Checkout uses the [woocommerce_checkout] shortcode and renders gateways through PHP hooks. The Checkout Block (the default for new installs since WooCommerce 8.3, November 2023) uses the block editor and renders gateways through a JavaScript API. A gateway built only for the Classic Checkout will not appear in the Checkout Block, and WooCommerce gives no warning about this. The page simply shows fewer payment options than expected.

This is the single most common cause of missing gateways on stores created or migrated after November 2023, and it is the first thing to check.

Step 1: check Checkout Block vs. Classic Checkout compatibility

Open the page that serves as your checkout (usually /checkout/). Edit it in the WordPress block editor.

  • If you see a Checkout block (a large block with shipping, billing, and payment sections rendered as a visual layout), you are using the Checkout Block.
  • If you see a shortcode block containing [woocommerce_checkout], you are using Classic Checkout.

If using the Checkout Block

The gateway must implement the Block Checkout payment method API. Not all gateways do. Check the gateway's documentation or changelog for "Checkout Block support" or "Block Checkout compatible."

To test whether the Checkout Block is the issue, temporarily switch to Classic Checkout:

  1. Edit the checkout page
  2. Remove the Checkout block
  3. Add a Shortcode block with [woocommerce_checkout]
  4. Save and test the checkout in an incognito window

If the gateway appears with Classic Checkout but not with the Checkout Block, the gateway lacks block support. Contact the gateway developer or use Classic Checkout until block support is added.

Major gateways and their block support status

  • WooCommerce Stripe: block-compatible since version 7.0. If running an older version, update.
  • WooCommerce PayPal Payments: block-compatible since version 2.0.
  • Mollie for WooCommerce: block-compatible since version 7.0.
  • Custom or niche gateways: check with the developer. Many smaller gateways have not yet implemented the Block Checkout API.

Step 2: verify SSL certificate is active and enforced

Payment gateways that handle card data require HTTPS. WooCommerce itself will hide gateways that need SSL when the checkout page is not served over a valid certificate.

Check in your browser: does the checkout URL start with https:// and show a padlock? If not, the gateway is hidden by design. For how to install and verify a certificate, see the WordPress SSL certificate guide.

Also check that WordPress is configured to use HTTPS:

  1. Go to Settings > General
  2. Both WordPress Address and Site Address must start with https://
  3. If they show http://, update them and test again

WooCommerce has an additional SSL enforcement option at WooCommerce > Settings > Advanced > Page setup: "Force secure checkout" should be enabled if you use HTTPS site-wide.

Step 3: test mode, API keys, and geographic restrictions

Test mode vs. live mode

Most gateways have a test/sandbox mode. A gateway in test mode only appears when the store is in test mode (or when viewing as an admin, depending on the gateway). Conversely, a gateway with test API keys but "Live mode" selected will fail silently.

Check: WooCommerce > Settings > Payments > [Your Gateway]. Verify:

  • The mode (test or live) matches your intent
  • The API keys match the selected mode (test keys for test mode, live keys for live mode)
  • On Stripe specifically: publishable and secret keys are not swapped

Geographic restrictions

Some gateways restrict themselves to specific countries or currencies. PayPal, for example, does not support every currency. Stripe availability depends on the merchant's country of registration.

Check: WooCommerce > Settings > Payments > [Your Gateway] for any country or currency restrictions. Also check WooCommerce > Settings > General > Selling location(s) to confirm the gateway's supported regions overlap with your selling countries.

Customer-side filtering

WooCommerce gateways can declare which billing countries they support via the get_supported_currencies() and is_available() methods. A customer whose billing address falls outside the supported region will not see the gateway. Test with a billing address in a region the gateway explicitly supports.

Step 4: plugin and theme conflict isolation

A JavaScript error from another plugin can prevent the gateway's checkout script from initializing. This is especially common with:

  • Caching plugins that serve stale checkout pages (see the WooCommerce cart troubleshooting guide for cache exclusion rules)
  • JavaScript optimization plugins that defer or combine scripts, breaking gateway initialization
  • Custom themes that override checkout templates

Quick diagnostic

  1. Open the checkout page in an incognito window
  2. Open browser DevTools (F12) > Console tab
  3. Look for JavaScript errors in red

If you see errors from a non-gateway script, that plugin is the likely cause.

Conflict test

  1. Switch to a default theme (Twenty Twenty-Four or Storefront)
  2. Deactivate all plugins except WooCommerce and the payment gateway
  3. Test checkout
  4. If the gateway appears, reactivate plugins one by one to find the conflict

Step 5: enable WooCommerce debug logging and read the gateway log

If the gateway still does not appear after the steps above, enable logging to see what WooCommerce and the gateway report internally.

  1. Go to WooCommerce > Settings > Advanced > WooCommerce.com
  2. Enable Enable logging (or navigate to WooCommerce > Status > Logs)
  3. Attempt a checkout
  4. Check the log for the gateway (e.g., woocommerce-stripe or woocommerce-paypal)

Common log entries that explain a hidden gateway:

  • SSL is not enabled — the gateway hid itself because it requires HTTPS
  • Invalid API key — the gateway could not authenticate and disabled itself
  • Currency not supported — the store currency does not match the gateway's requirements

WooCommerce system status

WooCommerce > Status provides a one-page diagnostic. Check for:

  • WordPress Environment > Secure connection (HTTPS): should be a green checkmark
  • Active Plugins: verify the gateway plugin is listed and has no error notices
  • WC Pages: verify the checkout page is assigned

Gateway-specific notes

Stripe

The WooCommerce Stripe extension has had two notable incidents in 2025:

If Stripe suddenly disappears from checkout, check whether the plugin was recently auto-updated. Rolling back to the previous stable version is a valid emergency fix while waiting for a patch.

PayPal

PayPal's newer "WooCommerce PayPal Payments" plugin replaces the legacy "PayPal Standard" integration. If both plugins are active, they can conflict. Deactivate the legacy plugin if the newer one is installed.

iDEAL, Bancontact, and local European methods

These are typically provided through Mollie, Adyen, or MultiSafepay aggregators rather than directly. If the individual method does not show up, check the aggregator plugin's settings — individual payment methods usually have their own enable/disable toggle within the aggregator's configuration.

What a missing gateway is NOT

  • Not always an API key problem. API key errors prevent transactions from completing, but they do not always prevent the gateway from appearing. The Checkout Block incompatibility described in Step 1 is a much more common cause of a completely invisible gateway.
  • Not fixed by clearing the page cache alone. Cache can serve a stale checkout page, but the fix is to exclude checkout from caching, not to clear cache repeatedly. If the gateway does not appear on a cache-bypassed request (incognito window with ?nocache or a cache-busting query parameter), caching is not the cause.
  • Not always visible in WooCommerce settings. A gateway can be "enabled" in WooCommerce > Settings > Payments but still hidden from the customer-facing checkout by its own internal is_available() logic (SSL checks, country restrictions, currency mismatches). "Enabled" means "configured," not "visible to all customers."

Want this to stop being your problem?

If outages or errors keep repeating, the fix is often consistency: updates, backups and monitoring that don't get skipped.

See WordPress maintenance

Search this site

Start typing to search, or browse the knowledge base and blog.