=== YeeCheckout – Conditional Payments, Shipping & Fields for WooCommerce === Contributors: addonsorg Tags: woocommerce, conditional checkout, conditional payments, conditional shipping, checkout rules Requires at least: 5.0 Tested up to: 7.1 Stable tag: 1.0.2 WC requires at least: 6.0 WC tested up to: 10.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Create advanced conditional rules to control checkout behavior, payment methods, shipping destinations, and customer eligibility in WooCommerce. == Description == [youtube https://www.youtube.com/watch?v=UpWLeh7m3oE] **Conditional Checkout for WooCommerce** lets you define powerful rules that control how checkout behaves based on cart contents, customer data, shipping destinations, and more. Instead of hiding fields or countries, the plugin can **validate conditions and display a custom notice when customers attempt to place an order**, ensuring clarity and compliance with business rules. The plugin works with **both Classic Checkout (shortcode)** and **WooCommerce Checkout Blocks**. The plugin settings are organized into **four dedicated tabs**, making it easy to manage different checkout controls independently. **Document:** **PRO Version:** **Demo:** ### Typical use cases - Restrict payment methods by cart content, total, or customer role - Validate shipping destination (country / state) before order submission - Prevent checkout for specific customers or email domains - Enforce business rules with clear custom notices - Apply conditional logic without breaking WooCommerce UX == Conditional Payments == Control the availability of payment gateways based on defined conditions. - Enable or disable specific payment gateways - Only selected gateways are affected; all others remain unchanged - Compatible with WooCommerce Payments and third-party gateways - Conditions are evaluated dynamically during checkout == Conditional Shipping Destinations == Validate customer shipping destinations without hiding any checkout fields. - Select allowed or disallowed countries and states - Countries and states are NOT hidden from checkout - Validation runs when the customer places the order - A custom notice is displayed if the selected destination is not allowed - Fully compatible with Checkout Blocks This approach avoids UX issues caused by dynamically hiding country or state fields. == Conditional Shipping, Billing, Note Fields == Define the message shown to customers when a rule prevents checkout. - Custom message per rule - Clear and user-friendly checkout error notices - Useful for explaining business, legal, or shipping restrictions - Displayed only when conditions are met == Conditional Rules == Define the logic that determines when a rule should apply. - Cart total - Cart quantity - Cart weight (unit is taken from WooCommerce settings) - Products in cart (include / exclude) - Product categories - Brands (taxonomy-based) - Shipping class - Billing country / state - Shipping country / state - Customer role - Customer email (supports wildcard matching, e.g. *@example.com) - Order status Multiple conditions can be combined to create advanced rule logic. ### Frontend Compatibility - Classic checkout (shortcode) - WooCommerce Checkout Blocks - Server-side validation (reliable with Blocks) - No country/state hiding → no checkout breakage - Compatible with HPOS (High Performance Order Storage) == Installation == 1. Upload the plugin folder to `/wp-content/plugins/` 2. Activate **Conditional Checkout for WooCommerce** 3. Go to **WooCommerce → Settings → Conditional Checkout** 4. Create your rules and conditions 5. Test on checkout (classic or block) == Frequently Asked Questions == = Does this plugin hide countries or states? = No. The plugin validates conditions when the customer places the order and shows a notice if the destination is not allowed. = Does it work with Checkout Blocks? = Yes. The validation runs server-side and works with both Classic Checkout and Blocks. = Can I restrict by multiple countries or states? = Yes. Country and state fields support multi-select. = Can I match multiple customer emails? = Yes. Use comma-separated emails. Wildcards are supported: `*@example.com` will match all emails from that domain. = Will this break my payment gateways? = No. Only selected gateways are affected. All others remain unchanged. == Screenshots == 1. Rules management table 2. Rule editor with conditions 3. Shipping Destinations settings 4. Custom notice on checkout 5. Payment gateway restriction example == Changelog == = 1.0.0 = * Initial release