{"id":391661,"date":"2026-10-26T17:22:22","date_gmt":"2026-10-26T17:22:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codiffy-table-rate-shipping-for-woocommerce\/"},"modified":"2026-10-26T17:21:54","modified_gmt":"2026-10-26T17:21:54","slug":"codiffy-table-rate-shipping-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/codiffy-table-rate-shipping-for-woocommerce\/","author":17584496,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Codiffy Table Rate Shipping for WooCommerce","header_author":"Codiffy","header_description":"Flexible table rate shipping: charge by subtotal, weight, dimensions, quantity, shipping class, product, category, date or day, per order, item, line or class.","assets_banners_color":"4f4d56","last_updated":"2026-10-26 17:21:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/codiffy.com\/plugins\/codiffy-table-rate-shipping-for-woocommerce\/","header_author_uri":"https:\/\/codiffy.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":58,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"codiffy","date":"2026-10-26 17:21:54","revision":3766986}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3766986,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3766986,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3766986,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3766986,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3766986,"resolution":"1","location":"assets","locale":"","width":1366,"height":1500},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3766986,"resolution":"2","location":"assets","locale":"","width":1366,"height":1020},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3766986,"resolution":"3","location":"assets","locale":"","width":1366,"height":760},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3766986,"resolution":"4","location":"assets","locale":"","width":1366,"height":1300},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3766986,"resolution":"5","location":"assets","locale":"","width":1366,"height":1100}},"screenshots":{"1":"The table of rates: rows with conditions, costs, option titles and descriptions.","2":"Method settings: calculation basis, subtotal, weight, free shipping and customer role options.","3":"Shipping class priorities and the uninstall option.","4":"Customers choose between the options at checkout, with descriptions and the free-shipping counter.","5":"The classic cart showing table rate options."}},"plugin_section":[],"plugin_tags":[3546,13407,30113,50882,286],"plugin_category":[45],"plugin_contributors":[286838,286839],"plugin_business_model":[],"class_list":["post-391661","plugin","type-plugin","status-publish","hentry","plugin_tags-shipping","plugin_tags-shipping-class","plugin_tags-table-rate-shipping","plugin_tags-weight-based-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-codiffy","plugin_contributors-haroon5233","plugin_committers-codiffy"],"banners":{"banner":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/banner-772x250.png?rev=3766986","banner_2x":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/banner-1544x500.png?rev=3766986","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/icon-128x128.png?rev=3766986","icon_2x":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/icon-256x256.png?rev=3766986","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/screenshot-1.png?rev=3766986","caption":"The table of rates: rows with conditions, costs, option titles and descriptions."},{"src":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/screenshot-2.png?rev=3766986","caption":"Method settings: calculation basis, subtotal, weight, free shipping and customer role options."},{"src":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/screenshot-3.png?rev=3766986","caption":"Shipping class priorities and the uninstall option."},{"src":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/screenshot-4.png?rev=3766986","caption":"Customers choose between the options at checkout, with descriptions and the free-shipping counter."},{"src":"https:\/\/ps.w.org\/codiffy-table-rate-shipping-for-woocommerce\/assets\/screenshot-5.png?rev=3766986","caption":"The classic cart showing table rate options."}],"raw_content":"<!--section=description-->\n<p><strong>Codiffy Table Rate Shipping for WooCommerce<\/strong> adds a \"Codiffy Table Rate\" shipping method to your WooCommerce shipping zones. Build a table of rows; each row has one or more <strong>conditions<\/strong> and one or more <strong>costs<\/strong>. The first row that matches sets the price, so you can model almost any shipping price list: weight bands, order-value bands, free shipping over an amount, surcharges for bulky items, per-item fees, fuel surcharges and more.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Works with WooCommerce shipping zones:<\/strong> add the method to any zone (by country, state or postcode), as many times as you like.<\/li>\n<li><strong>Four ways to calculate:<\/strong> per order, per item (every unit), per line item, or per shipping class.<\/li>\n<li><strong>Per shipping class options:<\/strong> add up every class, use a single class only (highest priority), or charge only the highest or lowest costing class. Set class priorities on one screen.<\/li>\n<li><strong>13 conditions, as many per row as you need:<\/strong> subtotal, quantity, weight, length, width, height, surface area, volume, shipping class, product, category, date range and day of week.<\/li>\n<li><strong>Flexible costs, combined in one row:<\/strong> flat amount, percentage of subtotal, amount multiplied by weight \/ size \/ area \/ volume \/ quantity \/ subtotal, and amount \"for every\" X currency, weight, size or items. For example \"\u20ac3 + \u20ac1 for every kg\" or \"flat fee + 2% fuel surcharge\".<\/li>\n<li><strong>Several shipping options from one table:<\/strong> give rows an option title (for example \"Standard\" and \"Express\") and customers choose between them.<\/li>\n<li><strong>Drag and drop priority:<\/strong> reorder rows by dragging, or with keyboard-accessible arrow buttons.<\/li>\n<li><strong>Descriptions under each option:<\/strong> for example delivery times, with a free-shipping counter: <code>Spend {free-shipping@50} more for free shipping!<\/code><\/li>\n<li><strong>Default option:<\/strong> choose which option is selected first.<\/li>\n<li><strong>Exclusive options:<\/strong> when a row applies, hide the method's other options (for example only offer \"Free shipping\" once it qualifies).<\/li>\n<li><strong>Hide when WooCommerce Free Shipping is available.<\/strong><\/li>\n<li><strong>Limit by customer role<\/strong>, including guests.<\/li>\n<li><strong>Tax:<\/strong> taxable or not, per method.<\/li>\n<li><strong>Subtotal options:<\/strong> include tax and\/or apply coupons before the subtotal conditions and percentages are worked out.<\/li>\n<li><strong>Weight options:<\/strong> round weight up to the next whole number, and dimensional (volumetric) weight: volume divided or multiplied by a factor.<\/li>\n<li>Works with the classic and block cart and checkout, and with HPOS order storage.<\/li>\n<li>No external services, no tracking, nothing loaded on your storefront.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Go to <strong>WooCommerce &gt; Settings &gt; Shipping<\/strong>, open a shipping zone and click <strong>Add shipping method<\/strong>.<\/li>\n<li>Choose <strong>Codiffy Table Rate<\/strong>, then click <strong>Edit<\/strong> next to it.<\/li>\n<li>Choose how rates are calculated, then add rows to the <strong>Table of rates<\/strong>: conditions on the left, costs on the right.<\/li>\n<li>Save. Customers in that zone now see the option and price of the first matching row.<\/li>\n<\/ol>\n\n<p>Example: weight bands<\/p>\n\n<ul>\n<li>Row 1: Weight from 0 to 5 \u2192 Flat 4.95<\/li>\n<li>Row 2: Weight from 5 to 20 \u2192 Flat 9.95<\/li>\n<li>Row 3: Weight from 20 \u2192 Flat 9.95 + 0.50 for every 1 kg<\/li>\n<\/ul>\n\n<p>If no row matches (for example an order that is too heavy), the option is not offered.<\/p>\n\n<h4>About Codiffy<\/h4>\n\n<p>Codiffy Table Rate Shipping is built and maintained by <a href=\"https:\/\/codiffy.com\/\">Codiffy<\/a>, a WordPress and WooCommerce development studio. Need a custom feature for your store? Get in touch.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>In WordPress go to <strong>Plugins &gt; Add New<\/strong>, search for \"Codiffy Table Rate Shipping\" and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>. (Or upload the plugin ZIP through <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.)<\/li>\n<li>Go to <strong>WooCommerce &gt; Settings &gt; Shipping<\/strong>, open a zone, add <strong>Codiffy Table Rate<\/strong> and click <strong>Edit<\/strong> to build your table.<\/li>\n<\/ol>\n\n<p>Activating the plugin changes nothing on its own: shipping only changes once you add the method to a zone.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"in%20which%20order%20are%20rows%20checked%3F\"><h3>In which order are rows checked?<\/h3><\/dt>\n<dd><p>From top to bottom. For each shipping option, the first row whose conditions all match sets the cost. Put your most specific rows at the top.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20no%20row%20matches%3F\"><h3>What happens when no row matches?<\/h3><\/dt>\n<dd><p>That option is not offered. If no option of the method matches, the method shows nothing, which is how you stop orders that are too heavy or too large.<\/p><\/dd>\n<dt id=\"how%20do%20i%20offer%20standard%20and%20express%20from%20one%20table%3F\"><h3>How do I offer Standard and Express from one table?<\/h3><\/dt>\n<dd><p>Give some rows the option title \"Standard\" and others \"Express\". Each title becomes its own shipping option.<\/p><\/dd>\n<dt id=\"how%20does%20%22per%20item%22%20or%20%22per%20shipping%20class%22%20work%3F\"><h3>How does \"per item\" or \"per shipping class\" work?<\/h3><\/dt>\n<dd><p>The cart is split into groups (every unit, every cart line, or every shipping class). Each group is matched against the table on its own and the costs are added up. With \"per shipping class\" you can instead charge only one class: the highest priority class, or the highest or lowest costing class.<\/p><\/dd>\n<dt id=\"how%20do%20i%20make%20%22%E2%82%AC18%20up%20to%2015%20kg%2C%20then%20%E2%82%AC1%20for%20each%20extra%20kg%22%3F\"><h3>How do I make \"\u20ac18 up to 15 kg, then \u20ac1 for each extra kg\"?<\/h3><\/dt>\n<dd><p>Row 1: Weight to 15 \u2192 Flat 18. Row 2: Weight from 15 \u2192 Flat 3 + 1 for every 1 kg. The \"for every\" cost counts the whole weight, so the flat part is adjusted (here 18 \u2212 15 = 3). Costs may also be negative.<\/p><\/dd>\n<dt id=\"what%20do%20length%2C%20width%20and%20height%20mean%20for%20a%20group%20of%20products%3F\"><h3>What do length, width and height mean for a group of products?<\/h3><\/dt>\n<dd><p>They are the largest single item in the group (useful for oversize surcharges). Surface area (length \u00d7 width) and volume (length \u00d7 width \u00d7 height) are totals for the group.<\/p><\/dd>\n<dt id=\"which%20timezone%20do%20date%20and%20day%20of%20week%20conditions%20use%3F\"><h3>Which timezone do date and day of week conditions use?<\/h3><\/dt>\n<dd><p>Your site timezone from <strong>Settings &gt; General<\/strong>.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20cart%20and%20checkout%3F\"><h3>Does it work with the block cart and checkout?<\/h3><\/dt>\n<dd><p>Yes. Options, prices and descriptions appear in both the block-based and the classic cart and checkout.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20any%20data%20to%20other%20websites%3F\"><h3>Does the plugin send any data to other websites?<\/h3><\/dt>\n<dd><p>No. It does not contact any external service and does not track anyone.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>What is removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>By default nothing, so you can reinstall without losing your tables. Tick <strong>Delete all table rate methods and settings when the plugin is deleted<\/strong> under <strong>WooCommerce &gt; Settings &gt; Shipping &gt; Codiffy Table Rate<\/strong> to remove them.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<\/ul>","raw_excerpt":"Table rate shipping for WooCommerce: charge by subtotal, weight, size, quantity, class, product, category or date, per order, item, line or class.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/391661","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=391661"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codiffy"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=391661"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=391661"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=391661"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=391661"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=391661"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=391661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}