The WooCommerce checkout shortcode, [woocommerce_checkout], is essential for rendering the entire checkout process on a designated page within a WordPress site. Proper configuration and assignment of this shortcode are crucial, as any missteps can lead to significant issues in order processing and customer experience, ultimately impacting sales.
- The [woocommerce_checkout] shortcode is a predefined code that displays the complete checkout form on a specified WordPress page.
- It must be explicitly assigned as the checkout page in WooCommerce settings for proper functionality.
- The shortcode does not accept parameters, but the checkout experience can be customized using WooCommerce hooks and filters.
- Common issues include blank pages, missing forms, and payment gateways not appearing, often due to misconfiguration or conflicts with themes/plugins.
- The shortcode works with most WooCommerce-compatible themes, while block themes may prioritize the Checkout Block by default.
- Regular testing and monitoring of the checkout process are vital to ensure a seamless customer experience and prevent lost sales.
Most checkout problems in WooCommerce don’t announce themselves. There’s no error page, no warning email. One day, you’re running a store. Next, people are dropping off before placing an order, and you have no clear explanation for it. Often, the culprit is the [woocommerce_checkout] shortcode, either missing, misconfigured, or quietly broken after a page rebuild.
This guide covers everything store owners actually need to know: what the shortcode does, how to set it up correctly, how to customize the checkout experience around it, and how to troubleshoot the most common failure scenarios.
The [woocommerce_checkout] shortcode is a single line of code that tells WordPress: “Render the entire WooCommerce checkout experience on this page.” Drop it into any page, and WooCommerce takes over from there.
What it renders:
- Billing and shipping fields
- Order summary and cart review
- All active payment gateways
- The Place Order button
Here’s the thing a lot of people miss: WooCommerce doesn’t scan your site looking for this shortcode. It needs to be explicitly told which page to use for checkout, using a Page ID assignment in your settings.
The shortcode alone isn’t enough. The page also has to be designated as the checkout page in WooCommerce → Settings → Advanced → Page setup. Without that assignment, order processing, payment handling, and email notifications won’t fire correctly.
For reference, WooCommerce has a handful of other shortcodes that work the same way, each tied to a specific page:
- [woocommerce_cart]: renders the cart page
- [woocommerce_my_account]: renders the customer account page
- [woocommerce_order_tracking]: renders the order tracking form
Each of these needs its own page assignment. The checkout shortcode is just the most critical of the bunch.
When you first install WooCommerce, it auto-generates a set of default pages, including a Checkout page with the shortcode already in place. Most of the time, you won’t need to touch it. But pages get deleted, drafted, or accidentally wiped during redesigns more often than you’d think. Here’s how to get it back.
If your checkout page was deleted or the shortcode was removed
- Go to Pages → Add New in your WordPress dashboard
- Give the page a title (e.g., “My Checkout”)
- Add a Shortcode block in the Block Editor and paste [woocommerce_checkout] into it
- Publish the page

- Navigate to WooCommerce → Settings → Advanced and select this page from the “Checkout page” dropdown

