WooCommerce · Free Plugin

No Shipping No Checkout

Stop customers from checking out to an address you cannot ship to. When WooCommerce returns no shipping rate for the cart, the plugin removes the payment methods and replaces the Place Order button with a clear message, while keeping the checkout form editable.

What It Does

The plugin watches WooCommerce's calculated shipping. The moment a cart that needs shipping returns zero shipping rates for the customer's address, it:

  • Removes all payment methods, so the card fields disappear
  • Replaces the Place Order button with your message, so there is nothing to click
  • Shows the message inside the order review, without hiding the checkout form, so the customer can correct their address
  • Blocks the order on submission as a safety net, on both the classic and the block-based checkout

It is rate-source agnostic: it does not decide which locations are restricted. Your shipping methods decide where a rate is available, and the plugin enforces the block wherever a rate is not.

Requirements

  • WooCommerce active (the plugin declares WooCommerce as a required plugin)
  • At least one shipping method configured
  • WordPress 5.6+ and PHP 7.2+

It works with any shipping method that can decline to offer a rate for a destination: core Shipping Zones, Flat Rate, table-rate plugins, and live carrier rates.

Install and Activate

  • Upload the plugin ZIP under Plugins → Add New → Upload Plugin, then Activate
  • On activation you are taken to the settings screen automatically
  • Find it any time at WooCommerce → Settings → Shipping → Checkout Block

The status header on that screen confirms WooCommerce is detected, the block is enabled, and how many shipping methods are configured.

Configure Which Destinations Are Blocked

This is the most important step, and it happens in your shipping settings, not in the plugin. The plugin blocks wherever your store returns no rate, so you make a destination "blocked" by making your shipping method return nothing for it.

  • In a zone or table-rate method, exclude the restricted states or ZIP codes so no rate is produced for them
  • Confirm there is no fallback or catch-all rate that quietly covers the restricted destination
  • Repeat for every rate row and every method, so a restricted address never matches any rate

A common mistake is restricting states in only some rate rows, or leaving a country-wide rule that still covers a state you meant to block. If any rule still returns a rate for that address, the plugin correctly does not block it.

Test the Block

  • Add a shippable product to the cart and go to checkout
  • Enter an allowed address: you should see shipping rates, payment fields, and the Place Order button
  • Enter a restricted address: shipping should show no options, payment methods should disappear, and the Place Order button should be replaced with your message
  • Switch back to an allowed address: payment and Place Order should return

Test in a private or incognito window to avoid a cached checkout session.

Settings

  • Enable checkout block — turns the enforcement on or off
  • Block message — the text shown to the customer; leave blank to use the default

Developers can adjust behavior with the nsnc_should_block_checkout, nsnc_block_message, and nsnc_is_enabled filters.

Troubleshooting

A restricted address still checks out. Your shipping method is still returning a rate for it, often a fallback or a country-wide rule. Remove that rate for the restricted destination and the block will fire automatically.

Nothing is ever blocked. Confirm the block is enabled on the settings screen, that the cart actually needs shipping, and that the address has been entered so WooCommerce has calculated shipping.

Virtual or downloadable carts. If the cart does not need shipping, the plugin does nothing by design.

Compliance Note

Many payment processors require high-risk merchants to avoid shipping restricted products to restricted locations. This plugin gives you a hard stop at checkout so an order to a banned destination cannot be placed. If you want the restriction lists managed and kept current for you, along with managed hosting built for compliance-sensitive stores, CCMS can help — see the links in the sidebar.

When to Contact Support

  • The block is not firing for an address you expect to be restricted
  • You need help configuring your shipping method to exclude specific states, ZIP codes, or counties
  • You are setting up compliance rules for a high-risk product category

Email support@ccmssolutions.com with your store URL and the address you are testing, and we will help you pinpoint it.

Need Help?

Email support@ccmssolutions.com or call (954) 693-6422 for setup and compliance assistance.

Contact Support