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?
[woocommerce_checkout] (steps below).| 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. |
Tip: Many gateways stay hidden until credentials are saved and verified.
[woocommerce_checkout]In your gateway’s settings, clear minimum/maximum order amount fields. Re-test with different cart totals.
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.
Use a valid SSL certificate and ensure checkout is served over HTTPS. Some gateways hide on HTTP.
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.
is_available() conditions failing (country, currency, thresholds).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
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).”
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!