- Hit Save changes
Once done, visit the page on the frontend. You should see the full checkout form with your active payment methods listed.
If you’re using the Classic Editor
Paste [woocommerce_checkout] directly into the text/HTML view of the editor. Publish and assign the page the same way as above.
If you’re using a block theme
Newer WooCommerce versions running with block-based (FSE) themes default to the Checkout Block rather than the shortcode. The [woocommerce_checkout] shortcode still works in block themes, but WooCommerce will prioritize the Checkout Block if your theme supports it.
As a rule, if you’re on a classic theme, use the shortcode. If you’re on a block theme and starting fresh, the Checkout Block is the more native approach. If you’re migrating an existing store or using plugins that extend the shortcode-based checkout, stick with the shortcode.
Short answer is no. The shortcode itself is fixed. It has no parameters and doesn’t accept custom attributes.
But that’s not the full picture. The shortcode is just the trigger. What renders is entirely customizable through WooCommerce’s hooks, filters, and settings.
Option 1: Native WooCommerce customization via code
WooCommerce exposes checkout fields through the woocommerce_checkout_fields filter. You can use it to remove, reorder, or modify fields without touching any templates.
For example, to remove the company name and second address line from billing:
function remove_checkout_fields( $fields ) {
unset( $fields[‘billing’][‘billing_company’] );
unset( $fields[‘billing’][‘billing_address_2’] );
return $fields;
}
add_filter( ‘woocommerce_checkout_fields’, ‘remove_checkout_fields’ );
Add this to your theme’s functions.php or through a code snippets plugin. This is the cleanest approach if you’re comfortable with PHP.
Option 2: Checkout Block customization (block themes)
If you’re on a block theme using the WooCommerce Checkout Block, you get a visual editor inside Gutenberg. You can reorder, hide, or add fields through the block settings panel without touching code.
Option 3: Checkout plugins and page builders
For more complex WooCommerce checkout customizations (multi-step flows, custom field types, order bumps, layout changes), a dedicated checkout plugin gives you a drag-and-drop interface. The shortcode-based checkout sits underneath; the plugin layers its interface on top.
Also Read:
This section is worth bookmarking. These are the five most common scenarios where the checkout shortcode breaks, and how to fix each one.
1. The checkout page shows a blank page or 404
This almost always means the page was trashed, set to draft, or the shortcode was removed. Go to WooCommerce → Settings → Advanced and check which page is assigned under “Checkout page.”
If the dropdown shows nothing, or a page that no longer exists, that’s your problem. Create a new page with the shortcode and reassign it.
2. The checkout form doesn’t appear on the page
The page loads fine, but the form is just… missing. This is usually a JavaScript conflict with a theme or plugin. To diagnose it:
- Open your browser’s developer console (F12 → Console tab) and look for JS errors
- Temporarily switch to a default WooCommerce-compatible theme like Storefront
- Deactivate plugins one by one to isolate the conflict
Caching plugins can also cause this. Clear your site cache and test again before going down the conflict path.
3. The checkout page redirects to the wrong page
If clicking “Proceed to checkout” sends users to an unexpected page, it’s almost always a Page ID mismatch. The page assigned in WooCommerce settings is different from the one containing the shortcode.
Fix: go to WooCommerce → Settings → Advanced, reassign the correct checkout page, and save.
4. The shortcode displays as plain text
If you see [woocommerce_checkout] on the frontend instead of the form, WooCommerce isn’t processing the shortcode. This can happen if WooCommerce was deactivated and reactivated, or if the page was created before WooCommerce was installed.
Try deactivating and reactivating WooCommerce, or run the WooCommerce Setup Wizard to regenerate default pages.
5. Payment gateways are missing from the checkout form
The form appears, but there’s no payment method shown. Check WooCommerce → Settings → Payments and confirm at least one gateway is enabled and configured. Also, check whether your active gateways have any geo-restrictions that might hide them for your test location.
This comes up a lot, especially for stores migrating or rebuilding. Here’s a straightforward breakdown.
| Block Checkout | Shortcode Checkout | |
| Setup | Visual block editor, no shortcode needed | Paste shortcode, assign page |
| Plugin compatibility | Limited: some plugins don’t support it yet | Broad: most WooCommerce plugins support it |
| Customization | Block settings panel, some restrictions | WooCommerce hooks, filters, and custom fields |
| Theme requirement | Best with block/FSE themes | Works with classic and block themes |
| Field control | Visual editor in Gutenberg | Code-based or via checkout plugins |
| Best for | New stores on block themes, simple setups | Existing stores, plugin-heavy setups, and custom fields |
The WooCommerce classic checkout shortcode is the more established path and has the widest plugin and theme support. If you’ve been running WooCommerce for a while and your setup works, there’s no pressing reason to switch to the Checkout Block.
If you’re starting fresh on a block theme with a straightforward product catalog, the Checkout Block is the cleaner option.
“One-page checkout” is a term that gets used in a few different ways, so it’s worth clarifying.
WooCommerce’s default [woocommerce_checkout] shortcode already renders what most people call a one-page checkout. All fields (billing, shipping, payment) appear on a single page. There’s no multi-step flow unless you add one.
What some store owners actually want is a “buy on this page” experience, where the product selection and checkout form appear together on a single page without any cart step in between. That’s a separate pattern that requires a plugin to implement.
If you’re seeing the term “WooCommerce one-page checkout shortcode” in plugin documentation or setup guides, it usually refers to a custom shortcode provided by that specific plugin, not a native WooCommerce shortcode. The native checkout shortcode is just [woocommerce_checkout]. Anything else is plugin-specific.
How the Checkout Shortcode Connects to Auto Apply Coupons
If you’re using Smart Coupons for WooCommerce to auto-apply discounts at checkout, the coupon logic fires on the page assigned as the checkout page in WooCommerce settings. If that page assignment is broken or pointing to the wrong page, the coupon won’t trigger at checkout. The coupon itself may be perfectly configured, but the checkout page handoff is where it silently fails.
Any time auto-applied coupons stop working unexpectedly, the first thing to check is whether the checkout page assignment in WooCommerce → Settings → Advanced is pointing to the page that actually has the [woocommerce_checkout] shortcode.
What is the WooCommerce checkout shortcode?
It’s [woocommerce_checkout], a predefined WooCommerce shortcode that renders the full checkout form on any WordPress page. It displays billing and shipping fields, order summary, payment options, and the Place Order button.
Can I use the checkout shortcode on any page?
Yes, technically. But for WooCommerce to process orders correctly, that page also needs to be assigned as the checkout page under WooCommerce → Settings → Advanced. Placing the shortcode on a page without assigning it will display the form, but checkout functionality won’t work properly.
Does the checkout shortcode work with all themes?
It works with most WooCommerce-compatible themes. Full-site editing (FSE) or block themes may use the WooCommerce Checkout Block by default instead, but the shortcode still functions if you use it explicitly.
What’s the difference between the checkout shortcode and the cart shortcode? [woocommerce_cart] renders the cart page where customers review items before proceeding. [woocommerce_checkout] renders the checkout form where they enter payment and billing details. Each needs its own dedicated page.
Can I have two checkout pages with the same shortcode?
You can put the shortcode on multiple pages, but WooCommerce will only recognize one as the official checkout page (the one assigned in settings). The others will display the form but won’t process orders reliably.
How do I find my checkout page if WooCommerce deleted it?
Go to WooCommerce → Settings → Advanced and look at the “Checkout page” dropdown. If it’s empty or pointing to a deleted page, create a new page with the [woocommerce_checkout] shortcode, assign it there, and save.
Does the checkout shortcode work with the block editor?
Yes. Add a Shortcode block in Gutenberg and paste [woocommerce_checkout] into it. It renders correctly in both the classic and block editors.
The WooCommerce checkout shortcode may look simple, but it plays a critical role in how your store processes orders. Whether you’re rebuilding a broken checkout page, customizing the customer experience, or troubleshooting payment issues, understanding how the [woocommerce_checkout] shortcode works can save you hours of confusion and prevent lost sales.
For most stores, the shortcode-based checkout remains the most reliable and plugin-compatible option, especially if you’re using extensions, custom fields, or advanced checkout workflows. At the same time, WooCommerce’s newer Checkout Block offers a cleaner visual experience for stores built entirely on block themes.
The key takeaway is this: your checkout page isn’t something to “set and forget.” A missing shortcode, wrong page assignment, or plugin conflict can quietly break conversions without obvious warning signs. Regularly testing your checkout flow and knowing where to look when something goes wrong helps keep your store running smoothly and your customers completing purchases without friction.