{"id":328112,"date":"2026-06-20T20:17:30","date_gmt":"2026-06-20T20:17:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/saan-shipping-rules-for-woocommerce\/"},"modified":"2026-06-20T20:17:03","modified_gmt":"2026-06-20T20:17:03","slug":"saan-shipping-rules-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/saan-shipping-rules-for-woocommerce\/","author":15532824,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.0","stable_tag":"3.0.0","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Saan Shipping Rules for WooCommerce","header_author":"Andy Kramer","header_description":"Controls which shipping methods are available based on the size and type of products in the cart, not their weight.","assets_banners_color":"f2f2f3","last_updated":"2026-06-20 20:17:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/saan.digital\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":22,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.0.0":{"tag":"3.0.0","author":"andykr","date":"2026-06-20 20:17:03"}},"upgrade_notice":{"3.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580121,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580121,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580121,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580121,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3580121,"resolution":"1","location":"assets","locale":"","width":1251,"height":573},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3580121,"resolution":"2","location":"assets","locale":"","width":1235,"height":475},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3580121,"resolution":"3","location":"assets","locale":"","width":1232,"height":445},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3580121,"resolution":"4","location":"assets","locale":"","width":1218,"height":300},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3580121,"resolution":"5","location":"assets","locale":"","width":1221,"height":410},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3580121,"resolution":"6","location":"assets","locale":"","width":710,"height":222}},"screenshots":{"1":"Overview of shipping rules - drag to reorder, toggle to activate or deactivate.","2":"Rule details - rule name, shipping methods multiselect with inactive method labels.","3":"Capacity rules expanded - define how many items per shipping class fit in this shipment.","4":"Free shipping settings - enable and set the cart value threshold.","5":"How-it-works guide - collapsible explanation with example, visible directly in the admin.","6":"WooCommerce checkout - only the matching shipping methods are shown to the customer."}},"plugin_section":[],"plugin_tags":[268114,3546,264863,5030,286],"plugin_category":[45],"plugin_contributors":[152379],"plugin_business_model":[],"class_list":["post-328112","plugin","type-plugin","status-publish","hentry","plugin_tags-capacity","plugin_tags-shipping","plugin_tags-shipping-classes","plugin_tags-shipping-rules","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-andykr","plugin_committers-andykr"],"banners":{"banner":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/banner-772x250.png?rev=3580121","banner_2x":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/banner-1544x500.png?rev=3580121","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/icon-128x128.png?rev=3580121","icon_2x":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/icon-256x256.png?rev=3580121","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/screenshot-1.png?rev=3580121","caption":"Overview of shipping rules - drag to reorder, toggle to activate or deactivate."},{"src":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/screenshot-2.png?rev=3580121","caption":"Rule details - rule name, shipping methods multiselect with inactive method labels."},{"src":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/screenshot-3.png?rev=3580121","caption":"Capacity rules expanded - define how many items per shipping class fit in this shipment."},{"src":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/screenshot-4.png?rev=3580121","caption":"Free shipping settings - enable and set the cart value threshold."},{"src":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/screenshot-5.png?rev=3580121","caption":"How-it-works guide - collapsible explanation with example, visible directly in the admin."},{"src":"https:\/\/ps.w.org\/saan-shipping-rules-for-woocommerce\/assets\/screenshot-6.png?rev=3580121","caption":"WooCommerce checkout - only the matching shipping methods are shown to the customer."}],"raw_content":"<!--section=description-->\n<p><strong>Shipping Rules for WooCommerce<\/strong> lets you define exactly which shipping methods are available depending on what is in the customer's cart. Instead of weight-based rules, it uses WooCommerce product shipping classes combined with capacity rules so you can model real-world constraints like \"this shipping method fits up to 5 small parcels or 2 tubes, but not both at the same time.\"<\/p>\n\n<p><strong>How it works:<\/strong><\/p>\n\n<ol>\n<li>Define your shipping methods in WooCommerce (for example Standard or Express).<\/li>\n<li>Create product shipping classes (for example Small, Large, Tube) and assign them to your products.<\/li>\n<li>Create a rule here: give it a name and select which shipping methods it applies to.<\/li>\n<li>Optionally add capacity rules: define how many items of each shipping class fit into this shipment.<\/li>\n<li>Activate the rule. It applies as soon as all capacity constraints are met.<\/li>\n<li>Optionally enable free shipping from a certain cart value.<\/li>\n<\/ol>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Rules based on product shipping classes and capacity, not weight<\/li>\n<li>Multiple shipping methods per rule<\/li>\n<li>Capacity rules per shipping class (for example max. 5 Small, max. 2 Tube)<\/li>\n<li>Drag and drop to reorder rules - the first matching rule wins<\/li>\n<li>Free shipping threshold that sets all allowed shipping methods in the matching rule to no cost<\/li>\n<li>Active and inactive toggle per rule with validation<\/li>\n<li>Inactive WooCommerce shipping methods shown with a clear label<\/li>\n<li>Multilingual: English, German (DE\/CH), French (FR\/CH), Italian (IT\/CH)<\/li>\n<li>Clean admin UI integrated into the WooCommerce menu<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>WooCommerce -&gt; Shipping Rules<\/strong> to configure your rules.<\/li>\n<\/ol>\n\n<p>Make sure you have at least one shipping zone with shipping methods configured in WooCommerce before creating rules.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20weight-based%20shipping%3F\"><h3>Does this work with weight-based shipping?<\/h3><\/dt>\n<dd><p>No. This plugin controls shipping method availability based on product shipping classes and capacity (size\/type), not weight.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20no%20rule%20matches%3F\"><h3>What happens if no rule matches?<\/h3><\/dt>\n<dd><p>If no rule matches the cart contents, WooCommerce falls back to its standard shipping method display and all enabled methods for the customer's zone are shown.<\/p><\/dd>\n<dt id=\"can%20a%20rule%20have%20multiple%20shipping%20methods%3F\"><h3>Can a rule have multiple shipping methods?<\/h3><\/dt>\n<dd><p>Yes. You can assign multiple shipping methods to a single rule. All selected methods will be available at checkout when the rule applies.<\/p><\/dd>\n<dt id=\"what%20are%20capacity%20rules%3F\"><h3>What are capacity rules?<\/h3><\/dt>\n<dd><p>Capacity rules define how many items of a given product shipping class fit into a shipment. A rule only matches if every shipping class present in the package has a capacity rule defined, and none of the limits are exceeded.<\/p><\/dd>\n<dt id=\"is%20free%20shipping%20supported%3F\"><h3>Is free shipping supported?<\/h3><\/dt>\n<dd><p>Yes. You can define a cart value threshold. When reached, all allowed shipping methods in the matching rule are displayed at no cost.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Multilingual support: EN, DE (DE\/CH), FR (FR\/CH), IT (IT\/CH)<\/li>\n<li>Inactive shipping methods shown with label in method selector<\/li>\n<li>Collapsible how-it-works guide with mixed-package example<\/li>\n<li>Drag and drop reordering with dashed insertion line<\/li>\n<li>Active and inactive toggle with validation (rule name and methods required)<\/li>\n<li>New rules default to inactive<\/li>\n<li>WooCommerce submenu integration<\/li>\n<li>Requires Plugins header for WooCommerce dependency<\/li>\n<li>Free shipping threshold<\/li>\n<li>Capacity rules per shipping class<\/li>\n<\/ul>","raw_excerpt":"Control which shipping methods appear at checkout based on the size and type of products in the cart, not by weight.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328112"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/andykr"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328112"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328112"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328112"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328112"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328112"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}