
Smartdisain Conditional Checkout Rules for WooCommerce lets you control the WooCommerce checkout by shipping method and shipping class, without code.
1. Checkout fields by shipping method
For each shipping method (e.g. parcel locker, courier, local pickup) you can choose:
Fields are hidden or made required instantly when the customer changes the shipping method at checkout. A hidden field is not validated and is never required (hiding takes precedence over requiring).
The settings screen shows one card per shipping method, with a simple Default / Hide / Required choice for every field, a search box, a “configured only” filter and the option to copy rules from another shipping method.
Settings: WooCommerce Settings Shipping Checkout fields.
2. Shipping methods by shipping class
A second screen shows one card per shipping class. For every shipping method choose Default (offered as usual) or Disable: a disabled method is not offered when the cart contains a product of that class. Use it, for example, to hide parcel lockers for bulky goods or to offer a courier only for fragile items.
Settings: WooCommerce Settings Shipping Shipping class rules.
3. Rules by user role
Shipping method rules per user role are in WooCommerce Settings Shipping Role rules:
Payment method rules per user role are in WooCommerce Settings Payments Payment rules (direct link: Plugins list “Payment rules”):
“Logged out” (guests) and “Logged in (any role)” are always listed. Roles added to your site (for example “Business customer” or a wholesale role) are listed automatically, together with the WooCommerce “Customer” role; the built-in WordPress roles are not, to keep the screen short (use the ccffw_admin_roles filter to list more). Rules of a specific role replace the “Logged in” or “Logged out” rules for users of that role: those are the fallback for everyone who has no rules of their own role. Works in the classic and the block-based checkout.
Features
Compatibility
[woocommerce_checkout] shortcode) and with the block-based Checkout (Store API).Block checkout notes
The block checkout has no per-shipping-method API for its core address fields, so the plugin uses WooCommerce’s documented woocommerce_get_country_locale filter (also used for Store API validation) and reloads the checkout when a shipping choice changes the rules. Address field rules apply to the billing and shipping forms together. Email and order notes cannot be changed in the block checkout.
Privacy and licensing
The plugin is completely free, has no locked or paid features, makes no external requests, loads no third-party code and collects no data.
For developers:
ccffw_rules filter – modify the rules ($rules, $type = hide | require).ccffw_class_rules filter – modify the shipping class rules (class slug => disabled shipping method keys).ccffw_blocks_support and ccffw_blocks_reload filters – switch block checkout support or the automatic reload off.local_pickup) applies to all instances of that shipping method.