Free WooCommerce Plugin · v1.3.0

No Shipping No Checkout

Block checkout when no shipping rate is available for the customer's address. Payment methods disappear, the Place Order button is replaced with a message, and the checkout form stays editable so the customer can fix their address and try again.

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.

Use Cases

  • Geo-restricted products — certain states or regions must not be shipped to; configure the exclusion in your shipping method and this plugin enforces the block at checkout
  • Weight, dimension, or order-value limits — some carts are unshippable to certain destinations based on carrier rules
  • High-risk merchant compliance — payment processors require a hard stop at checkout so restricted-product orders to banned destinations cannot be placed
  • Any scenario where "no rate available" should mean "cannot check out"

Features

  • Works with the classic (shortcode) checkout and the block-based Cart & Checkout
  • Only blocks after the customer has entered a destination — never blocks an empty or unknown address
  • Never traps the customer on a page they cannot recover from
  • Ignores carts that do not need shipping (virtual or downloadable orders)
  • Customizable block message
  • Simple on/off toggle
  • HPOS (High-Performance Order Storage) compatible
  • Developer filters: nsnc_should_block_checkout, nsnc_block_message, nsnc_is_enabled

Requirements

  • WordPress 5.6+
  • PHP 7.2+
  • WooCommerce 5.0+ (tested up to 11.0)

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

Installation

  • Upload the plugin ZIP via Plugins → Add New → Upload Plugin, or copy the folder to wp-content/plugins/
  • Activate No Shipping No Checkout for WooCommerce
  • Edit the message under WooCommerce → No Shipping No Checkout (optional)
  • Configure your shipping method(s) so restricted destinations receive no rate — the plugin does the rest

Changelog

1.3.0
Dedicated Setup page with tabbed interface, live status checklist, and translation-ready POT template. Tested up to WordPress 7.1 and WooCommerce 11.0.
1.2.0
First-run onboarding redirect, contextual Help tabs, branded status header, and uninstall cleanup.
1.1.0
Optional "About CCMS" tab with consent-based newsletter opt-in. No data leaves the site unless the admin explicitly subscribes.
1.0.2
Fixed a checkout lock-out where the checkout form could be hidden behind the "there are some issues" template.
1.0.1
Fixed a false block on page load when the customer had a previously-calculated address in the session.
1.0.0
Initial release.

Plugin Details

  • Version: 1.3.0
  • License: GPL-2.0-or-later
  • WordPress: 5.6+
  • WooCommerce: 5.0 – 11.0
  • PHP: 7.2+
  • Author: CCMS

Need Help?

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

Contact Support