Fix WooCommerce “There are no payment methods available”

At checkout, WooCommerce shows “There are no payment methods available” when no gateway qualifies to display. Common causes include gateways not enabled or fully configured, using the Checkout Block with a gateway that isn’t block-compatible, country or currency restrictions, order min/max rules, Cash on Delivery tied to unavailable shipping methods, missing HTTPS, or geolocation + page caching conflicts. Start with the 5-minute checklist, then use the decision tree and fixes below.

Also seen as: “No available payment methods,” “There are no payment options,” “Sorry, it seems that there are no available payment methods for your state.”

WooCommerce keeps saying “There are no payment methods available” on checkout. How do I fix this?

5-minute quick checklist

  1. Enable at least one gateway: WooCommerce → Settings → Payments → toggle On (Stripe/PayPal/Woo Payments/COD) and complete setup.
  2. Classic vs Blocks test: If your checkout uses the Checkout block, quickly test a classic page with [woocommerce_checkout] (steps below).
  3. Country & currency sanity: General → Selling location(s) includes customer country; currency supported by your gateway.
  4. Remove min/max limits: Clear any order min/max in gateway settings to test.
  5. Try COD temporarily: Turn on Cash on Delivery (set to Any method) to confirm methods can appear.

Decision tree (what to try first)

  1. Do gateways appear on a classic checkout page?
    Yes → Your missing gateway may be Blocks-incompatible (keep classic or use a blocks-compatible gateway).
    No → Continue.
  2. Does turning on COD (Any shipping method) make a method appear?
    Yes → Your main gateway is filtered out (country/currency/min/max/shipping tie).
    No → Continue.
  3. Are you on HTTPS with a valid certificate?
    No → Enable HTTPS; many gateways hide on HTTP.
    Yes → Continue.
  4. Using page caching + geolocation?
    Set Default customer location to Geolocate (with page caching support) or temporarily Shop base address and re-test.

Common causes → exact fixes

Cause Where to look What to do
Gateway not enabled / not set up WooCommerce → Settings → Payments Toggle ON and click Manage/Set up; add API keys / onboard account.
Checkout Blocks + gateway not compatible Checkout page content Test classic checkout ([woocommerce_checkout]) or switch to a blocks-compatible gateway.
Country / selling location mismatch Settings → General Include customer country in Selling location(s); ensure gateway supports it.
Unsupported currency for gateway Settings → General → Currency options Switch to a supported currency (e.g., USD/EUR) to test, then confirm gateway’s currency list.
Order min/max threshold hides gateway Gateway settings Clear min/max; re-test with different cart totals.
COD tied to unavailable shipping COD settings Set “Enable for shipping methods” to Any method (or ensure the selected method is available to that address).
Not on HTTPS (gateway requires TLS) Site URL / hosting Install/renew SSL and force HTTPS on checkout.
Geolocation + page caching conflict Settings → General → Default customer location Select Geolocate (with page caching support) or Shop base address for testing.
Test mode / onboarding incomplete Gateway dashboard & plugin settings Finish KYC/onboarding; verify live keys; confirm gateway shows in test/live modes.
Theme/plugin conflict or checkout cached Cache plugin/CDN; theme/plugins Exclude checkout from cache; switch to default theme; disable plugins and re-enable one by one.

Fix 1 — Enable & fully configure a gateway

  1. Go to WooCommerce → Settings → Payments.
  2. Toggle ON at least one gateway (Stripe, PayPal, WooCommerce Payments, COD).
  3. Click Manage/Set up and finish API keys or account linking.

Tip: Many gateways stay hidden until credentials are saved and verified.

Fix 2 — Classic vs Blocks checkout (compatibility test)

  1. Create a new page “Checkout (Classic)”.
  2. Add a Shortcode block with:
    [woocommerce_checkout]
  3. Go to WooCommerce → Settings → Advanced → set this as the Checkout page.
  4. Refresh checkout. If methods now appear, your original gateway likely isn’t blocks-compatible yet.

Fix 3 — Country & currency checks

  • General → Selling location(s): include the customer’s country or “Sell to all countries” for testing.
  • Currency options: try a widely supported currency (USD/EUR) to test, then pick a currency your gateway supports.

Fix 4 — Min/Max order thresholds

In your gateway’s settings, clear minimum/maximum order amount fields. Re-test with different cart totals.

Fix 5 — COD + shipping method tie

Set COD to “Any method” or ensure a valid shipping method is available for the address. This is a quick diagnostic even if you won’t use COD in production.

Fix 6 — HTTPS required by gateways

Use a valid SSL certificate and ensure checkout is served over HTTPS. Some gateways hide on HTTP.

Fix 7 — Geolocation with page caching

Caching can conflict with geolocation (country-based availability). Go to Settings → General → Default customer location and pick Geolocate (with page caching support) (adds a querystring to bypass cache country mismatches) or temporarily Shop base address to test.

Fix 8 — Test vs live mode & onboarding

  • Ensure you’re using the correct (test or live) keys and the gateway account is fully onboarded (KYC complete).
  • Some gateways won’t render until the account is verified.

Fix 9 — Conflicts & cache exclusions

  • Exclude checkout, cart, and my account URLs from any page caching plugin/CDN.
  • Temporarily switch to a default theme and deactivate other plugins to isolate conflicts; re-enable one by one.

Fix 10 — Turn on logs and read why it’s hidden

  • In your gateway settings, enable debug/logging and reproduce checkout.
  • Open WooCommerce → Status → Logs and read the latest gateway log; look for is_available() conditions failing (country, currency, thresholds).

Copy-paste tests

Classic checkout test page:

[woocommerce_checkout]

WP-CLI: confirm store settings quickly (run from docroot):

wp option get woocommerce_currency
wp option get woocommerce_allowed_countries
wp wc shop get --fields=address,city,country,state,postcode

FAQ

Why do methods show on classic but not on the block checkout?
Because your gateway likely doesn’t support Checkout Blocks yet. Keep classic or switch to a blocks-compatible gateway.

It only happens for certain countries.
That’s almost always country/currency restrictions or geolocation + cache. Adjust selling locations and currency; configure geolocation with caching support.

It broke after enabling caching/CDN.
Exclude checkout/cart/account from cache; use “Geolocate (with page caching support).”

Need human WordPress help?

WP Assistant is a free tool created by Atiba Software, a WordPress design and development company located in Nashville, TN. If you need more personalized WordPress assistance let us know, and we’ll get back to you ASAP!