{"id":378768,"date":"2026-10-05T18:45:14","date_gmt":"2026-10-05T18:45:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rulecraft-shipping\/"},"modified":"2026-10-05T18:29:42","modified_gmt":"2026-10-05T18:29:42","slug":"haywoodtech-conditional-shipping","status":"publish","type":"plugin","link":"https:\/\/fy.wordpress.org\/plugins\/haywoodtech-conditional-shipping\/","author":20874631,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"trunk","tested":"7.1.2","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"HaywoodTech Conditional Shipping for WooCommerce","header_author":"haywoodtech","header_description":"Table rate and conditional shipping for WooCommerce from one rules engine, with a visual rule builder, test carts and region templates.","assets_banners_color":"4b6a70","last_updated":"2026-10-05 18:29:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/haywoodtech.in\/conditional-shipping\/","header_author_uri":"https:\/\/haywoodtech.in\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3729467,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3729467,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3729467,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3729467,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3729467,"resolution":"1","location":"assets","locale":"","width":1920,"height":1440},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3729467,"resolution":"2","location":"assets","locale":"","width":1920,"height":1440},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3729467,"resolution":"3","location":"assets","locale":"","width":1920,"height":1440},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3729467,"resolution":"4","location":"assets","locale":"","width":1920,"height":1440},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3729467,"resolution":"5","location":"assets","locale":"","width":1920,"height":1440},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3729467,"resolution":"6","location":"assets","locale":"","width":1920,"height":1010},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3729467,"resolution":"7","location":"assets","locale":"","width":1920,"height":1440}},"screenshots":{"1":"The rule builder, with the cart simulator beside the rules.","2":"A rule opened for editing: conditions, actions and Stop here.","3":"Starting from a region template.","4":"The cart simulator explaining which rules priced a test cart.","5":"The debug panel on the cart page.","6":"\"Add X more for free shipping\" in the Cart block.","7":"How an order's shipping cost was worked out, under its shipping line."}},"plugin_section":[],"plugin_tags":[146193,5230,3546,30113,286],"plugin_category":[45],"plugin_contributors":[217640],"plugin_business_model":[],"class_list":["post-378768","plugin","type-plugin","status-publish","hentry","plugin_tags-conditional-shipping","plugin_tags-free-shipping","plugin_tags-shipping","plugin_tags-table-rate-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-haywoodtech","plugin_committers-haywoodtech"],"banners":{"banner":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/banner-772x250.png?rev=3729467","banner_2x":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/banner-1544x500.png?rev=3729467","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/icon-128x128.png?rev=3729467","icon_2x":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/icon-256x256.png?rev=3729467","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-1.png?rev=3729467","caption":"The rule builder, with the cart simulator beside the rules."},{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-2.png?rev=3729467","caption":"A rule opened for editing: conditions, actions and Stop here."},{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-3.png?rev=3729467","caption":"Starting from a region template."},{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-4.png?rev=3729467","caption":"The cart simulator explaining which rules priced a test cart."},{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-5.png?rev=3729467","caption":"The debug panel on the cart page."},{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-6.png?rev=3729467","caption":"\"Add X more for free shipping\" in the Cart block."},{"src":"https:\/\/ps.w.org\/haywoodtech-conditional-shipping\/assets\/screenshot-7.png?rev=3729467","caption":"How an order's shipping cost was worked out, under its shipping line."}],"raw_content":"<!--section=description-->\n<p><strong>Shipping rules you can read, test and trust.<\/strong><\/p>\n\n<p>HaywoodTech Conditional Shipping replaces a maze of shipping settings with rules that read like sentences, such as <em>Up to 2 kg \u2192 \u00a33.95 \u00b7 Stop here<\/em>, and a cart simulator that shows what any cart will pay, and why, before you save.<\/p>\n\n<p>Every price comes from one rules engine. The cart, the checkout and the simulator all ask it the same question, so the price you test is the price your customers pay.<\/p>\n\n<p>\ud83d\udcd6 <strong>Documentation:<\/strong> the full guide, from setup to every setting, is at <a href=\"https:\/\/haywoodtech.in\/conditional-shipping\/\">haywoodtech.in\/conditional-shipping<\/a>.<\/p>\n\n<h4>What makes it different<\/h4>\n\n<ul>\n<li>\ud83e\uddea <strong>Test before you save.<\/strong> Build test carts from your own products, pick an address, and see what each cart pays and which rule decided it.<\/li>\n<li>\ud83d\udcdd <strong>Rules that read like sentences.<\/strong> No spreadsheets of rates. Each rule says when it applies and what it charges, in plain words.<\/li>\n<li>\ud83c\udf81 <strong>Nothing held back.<\/strong> Every feature on this page works as soon as you activate the plugin, with no account and no licence key.<\/li>\n<li>\ud83c\udf0d <strong>Ready for your region.<\/strong> Start from a template for the US, UK, EU, Australia, Russia, the Gulf states, India, Asia or Africa.<\/li>\n<li>\u26a1 <strong>Built for today's WooCommerce.<\/strong> Cart and checkout blocks, High-Performance Order Storage, any country, currency, unit and language.<\/li>\n<\/ul>\n\n<h4>Charge by<\/h4>\n\n<ul>\n<li><strong>Cart subtotal<\/strong>, including or excluding tax, before or after coupons<\/li>\n<li><strong>Cart weight<\/strong>, in kg, g, lbs or oz<\/li>\n<li><strong>Number of items<\/strong><\/li>\n<li><strong>Shipping class<\/strong>: any item, every item or no item in a class<\/li>\n<li><strong>Product category<\/strong>, including subcategories<\/li>\n<li><strong>Postcode<\/strong>: exact (<code>400001<\/code>), wildcard (<code>SW1A*<\/code>) or range (<code>90001...90099<\/code>)<\/li>\n<\/ul>\n\n<p>Combine conditions with AND and OR in the same rule.<\/p>\n\n<h4>Set the price with<\/h4>\n\n<ul>\n<li>A <strong>flat cost<\/strong><\/li>\n<li>A cost <strong>per kg, lb or item<\/strong>, counting every item or only some shipping classes or categories<\/li>\n<li><strong>Free shipping<\/strong> from an order value<\/li>\n<li>A <strong>minimum<\/strong> and <strong>maximum<\/strong> cost<\/li>\n<\/ul>\n\n<h4>How rules work<\/h4>\n\n<p>Rules run from top to bottom. Every rule that matches adds its cost, until one marked <strong>Stop here<\/strong> matches. That's how a remote-area surcharge sits on top of a base rate, and how weight bands stop at the first band that fits.<\/p>\n\n<p>If no rule matches, the method isn't offered. A gap in your rules never means free shipping by accident.<\/p>\n\n<h4>Example: the UK template<\/h4>\n\n<p>The UK template sets up five rules. You type the amounts:<\/p>\n\n<ol>\n<li><strong>Free shipping<\/strong> from \u00a350<\/li>\n<li><strong>Northern Ireland, Highlands and islands<\/strong> \u2192 add \u00a310<\/li>\n<li><strong>Up to 2 kg<\/strong> \u2192 \u00a33.95 \u00b7 Stop here<\/li>\n<li><strong>Up to 10 kg<\/strong> \u2192 \u00a36.95 \u00b7 Stop here<\/li>\n<li><strong>Up to 30 kg<\/strong> \u2192 \u00a312.95 \u00b7 Stop here<\/li>\n<\/ol>\n\n<p>A \u00a320 order weighing 5 kg to Belfast pays \u00a310 + \u00a36.95 = <strong>\u00a316.95<\/strong>, and the cart tells the customer <em>Add \u00a330.00 more for free shipping<\/em>. Heavier parcels get no rate.<\/p>\n\n<h4>See why a cart got its price<\/h4>\n\n<ul>\n<li><strong>Cart simulator.<\/strong> Beside your rules, every test cart is priced again after every edit, with the reason for each rule: matched, skipped, or which condition didn't fit.<\/li>\n<li><strong>Debug panel.<\/strong> Switch it on and shop managers see what every method made of their own cart, on the cart and checkout pages. Customers never see it.<\/li>\n<li><strong>Order screen.<\/strong> Each shipping line shows how its cost was worked out when the order was placed: what the rules measured, and what every rule did and why.<\/li>\n<\/ul>\n\n<h4>Free-shipping notice<\/h4>\n\n<p>When a rule offers free shipping from an order value, the cart shows customers how much more they need: <em>Add \u00a330.00 more for free shipping<\/em>. It works in the classic cart and the Cart block.<\/p>\n\n<h4>Works with<\/h4>\n\n<ul>\n<li>The cart and checkout blocks, and the classic cart and checkout<\/li>\n<li>High-Performance Order Storage (HPOS)<\/li>\n<li>Any country: weight units, currency, postcode formats and language come from your store's settings<\/li>\n<li>Right-to-left languages<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce, then HaywoodTech Conditional Shipping.<\/li>\n<li>Go to <strong>WooCommerce \u203a Settings \u203a Shipping<\/strong>, open a shipping zone and add <strong>HaywoodTech Conditional Shipping<\/strong>.<\/li>\n<li>Click <strong>Edit<\/strong> on the method. Start from a region template, or add your first rule.<\/li>\n<li>Add a test cart in the simulator and check what it pays.<\/li>\n<li>Click <strong>Save changes<\/strong>.<\/li>\n<\/ol>\n\n<p>The free-shipping notice and the debug panel are under <strong>WooCommerce \u203a Settings \u203a Shipping \u203a Shipping options<\/strong>.<\/p>\n\n<p>Each step, and every setting, is explained in the <a href=\"https:\/\/haywoodtech.in\/conditional-shipping\/\">documentation<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20cart%20and%20checkout%20blocks%3F\"><h3>Does it work with the cart and checkout blocks?<\/h3><\/dt>\n<dd><p>Yes. The blocks and the classic cart and checkout get the same rates, and the free-shipping notice appears in both carts.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20no%20rule%20matches%20a%20cart%3F\"><h3>What happens when no rule matches a cart?<\/h3><\/dt>\n<dd><p>The method isn't offered, so a gap in your rules never means free shipping by accident. You can change that in the method's rule settings to offer it free instead.<\/p><\/dd>\n<dt id=\"can%20i%20offer%20standard%20and%20express%20in%20the%20same%20zone%3F\"><h3>Can I offer Standard and Express in the same zone?<\/h3><\/dt>\n<dd><p>Yes. Add HaywoodTech Conditional Shipping to the zone once for each option. Each has its own name and rules, and they share the same test carts.<\/p><\/dd>\n<dt id=\"does%20it%20work%20in%20my%20country%2C%20currency%20and%20units%3F\"><h3>Does it work in my country, currency and units?<\/h3><\/dt>\n<dd><p>Yes. Rules remember the weight unit they were written in, amounts are in your store's currency, and postcode rules follow your country's format. Nothing assumes a country.<\/p><\/dd>\n<dt id=\"how%20do%20i%20find%20out%20why%20a%20cart%20got%20a%20certain%20price%3F\"><h3>How do I find out why a cart got a certain price?<\/h3><\/dt>\n<dd><p>Turn on the debug panel under <strong>WooCommerce \u203a Settings \u203a Shipping \u203a Shipping options<\/strong>, then open the cart while logged in as a shop manager. Or add the cart to the simulator on the method's settings page. For an order, open <strong>How this cost was worked out<\/strong> under its shipping line: it shows what every rule did when the order was placed, even if the rules have changed since.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20currency%20switchers%3F\"><h3>Does it work with currency switchers?<\/h3><\/dt>\n<dd><p>Rule amounts are in your store's base currency, and most currency switchers convert shipping rates themselves. If yours also converts cart totals, use the <code>hwtcs_cart_context<\/code> filter to convert them back before the rules are checked, and <code>hwtcs_free_shipping_notice<\/code> for the notice.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20rules%20as%20json%3F\"><h3>Can I edit the rules as JSON?<\/h3><\/dt>\n<dd><p>Yes. The rule builder has a JSON view, which is also what the page falls back to if the builder can't load. Rules with errors are never saved, from either view.<\/p><\/dd>\n<dt id=\"does%20haywoodtech%20conditional%20shipping%20send%20data%20anywhere%3F\"><h3>Does HaywoodTech Conditional Shipping send data anywhere?<\/h3><\/dt>\n<dd><p>No. It doesn't contact any external service. Rules, test carts and settings stay in your WordPress database.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%20for%20the%20javascript%3F\"><h3>Where is the source code for the JavaScript?<\/h3><\/dt>\n<dd><p>The compiled files in <code>assets\/build<\/code> are built from <code>assets\/src<\/code>, which ships with the plugin. <code>package.json<\/code> and <code>webpack.config.js<\/code> show how: <code>npm ci<\/code>, then <code>npm run build<\/code>, with <code>@wordpress\/scripts<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: visual rule builder, cart simulator, region templates for nine regions, debug panel, how each order's shipping was worked out on the order screen, and the free-shipping notice.<\/li>\n<\/ul>","raw_excerpt":"Table rate and conditional shipping for WooCommerce. Build rules visually, test them on real carts, and start from a template for your region.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/378768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=378768"}],"author":[{"embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/haywoodtech"}],"wp:attachment":[{"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=378768"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=378768"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=378768"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=378768"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=378768"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=378768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}