WooCommerce Checkout Without Redirecting to a Payment Page

Published on August 08, 2026 · Woo-Whop Team

Every redirect in a checkout is a place where somebody stops buying. New domain, new fonts, a loading bar, and a half-second of doubt about whether the thing they wanted is still in their cart. A WooCommerce payment gateway with no redirect takes that moment away. Below: what embedded checkout actually means, why it is harder to build than it sounds, and how to tell whether a gateway really does it.

What "no redirect" really means

Three different things get sold as embedded, and they are not the same:

  1. Redirect. The browser goes to the processor's page. Your customer pays there and comes back. Your domain leaves the address bar.
  2. Popup or modal. The form opens in an overlay. Nobody navigates away, but payment still feels like a separate event.
  3. Fully embedded. The card fields render inline, in the payment method box, and your own Place Order button submits the payment. One button. No overlay.

Only the third one feels native. It is also the hardest to build, which is exactly why so many gateways stop at the first two and call it embedded anyway.

Why embedded checkout is difficult

The card fields must never touch your server. That means they have to live inside an iframe the processor owns, which means the plugin has to coordinate three things that all want to happen at once:

  • WooCommerce validating the form and re-checking stock.
  • The processor's iframe collecting and tokenising the card.
  • WooCommerce creating the order, and only then treating it as paid.

Get the order of those wrong and you charge cards for orders that then fail validation. Our plugin runs WooCommerce validation and the stock check before the card is charged, which is the only sequence that cannot take money for something that sold out ninety seconds ago.

The iframe problem, and why it is largely solved

Embedding a payment iframe in WooCommerce used to fight the browser: third-party cookie restrictions, frame-ancestor policies, sandbox flags. That is genuinely why earlier versions of many gateways, including this one, defaulted to a redirect. We wrote about that era in fixing sandbox clickjacking and iframe blocks.

What changed is that the payment form is now served in a way those policies accept, and the plugin hands the billing context over explicitly instead of hoping shared cookie state survives. Embedded is the default now. Redirect is the fallback.

What your customer actually experiences

They choose Whop as the payment method. Card fields appear underneath it. The email and billing address they already typed get passed through, so Whop's duplicate fields disappear and the form is shorter than they expected. They press Place Order, the same button they would press for any other gateway, and a progress indicator tells them what is happening so nobody assumes the page has frozen. Then your order-received page. Your domain never left the address bar.

How to check a gateway is really embedded

Before you commit to anything that claims embedded checkout, run one sandbox order and check four things:

  • Count the buttons. A payment button separate from Place Order means it is not fully embedded.
  • Watch the address bar. It should not change at any point.
  • Type a bad address on purpose. Validation should fire before the card is charged, not after.
  • Look for duplicate address fields. A well-built integration reuses what WooCommerce already collected.

When a redirect is still the right answer

Embedded is the better default. It is not always the right call. Use redirect mode if a page builder owns your checkout, if another plugin already rearranges the payment area, or if you are chasing a conflict and want the iframe out of the picture. It is one dropdown away and the webhook path is identical either way. All three modes are compared in embedded vs popup vs redirect.

Does it work with the new checkout?

Yes, both classic checkout and the block-based one. That matters more than it sounds, because the two have completely different extension models and plenty of gateways only ever supported the old one. There is detail on that in adding a payment gateway to the WooCommerce Checkout Block.

Keep customers on your checkout page

Embedded card and crypto fields, one Place Order button, no redirect.

Get the plugin →
← Back to Articles Get the plugin from $5/mo →