{"id":355103,"date":"2026-08-25T04:34:18","date_gmt":"2026-08-25T04:34:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/advanced-shipping-rules-table-rate-conditional-weight-based-shipping\/"},"modified":"2026-08-25T04:34:00","modified_gmt":"2026-08-25T04:34:00","slug":"wpactpro-shipping-rate-builder","status":"publish","type":"plugin","link":"https:\/\/dsb.wordpress.org\/plugins\/wpactpro-shipping-rate-builder\/","author":18340638,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Advanced Shipping Rate Builder \u2013 Table Rate, Conditional & Weight Based Shipping","header_author":"actpro","header_description":"Table rate, conditional and weight based shipping rules for WooCommerce. Visual rule builder, rate simulator and free-shipping progress bar.","assets_banners_color":"8a6ea7","last_updated":"2026-08-25 04:34:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/wpactpro-shipping-rate-builder\/","header_author_uri":"https:\/\/profiles.wordpress.org\/actpro\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":84,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"actpro","date":"2026-08-25 04:34:00"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3664547,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3664547,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3664547,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3664547,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3664547,"resolution":"1","location":"assets","locale":"","width":3118,"height":1480},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3664547,"resolution":"2","location":"assets","locale":"","width":3116,"height":1516},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3664547,"resolution":"3","location":"assets","locale":"","width":1514,"height":1394},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3664547,"resolution":"4","location":"assets","locale":"","width":1358,"height":1396},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3664547,"resolution":"5","location":"assets","locale":"","width":2740,"height":994},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3664547,"resolution":"6","location":"assets","locale":"","width":2566,"height":970},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3664547,"resolution":"7","location":"assets","locale":"","width":3106,"height":1542},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3664547,"resolution":"8","location":"assets","locale":"","width":2352,"height":838},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3664547,"resolution":"9","location":"assets","locale":"","width":2258,"height":774}},"screenshots":{"1":"Settings \u2014 show every matching rate and let the customer pick, or apply only the highest rule","2":"Rule builder \u2014 WHERE \/ WHEN \/ THEN \/ SHOW AS, with a live plain-language summary of the rule","3":"Free shipping over an amount \u2014 set the threshold and the rate becomes free above it","4":"Category surcharge \u2014 charge extra when the cart contains the products or categories you choose","5":"Cart \u2014 the free-shipping progress bar tells shoppers exactly how much more to add","6":"Checkout \u2014 your rule's label and rate, as the customer sees them","7":"Simulator \u2014 every rule run against a test cart, showing which matched and why the rest did not","8":"Conditions \u2014 stack cart subtotal, weight, item count, products, categories and shipping classes","9":"Operators \u2014 includes or excludes, at least or at most, so one condition covers either direction"}},"plugin_section":[],"plugin_tags":[146193,5030,30113,50882,5023],"plugin_category":[],"plugin_contributors":[192344,78154],"plugin_business_model":[],"class_list":["post-355103","plugin","type-plugin","status-publish","hentry","plugin_tags-conditional-shipping","plugin_tags-shipping-rules","plugin_tags-table-rate-shipping","plugin_tags-weight-based-shipping","plugin_tags-woocommerce-shipping","plugin_contributors-actpro","plugin_contributors-freemius","plugin_committers-actpro"],"banners":{"banner":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/banner-772x250.png?rev=3664547","banner_2x":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/banner-1544x500.png?rev=3664547","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/icon-128x128.png?rev=3664547","icon_2x":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/icon-256x256.png?rev=3664547","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-1.png?rev=3664547","caption":"Settings \u2014 show every matching rate and let the customer pick, or apply only the highest rule"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-2.png?rev=3664547","caption":"Rule builder \u2014 WHERE \/ WHEN \/ THEN \/ SHOW AS, with a live plain-language summary of the rule"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-3.png?rev=3664547","caption":"Free shipping over an amount \u2014 set the threshold and the rate becomes free above it"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-4.png?rev=3664547","caption":"Category surcharge \u2014 charge extra when the cart contains the products or categories you choose"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-5.png?rev=3664547","caption":"Cart \u2014 the free-shipping progress bar tells shoppers exactly how much more to add"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-6.png?rev=3664547","caption":"Checkout \u2014 your rule's label and rate, as the customer sees them"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-7.png?rev=3664547","caption":"Simulator \u2014 every rule run against a test cart, showing which matched and why the rest did not"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-8.png?rev=3664547","caption":"Conditions \u2014 stack cart subtotal, weight, item count, products, categories and shipping classes"},{"src":"https:\/\/ps.w.org\/wpactpro-shipping-rate-builder\/assets\/screenshot-9.png?rev=3664547","caption":"Operators \u2014 includes or excludes, at least or at most, so one condition covers either direction"}],"raw_content":"<!--section=description-->\n<p><strong>Advanced Shipping Rate Builder<\/strong> is a table rate shipping plugin for WooCommerce. It lets you build exactly the rates your store needs \u2014 table rate shipping, conditional shipping, weight based shipping and free shipping \u2014 and <em>see<\/em> what customers will pay before they do.<\/p>\n\n<p>Set up <strong>table rate shipping<\/strong> by cart total, weight or item count. Add <strong>conditional shipping<\/strong> rules that only apply to certain products, categories or shipping classes. Charge <strong>weight based shipping<\/strong> per kilogram, or a percentage of the order. All from one visual rule builder, with no code.<\/p>\n\n<p>Every rule reads as a sentence: <strong>WHERE<\/strong> (which WooCommerce zones) \u2192 <strong>WHEN<\/strong> (conditions) \u2192 <strong>THEN<\/strong> (what to charge) \u2192 <strong>SHOW AS<\/strong> (the label at checkout). A live plain-language summary restates the whole rule as you edit, and the built-in <strong>Simulator<\/strong> runs any test cart through the real engine, showing which rules matched, which were skipped and exactly why.<\/p>\n\n<h4>Why merchants choose it<\/h4>\n\n<p>Most shipping plugins make you guess. This one shows you the answer before your customer sees it: a live checkout preview while you edit, and a simulator that runs your real rules against any test cart. \"Why didn't my rule apply?\" stops being a support ticket.<\/p>\n\n<h4>Build rates from<\/h4>\n\n<ul>\n<li>Flat cost, cost per item, cost per weight, or percentage of the cart subtotal<\/li>\n<li>Tiered extras \u2014 add amounts per quantity, weight or subtotal range (up to 5 tiers)<\/li>\n<li>A free-shipping threshold on any rule (\"free when the cart total reaches \u2026\")<\/li>\n<\/ul>\n\n<h4>Target rules by<\/h4>\n\n<ul>\n<li>Your existing <strong>WooCommerce shipping zones<\/strong> \u2014 no duplicate location setup, ever<\/li>\n<li>Cart subtotal, cart weight, item quantity<\/li>\n<li>Products, product categories, shipping classes<\/li>\n<\/ul>\n\n<h4>Merchant-friendly by design<\/h4>\n\n<ul>\n<li><strong>Goal-first creation<\/strong> \u2014 pick what you want (\"free shipping over an amount\", \"weight-based rate\", \u2026) and get a working rule to adjust<\/li>\n<li><strong>Rule simulator<\/strong> \u2014 answer \"why didn't my rule apply?\" in seconds, not support tickets<\/li>\n<li><strong>Free-shipping progress bar<\/strong> on cart and checkout (\"Add \u20ac12.50 more for free shipping\"), classic and block carts alike<\/li>\n<li>Clear resolution: show all matching rates (customer picks) or highest-priority only \u2014 stated in plain words on the dashboard<\/li>\n<li>Rules never break checkout: a misconfigured rule is skipped and flagged in the dashboard, never fatal<\/li>\n<\/ul>\n\n<h4>Lightweight &amp; modern<\/h4>\n\n<ul>\n<li>Rules live in one indexed table \u2014 no post-meta bloat, one query per checkout calculation<\/li>\n<li>Zero frontend assets unless the progress bar is shown<\/li>\n<li>HPOS compatible, works with classic and Block cart\/checkout<\/li>\n<li>REST API and WP-CLI (<code>wp wpactpro-sr rules \u2026<\/code>) included<\/li>\n<\/ul>\n\n<h4>Pro<\/h4>\n\n<p>The free plugin does everything above. <a href=\"https:\/\/wpactpro.com\/shipping-rate-builder\/\">Advanced Shipping Rate Builder Pro<\/a> adds conditions for <strong>customer role<\/strong> (wholesale and B2B pricing), <strong>date window<\/strong> (seasonal and holiday rates), <strong>day of week<\/strong>, <strong>time window<\/strong> and <strong>coupon applied<\/strong>, plus OR condition groups so one rule can match several different carts.<\/p>\n\n<p>Every rule you build in the free version keeps working if a licence lapses \u2014 you can still edit, simplify and delete them.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <strong>WooCommerce<\/strong> first \u2014 this plugin extends it and will not activate without it.<\/li>\n<li>Upload the plugin through <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, or install it from the WordPress plugin directory.<\/li>\n<li>Activate it through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Shipping Rules<\/strong> and pick a goal to create your first rule.<\/li>\n<\/ol>\n\n<p>No shipping zone setup is required. Rules use the WooCommerce shipping zones you already have, so your countries, states and postcodes stay where you configured them.<\/p>\n\n<h4>Building from source<\/h4>\n\n<p>The admin interface in <code>build\/<\/code> is compiled from the React source in <code>client\/<\/code>, both of which ship with the plugin. To rebuild it:<\/p>\n\n<pre><code>npm install &amp;&amp; npm run build\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20set%20up%20table%20rate%20shipping%20in%20woocommerce%3F\"><h3>Can I set up table rate shipping in WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Build a table rate by adding tiers to any rule \u2014 different prices for each cart total, weight or quantity range (for example 0\u20135 kg, 5\u201320 kg, 20 kg and up). Tiers can add a flat amount once, or multiply per item, per kilogram or per unit of subtotal.<\/p><\/dd>\n<dt id=\"does%20it%20support%20weight%20based%20shipping%3F\"><h3>Does it support weight based shipping?<\/h3><\/dt>\n<dd><p>Yes. Charge a cost per weight unit, add weight-range tiers, or use cart weight as a condition so a rule only applies above or below a given weight. The weight unit follows your WooCommerce settings.<\/p><\/dd>\n<dt id=\"how%20do%20i%20create%20conditional%20shipping%20rules%3F\"><h3>How do I create conditional shipping rules?<\/h3><\/dt>\n<dd><p>Add conditions to a rule and it only applies when they all match. You can condition on cart subtotal, cart weight, item quantity, and whether the cart contains particular products, product categories or shipping classes.<\/p><\/dd>\n<dt id=\"how%20do%20i%20offer%20free%20shipping%20over%20a%20certain%20amount%3F\"><h3>How do I offer free shipping over a certain amount?<\/h3><\/dt>\n<dd><p>Set a free-shipping threshold on any rule \u2014 \"free when the cart total reaches \u2026\". Turn on the progress bar and shoppers see \"Add $12.50 more for free shipping\" on the cart and checkout, updating live as they shop.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20other%20shipping%20methods%20when%20my%20rule%20applies%3F\"><h3>Can I hide other shipping methods when my rule applies?<\/h3><\/dt>\n<dd><p>Yes. Any rule can hide the other shipping methods a customer would otherwise see, so a matching rate becomes the only option. It never leaves a customer with no shipping option at all \u2014 if no rate from this plugin applies, the others stay.<\/p><\/dd>\n<dt id=\"how%20does%20this%20relate%20to%20woocommerce%20shipping%20zones%3F\"><h3>How does this relate to WooCommerce shipping zones?<\/h3><\/dt>\n<dd><p>Rules target your existing zones (\"All zones\" or a selection). Destination matching \u2014 countries, states, postcodes \u2014 stays in WooCommerce where you already configured it. This plugin never re-implements geography.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20several%20rules%20match%20the%20same%20cart%3F\"><h3>What happens when several rules match the same cart?<\/h3><\/dt>\n<dd><p>Your choice, stated on the dashboard: show every matching rate so the customer picks (default), or apply only the highest rule in your list. The Simulator always shows the final outcome.<\/p><\/dd>\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 \u2014 rates flow through the Store API automatically, and the progress bar renders on block carts with live updates. The classic cart and checkout are equally supported.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20my%20store%20down%3F\"><h3>Will it slow my store down?<\/h3><\/dt>\n<dd><p>No. Rules load in a single indexed query, results are object-cached, and the frontend ships zero JavaScript\/CSS unless the progress bar is actually displayed.<\/p><\/dd>\n<dt id=\"can%20i%20charge%20different%20shipping%20rates%20per%20product%20or%20category%3F\"><h3>Can I charge different shipping rates per product or category?<\/h3><\/dt>\n<dd><p>Yes. Condition a rule on the cart containing particular products, product categories or shipping classes, then set the rate for that rule. A common setup is a shipping class for bulky items with its own higher rate.<\/p><\/dd>\n<dt id=\"can%20i%20offer%20multiple%20shipping%20rates%20for%20one%20order%3F\"><h3>Can I offer multiple shipping rates for one order?<\/h3><\/dt>\n<dd><p>Yes. By default every matching rule offers its rate and the customer picks at checkout. Switch to highest-priority-only if you would rather present a single option.<\/p><\/dd>\n<dt id=\"does%20it%20replace%20the%20woocommerce%20flat%20rate%20shipping%20method%3F\"><h3>Does it replace the WooCommerce flat rate shipping method?<\/h3><\/dt>\n<dd><p>No, it sits alongside it. Your existing flat rate, free shipping and local pickup methods keep working. If you want a rule to be the only option a customer sees, turn on \"hide other shipping methods\" for that rule.<\/p><\/dd>\n<dt id=\"can%20i%20set%20a%20maximum%20or%20minimum%20order%20weight%20for%20shipping%3F\"><h3>Can I set a maximum or minimum order weight for shipping?<\/h3><\/dt>\n<dd><p>Yes. Use cart weight as a condition \u2014 \"at least\" or \"at most\" a given weight \u2014 so a rule only offers its rate inside that range. Carts outside it simply do not get that rate.<\/p><\/dd>\n<dt id=\"can%20i%20manage%20rules%20from%20the%20command%20line%3F\"><h3>Can I manage rules from the command line?<\/h3><\/dt>\n<dd><p>Yes: <code>wp wpactpro-sr rules list|create|delete<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Rule engine with zone-aware shipping method \u2014 table rate, conditional, weight based and free shipping rules.<\/li>\n<li>Visual rule builder: WHERE \/ WHEN \/ THEN \/ SHOW AS, with a live plain-language summary and 10 goal templates.<\/li>\n<li>Rules dashboard with drag-to-reorder priority, live checkout preview and global save.<\/li>\n<li>Simulator \u2014 run any test cart through the real engine and see which rules matched, which were skipped and why.<\/li>\n<li>Condition groups: a rule can match on any of several groups \u2014 for example, \"cart weight over 10 kg\" OR \"contains the Fragile category\" \u2014 instead of only every condition at once. Adding a second group is a Pro feature; everything else here is free.<\/li>\n<li>Tiered extras (up to 5 tiers per rule) by quantity, weight or subtotal range.<\/li>\n<li>Free-shipping progress bar on cart and checkout, classic and block alike.<\/li>\n<li>Conditions on cart subtotal, cart weight, item quantity, products, product categories and shipping classes.<\/li>\n<li>Extension API: add-ons can register condition types, resolution modes and lookup sources, and the builder renders text, dropdown, multi-select, date and time conditions straight from their schema.<\/li>\n<li>REST API and WP-CLI (<code>wp wpactpro-sr rules \u2026<\/code>).<\/li>\n<li>HPOS compatible; works with the classic and Block cart\/checkout.<\/li>\n<\/ul>","raw_excerpt":"Table rate shipping for WooCommerce \u2014 conditional and weight based shipping rules, a visual builder, cart simulator and free shipping progress bar.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=355103"}],"author":[{"embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/actpro"}],"wp:attachment":[{"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355103"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355103"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355103"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355103"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355103"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/dsb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}