{"id":395142,"date":"2026-10-29T21:03:32","date_gmt":"2026-10-29T21:03:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mad-cow-checkout-fees-for-woocommerce\/"},"modified":"2026-10-29T21:03:08","modified_gmt":"2026-10-29T21:03:08","slug":"mad-cow-checkout-fees-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mad-cow-checkout-fees-for-woocommerce\/","author":425906,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Mad Cow Checkout Fees for WooCommerce","header_author":"Mad Cow Web","header_description":"Add conditional fees or discounts to the WooCommerce checkout based on products, categories, and shipping state.","assets_banners_color":"485262","last_updated":"2026-10-29 21:03:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/madcowweb.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"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":"jrobie23","date":"2026-10-29 21:03:08","revision":3774027}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3774026,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3774026,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3774026,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3774026,"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":3774026,"resolution":"1","location":"assets","locale":"","width":952,"height":1288},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3774026,"resolution":"2","location":"assets","locale":"","width":1568,"height":692},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3774026,"resolution":"3","location":"assets","locale":"","width":555,"height":556}},"screenshots":{"1":"A fee rule open for editing: amount, how it is charged (once per order, per matching line, or per matching unit), tax class, and product, category and shipping-state conditions.","2":"The rules list. Each rule collapses to a single line and can be removed without leaving the page.","3":"Fees on the cart totals: a per-unit handling fee, a state delivery fee, and a percentage discount on hoodies only."}},"plugin_section":[],"plugin_tags":[3148,274255,66387,3149,286],"plugin_category":[45],"plugin_contributors":[146391],"plugin_business_model":[],"class_list":["post-395142","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout","plugin_tags-delivery-fee","plugin_tags-fees","plugin_tags-surcharge","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-jrobie23","plugin_committers-jrobie23"],"banners":{"banner":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/banner-772x250.jpg?rev=3774026","banner_2x":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/banner-1544x500.jpg?rev=3774026","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/icon-128x128.png?rev=3774026","icon_2x":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/icon-256x256.png?rev=3774026","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/screenshot-1.png?rev=3774026","caption":"A fee rule open for editing: amount, how it is charged (once per order, per matching line, or per matching unit), tax class, and product, category and shipping-state conditions."},{"src":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/screenshot-2.png?rev=3774026","caption":"The rules list. Each rule collapses to a single line and can be removed without leaving the page."},{"src":"https:\/\/ps.w.org\/mad-cow-checkout-fees-for-woocommerce\/assets\/screenshot-3.png?rev=3774026","caption":"Fees on the cart totals: a per-unit handling fee, a state delivery fee, and a percentage discount on hoodies only."}],"raw_content":"<!--section=description-->\n<p>Create as many fee rules as you need under WooCommerce \u2192 MCW Checkout Fees. Each rule adds one line to the cart and checkout totals when its conditions match the customer's cart.<\/p>\n\n<p><strong>What a rule can do<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed or percentage amounts.<\/strong> A percentage is calculated on the cart subtotal.<\/li>\n<li><strong>Negative amounts<\/strong> for discounts.<\/li>\n<li><strong>Once per order, per matching cart line, or per matching unit.<\/strong> A per-line or per-unit percentage applies only to the matching lines. The result is always one fee line.<\/li>\n<li><strong>Taxable or not<\/strong>, with your choice of tax class when it is taxable.<\/li>\n<li><strong>Enable or disable<\/strong> a rule without deleting it.<\/li>\n<\/ul>\n\n<p><strong>Conditions<\/strong><\/p>\n\n<ul>\n<li><strong>Products<\/strong> \u2014 match specific products or variations in the cart.<\/li>\n<li><strong>Categories<\/strong> \u2014 match products in particular product categories. A parent category also matches its sub-categories.<\/li>\n<li><strong>Shipping states<\/strong> \u2014 match the customer's shipping state, grouped by country.<\/li>\n<li><strong>AND or OR logic<\/strong> \u2014 require every condition to match, or just one.<\/li>\n<\/ul>\n\n<p>A rule with no conditions applies to every cart.<\/p>\n\n<p><strong>Examples<\/strong><\/p>\n\n<ul>\n<li>A flat $0.28 delivery fee on orders shipping to Colorado.<\/li>\n<li>A $2.00 handling fee when the cart contains anything from a \"Fragile\" category.<\/li>\n<li>A 5% discount for a \"Wholesale\" category.<\/li>\n<li>A $15.00 surcharge when a specific product is shipped to a specific state.<\/li>\n<\/ul>\n\n<p><strong>Built for WooCommerce<\/strong><\/p>\n\n<ul>\n<li>Declares High-Performance Order Storage (HPOS) compatibility.<\/li>\n<li>Fees use WooCommerce's own cart fees API, so they appear in the cart, at checkout, on the order, and in emails.<\/li>\n<li>No external requests, no tracking, no ads.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the plugin through Plugins \u2192 Add New \u2192 Upload Plugin, or install it from the WordPress plugin directory.<\/li>\n<li>Activate it.<\/li>\n<li>Go to WooCommerce \u2192 MCW Checkout Fees and click \"+ Add Fee Rule\".<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20a%20percentage%20fee%20based%20on%20the%20total%20or%20the%20subtotal%3F\"><h3>Is a percentage fee based on the total or the subtotal?<\/h3><\/dt>\n<dd><p>The cart subtotal \u2014 the sum of the product prices before shipping, taxes and other fees.<\/p><\/dd>\n<dt id=\"is%20the%20fee%20charged%20once%2C%20or%20for%20each%20matching%20item%3F\"><h3>Is the fee charged once, or for each matching item?<\/h3><\/dt>\n<dd><p>Your choice, per rule. \"Once per order\" adds the fee once when the cart matches. \"Once per matching cart line\" adds it for every cart line whose product or category matches. \"Once per matching unit\" multiplies that by the line quantity. A percentage on the per-line and per-unit options is taken from the matching lines only, not the whole cart. The customer always sees one fee line.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20discount%20instead%20of%20a%20fee%3F\"><h3>Can I add a discount instead of a fee?<\/h3><\/dt>\n<dd><p>Yes. Enter a negative amount.<\/p><\/dd>\n<dt id=\"how%20do%20i%20charge%20tax%20on%20a%20fee%3F\"><h3>How do I charge tax on a fee?<\/h3><\/dt>\n<dd><p>Tick \"Taxable\" on the rule and choose the tax class. The fee is taxed the same way a product in that class would be.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20use%20more%20than%20one%20condition%3F\"><h3>What happens if I use more than one condition?<\/h3><\/dt>\n<dd><p>With \"All conditions must match (AND)\", every condition you filled in has to be true. With \"Any condition matches (OR)\", one is enough. Conditions you leave empty are ignored.<\/p><\/dd>\n<dt id=\"i%20used%20the%20earlier%20%22mad%20cow%20store%20checkout%20fees%22%20plugin.%20will%20my%20rules%20carry%20over%3F\"><h3>I used the earlier \"Mad Cow Store Checkout Fees\" plugin. Will my rules carry over?<\/h3><\/dt>\n<dd><p>Yes. This plugin reads the rules saved by the earlier plugin until you save rules of its own. Deactivate the earlier plugin first, otherwise both will add their fees.<\/p><\/dd>\n<dt id=\"does%20deleting%20the%20plugin%20remove%20its%20data%3F\"><h3>Does deleting the plugin remove its data?<\/h3><\/dt>\n<dd><p>Yes. Deleting it from the Plugins screen removes the saved fee rules.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed: a rule set to a parent category (for example Clothing) now also matches products that are only in its sub-categories (Hoodies, Tshirts).<\/li>\n<li>Renamed to Mad Cow Checkout Fees for WooCommerce for the WordPress plugin directory. Existing rules carry over.<\/li>\n<li>Fixed: removing a saved rule could delete a different rule after rules had been added or removed on the same page. Rules now have a stable ID.<\/li>\n<li>Added: choose whether a fee is charged once per order, per matching cart line, or per matching unit.<\/li>\n<li>Added: choose a tax class for taxable fees.<\/li>\n<li>Fixed: two rules with the same name no longer cancel each other out; the second gets a numeric suffix.<\/li>\n<li>Fixed: rule titles containing special characters were double-escaped.<\/li>\n<li>Fixed: the empty-state message showed the wrong text after the last rule was removed.<\/li>\n<li>Removed the self-hosted update checker.<\/li>\n<li>Admin script rewritten without jQuery.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Updated admin menu and page heading for consistency across Mad Cow plugins.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Add conditional fees or discounts to the WooCommerce checkout based on products, categories, and shipping state.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395142","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=395142"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jrobie23"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395142"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395142"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395142"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395142"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395142"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}