WooCommerce fixes / PayPal buttons not showing

PayPal Buttons Not Showing at WooCommerce Checkout? Causes & Fix

The PayPal option is enabled, but the yellow buttons never appear at checkout — just an empty gap where they should be. Almost always the PayPal SDK script isn't reaching the page. Here's how to prove that in two minutes and fix it.

Last updated: 16 Jul 2026 · ~6 min read

Quick answer

The usual cause is that PayPal's SDK script is blocked or never enqueued. A JS optimiser that minifies, defers or combines it will break it; so will an unsupported store currency or button locations left switched off. Open the browser console at checkout and look for a request to paypal.com/sdk/js. No request, or a red error, tells you which branch you're on.

What "buttons not showing" actually means

PayPal's buttons aren't rendered by your server. WooCommerce enqueues PayPal's hosted SDK script, the browser fetches it from paypal.com, and the script draws the buttons into a container on the page. Three things must all happen: the gateway must be available, the script must load, and it must run without error. Break any one and you get an empty gap — not an error message.

That silence is why this is so annoying to debug. The customer sees a checkout with no PayPal option and leaves. You see PayPal enabled in settings and assume it's working. The browser console is the only place the truth shows up, so start there rather than in the WooCommerce settings.

The most common causes (most likely first)

  1. A JS optimiser is blocking or breaking the PayPal SDK scriptThe console shows no request to paypal.com/sdk/js, or the request fires but throws. Turn off minify / combine / defer / delay-JS in your caching or optimisation plugin and the buttons come straight back. PayPal's SDK must load as its own untouched script — it cannot be combined into a bundle or delayed until user interaction.
  2. Button locations are switched off in the gateway settingsButtons show in one place but not another — checkout but not cart, or nowhere at all — and the location checkboxes in the PayPal gateway settings are unticked. Nothing is broken; the buttons were simply never asked for on that page.
  3. Your store currency isn't supported by PayPalThe buttons are missing everywhere, for every customer, with a clean console and no failed request. PayPal only accepts a fixed list of currencies, and if your store currency isn't on it the gateway makes itself unavailable rather than erroring. Check the currency under WooCommerce → Settings → General against PayPal's supported list.
  4. PayPal onboarding or credentials are incompleteThe gateway settings screen shows the account as not connected, or the client ID field is empty. Common after a site migration, a domain change, or when live credentials were never added alongside sandbox ones.
  5. Cart and checkout shortcodes are on the same page — or blocks and shortcodes are mixedThe buttons render fine on a normal, separate checkout page but vanish on your combined one. The SDK expects one container per page; two carts' worth of markup on a single page leaves it unsure where to draw. A block-based checkout paired with an outdated PayPal plugin gives the same empty result.
  6. Another plugin's JS error stops the page before the buttons mountThis is the opposite of cause 1: paypal.com/sdk/js returns 200, but an uncaught error from an unrelated file appears above it in the console. The script arrived and never got to run. A conflict test — plugins off, default theme — isolates it.

Where to look first

Tired of finding this out from the console?

You can only see missing PayPal buttons by opening your own checkout and looking — which nobody does daily. That's the problem: this breaks silently, on an optimisation plugin update you didn't think twice about, and the first sign is a quiet week. DiagnosticIQ's free dashboard checks your checkout the way a customer's browser sees it, flags a payment gateway that's enabled in settings but not actually rendering, and the AI names the reason — down to "PayPal SDK blocked by JS optimiser" — in about 30 seconds.

Get the free plugin

Made by Prima Digital — the team behind this guide. Free forever; no card to install.

How to know you fixed it

Verify

Load checkout in a fresh private window with a real product in the cart — the PayPal buttons should render within a second, with a clean console and a 200 on paypal.com/sdk/js.

Frequently asked

Why does PayPal show in settings but not at checkout?

Because the settings only control whether WooCommerce offers the gateway. The buttons themselves are drawn by PayPal's script in the browser, and that's what's failing.

Do I have to switch off my caching plugin for good?

No. Keep it on and add PayPal's SDK to its JavaScript exclusion list. Only the PayPal script needs to be left alone.

Could an ad blocker be hiding the buttons?

For an individual customer, yes — some block third-party scripts. But if the buttons are missing for you in a clean private window, the cause is on the store side.

Am I losing orders while this is broken?

Yes, silently. Customers who only pay with PayPal see no option and leave without contacting you, so there's no complaint to tip you off.

>_
John O'Keane — Founder, Prima Digital · LinkedIn
Contributions by David Zhang · LinkedIn
I build DiagnosticIQ, the WooCommerce diagnostic plugin, and I've lost whole afternoons to PayPal buttons that turned out to be one JS-optimiser setting away from working.