Linux 软件免费装
Banner图

Smartdisain Conditional Checkout Rules for WooCommerce

开发者 teetb
更新时间 2026年11月6日 18:50
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

woocommerce shipping methods user roles shipping classes checkout fields

下载

1.1.0 1.0.0

详情介绍:

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 A third screen (WooCommerce → Settings → Shipping → Role rules) lets you set rules per user role: "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; the built-in WordPress and WooCommerce 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" rules for users of that role. Works in the classic and the block-based checkout. Features Compatibility 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:

安装:

  1. Upload the zip: Plugins → Add New → Upload Plugin.
  2. Activate the plugin.
  3. Open WooCommerce → Settings → Shipping → Checkout fields (and Shipping class rules).

常见问题:

Does it work with the block-based checkout?

Yes. WooCommerce does not offer conditional rules for the core address fields of the block checkout, so the plugin sets the rules on the server (the documented woocommerce_get_country_locale filter) and reloads the checkout when the selected shipping rate changes them. Rules for address fields apply to the billing and shipping forms together. You can switch the reload off with add_filter( 'ccffw_blocks_reload', '__return_false' ); or block checkout support off with add_filter( 'ccffw_blocks_support', '__return_false' );.

What happens if a field is both hidden and required?

Hiding wins. The settings screen only lets you pick one option per field.

How do I hide a shipping method for some products?

Give those products a shipping class (WooCommerce → Settings → Shipping → Classes, then the Shipping tab of the product). Then open Shipping class rules, open the card of that class and set the method to Disable.

What if all shipping methods get disabled?

The customer then sees no shipping options, as WooCommerce does when no method matches. Make sure at least one method stays available for every combination of shipping classes.

Can I disable a shipping method for products without a shipping class?

Not in the current version; rules are set per shipping class. You can filter the rules with ccffw_class_rules.

Does it work with the cart and the block-based cart?

Yes. The shipping class rules filter the shipping rates themselves, so they apply everywhere WooCommerce shows them.

Which roles can I set rules for?

Logged out visitors, all logged-in users, and every custom role of your site (for example one created by a membership or wholesale plugin). If the site has no custom roles, only "Logged out" and "Logged in" are shown.

A customer has several roles. Which rules apply?

The rules of all of that customer's roles are combined. If at least one of the roles has rules of its own, the general "Logged in (any role)" rules are not used for that customer.

Is the plugin translated?

The plugin is written in English and is fully translation ready. Translations are provided through translate.wordpress.org.

更新日志:

1.1.0 1.0.0