{"id":377812,"date":"2026-10-16T21:06:51","date_gmt":"2026-10-16T21:06:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/extnify-fee-rules-for-woocommerce\/"},"modified":"2026-10-29T11:42:01","modified_gmt":"2026-10-29T11:42:01","slug":"extnify-fee","status":"publish","type":"plugin","link":"https:\/\/lo.wordpress.org\/plugins\/extnify-fee\/","author":23554136,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Extnify Fee Rules for WooCommerce","header_author":"Extnify Labs LLC","header_description":"Conditional cart fees for WooCommerce \u2014 flat or percentage fees, gated by shipping zone, payment method or shipping method.","assets_banners_color":"ded5ff","last_updated":"2026-10-29 11:42:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/extnify.com\/platforms\/woocommerce","header_author_uri":"https:\/\/extnify.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":154,"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":"extnify","date":"2026-10-16 21:06:28","revision":3751131},"1.0.1":{"tag":"1.0.1","author":"extnify","date":"2026-10-29 11:42:01","revision":3772791}},"upgrade_notice":{"1.0.1":"<p>Refreshed the plugin listing and corrected the in-admin Documentation link.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3751128,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3751128,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3751128,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3751128,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3751128,"resolution":"1","location":"assets","locale":"","width":2519,"height":1044},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3751128,"resolution":"2","location":"assets","locale":"","width":2526,"height":1142},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3751128,"resolution":"3","location":"assets","locale":"","width":2526,"height":1142},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3751128,"resolution":"4","location":"assets","locale":"","width":3020,"height":1709},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3751128,"resolution":"5","location":"assets","locale":"","width":2506,"height":1842}},"screenshots":{"1":"Global settings and your list of fees.","2":"Creating a fee \u2014 general settings and its conditional rules (shipping zone, payment method, shipping method).","3":"Price Setting \u2014 enter the fee amount as a flat value or a percentage.","4":"Your fees shown on the cart and checkout totals.","5":"Built-in Help &amp; Support with the live debug log."}},"plugin_section":[],"plugin_tags":[3148,331,66387,3149,286],"plugin_category":[45],"plugin_contributors":[278991],"plugin_business_model":[],"class_list":["post-377812","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout","plugin_tags-discount","plugin_tags-fees","plugin_tags-surcharge","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-extnify","plugin_committers-extnify"],"banners":{"banner":"https:\/\/ps.w.org\/extnify-fee\/assets\/banner-772x250.png?rev=3751128","banner_2x":"https:\/\/ps.w.org\/extnify-fee\/assets\/banner-1544x500.png?rev=3751128","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/extnify-fee\/assets\/icon-128x128.png?rev=3751128","icon_2x":"https:\/\/ps.w.org\/extnify-fee\/assets\/icon-256x256.png?rev=3751128","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/extnify-fee\/assets\/screenshot-1.png?rev=3751128","caption":"Global settings and your list of fees."},{"src":"https:\/\/ps.w.org\/extnify-fee\/assets\/screenshot-2.png?rev=3751128","caption":"Creating a fee \u2014 general settings and its conditional rules (shipping zone, payment method, shipping method)."},{"src":"https:\/\/ps.w.org\/extnify-fee\/assets\/screenshot-3.png?rev=3751128","caption":"Price Setting \u2014 enter the fee amount as a flat value or a percentage."},{"src":"https:\/\/ps.w.org\/extnify-fee\/assets\/screenshot-4.png?rev=3751128","caption":"Your fees shown on the cart and checkout totals."},{"src":"https:\/\/ps.w.org\/extnify-fee\/assets\/screenshot-5.png?rev=3751128","caption":"Built-in Help &amp; Support with the live debug log."}],"raw_content":"<!--section=description-->\n<p><strong>Extnify Fee Rules<\/strong> lets you add your own fees \u2014 or discounts \u2014 to the WooCommerce cart and checkout, and applies them <strong>automatically<\/strong> when the cart matches. There's no code for the customer to type: a matching fee simply appears on the totals.<\/p>\n\n<p>Create as many fees as you need, set each one as a flat amount or a percentage of the subtotal, and limit when it applies by shipping zone, payment method and shipping method. A positive amount adds a fee; a negative amount shows as a discount. Everything is managed from one simple screen, and a built-in live log shows you exactly why a fee did or didn't apply.<\/p>\n\n<p><a href=\"https:\/\/extnify.com\/docs\/woocommerce\/extnify-fee-rules-woocommerce\">Read the documentation \u00bb<\/a> | <a href=\"https:\/\/wc-dev.extnify.com\/?auto_login=extnify-fee\">Try the live demo \u00bb<\/a><\/p>\n\n<p><strong>See it in action:<\/strong><\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=mI1q1SQ3plY<\/p>\n\n<h4>What you can do with Extnify Fee Rules<\/h4>\n\n<ul>\n<li>Charge a <strong>processing, handling or service fee<\/strong> on every order.<\/li>\n<li>Add a <strong>surcharge<\/strong> only for Cash on Delivery (or any chosen payment method).<\/li>\n<li>Apply a fee <strong>only in a certain shipping zone<\/strong> \u2014 or only with a certain shipping method.<\/li>\n<li>Give an <strong>automatic discount<\/strong> by entering a negative amount \u2014 no coupon code needed.<\/li>\n<li>Charge a <strong>flat amount<\/strong> ($5) or a <strong>percentage of the subtotal<\/strong> (10%).<\/li>\n<li>Run <strong>several fees at once<\/strong> \u2014 each one checks its own rules independently.<\/li>\n<\/ul>\n\n<h4>Add fees or discounts<\/h4>\n\n<p>One form creates both. Enter <code>5<\/code> for a $5 fee, or <code>-5<\/code> for a $5 discount. Enter <code>10%<\/code> for ten percent of the subtotal, or <code>-10%<\/code> to take ten percent off. A positive amount is added to the totals as a fee; a negative amount shows as a reduction. Every matching fee applies on its own \u2014 the customer doesn't choose anything.<\/p>\n\n<h4>Conditional rules<\/h4>\n\n<p>Each fee only applies when the cart matches the rules you set, combined with <strong>AND<\/strong>. Leave any rule at \"For any\" to ignore it. The free version gates fees by:<\/p>\n\n<ul>\n<li><strong>Shipping zone<\/strong> \u2014 the WooCommerce zone the destination falls in.<\/li>\n<li><strong>Payment method<\/strong> \u2014 the gateway the customer chose at checkout.<\/li>\n<li><strong>Shipping method<\/strong> \u2014 the shipping option chosen (if you also run Extnify Shipping Rules, its methods are listed here individually).<\/li>\n<\/ul>\n\n<h4>Flat or percentage amounts<\/h4>\n\n<p>Set a fixed value, or add a trailing <code>%<\/code> to make it a percentage of the cart subtotal. No currency sign needed \u2014 just the number. Tiered (range-based) amounts and extra percentage bases are available in Pro.<\/p>\n\n<h4>Tax handling<\/h4>\n\n<p>Pick a tax class per fee, or set it to <strong>None<\/strong> for a non-taxable fee. Fee tax follows your WooCommerce tax settings.<\/p>\n\n<h4>Easy management<\/h4>\n\n<p>Create, enable, disable, copy, delete and bulk-save all your fees from one screen, and set the order they're applied in. New fees appear in the sidebar instantly and are written to the database when you save.<\/p>\n\n<h4>Live debugging<\/h4>\n\n<p>When a fee doesn't show up and you're not sure why, turn on the built-in debug log. For each fee it reports whether its rules passed or failed, the resolved amount, and whether it was applied or skipped \u2014 so you can see exactly which rule filtered it out. The log is stored in your own database (never a file, never sent anywhere) and can be cleared with one click.<\/p>\n\n<h4>Works everywhere WooCommerce does<\/h4>\n\n<p>Fees are applied server-side through WooCommerce's standard fee system, so the totals are correct on both the <strong>classic<\/strong> and the <strong>block<\/strong> cart and checkout.<\/p>\n\n<h4>Built for speed and privacy<\/h4>\n\n<ul>\n<li><strong>No external requests and no tracking<\/strong> \u2014 every rule and calculation runs on your own store.<\/li>\n<li><strong>Lightweight<\/strong> \u2014 no bloat, no third-party libraries pulled in on your storefront.<\/li>\n<li><strong>Translation-ready<\/strong> \u2014 ships with a <code>.pot<\/code> file and a clean <code>extnify-fee<\/code> text domain.<\/li>\n<li><strong>Clean uninstall<\/strong> \u2014 deleting the plugin removes its table, option and log; nothing is left behind.<\/li>\n<\/ul>\n\n<h4>Need more? Extnify Fee Rules Pro<\/h4>\n\n<p><a href=\"https:\/\/extnify.com\/products\/extnify-fee-rules-pro\">Extnify Fee Rules Pro<\/a> adds:<\/p>\n\n<ul>\n<li>Product, category and brand targeting, plus date\/time, location, coupon and customer conditions.<\/li>\n<li>Tiered (range-based) amounts with min\/max caps.<\/li>\n<li>More percentage bases (grand total, weight, quantity and more).<\/li>\n<li>Fee grouping and tax-inclusive fees.<\/li>\n<li>CSV import\/export.<\/li>\n<\/ul>\n\n<p>Your free fees carry over automatically \u2014 Pro shares the same data.<\/p>\n\n<h4>More plugins by Extnify<\/h4>\n\n<ul>\n<li><strong>Extnify Shipping Rules<\/strong> \u2014 build your own conditional WooCommerce shipping methods and rates.<\/li>\n<li><strong>Extnify Offer Rules<\/strong> \u2014 let customers pick selectable discounts or add-ons at checkout.<\/li>\n<\/ul>\n\n<p>Extnify Fee Rules is built by Extnify, the team behind the X-FeePro extension for OpenCart.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code>, or install it from <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Extnify Fee Rules<\/strong> and set <strong>Module Status = Enabled<\/strong> in Global Settings.<\/li>\n<li>Click <strong>Add New Method<\/strong>, enter a fee amount, and (optionally) restrict it by shipping zone, payment method or shipping method. Save, and it appears on the cart and checkout totals automatically.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"my%20fee%20doesn%27t%20appear%20on%20the%20cart%20or%20checkout.\"><h3>My fee doesn't appear on the cart or checkout.<\/h3><\/dt>\n<dd><p>Make sure <strong>Module Status<\/strong> is Enabled in Global Settings and the fee's own <strong>Status<\/strong> is Enabled. Then open the live debug log (Global Settings \u2192 Help &amp; Support) and recalculate on the cart \u2014 it shows which rule failed, or whether the amount resolved to 0.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20discount%20instead%20of%20a%20fee%3F\"><h3>How do I add a discount instead of a fee?<\/h3><\/dt>\n<dd><p>Enter a negative amount, for example <code>-5<\/code> or <code>-10%<\/code>. WooCommerce shows it as a discount line on the totals.<\/p><\/dd>\n<dt id=\"can%20i%20charge%20a%20percentage%3F\"><h3>Can I charge a percentage?<\/h3><\/dt>\n<dd><p>Yes. Add a trailing <code>%<\/code> (for example <code>10%<\/code>, or <code>-10%<\/code> for a discount). It's calculated from the cart subtotal. Tiered range-based amounts are a Pro feature.<\/p><\/dd>\n<dt id=\"can%20i%20apply%20a%20fee%20only%20for%20cash%20on%20delivery%3F\"><h3>Can I apply a fee only for Cash on Delivery?<\/h3><\/dt>\n<dd><p>Yes. Set the fee amount, then set <strong>Payment Method<\/strong> on the Generic Rules tab to Cash on Delivery. The fee is evaluated once a payment method is chosen.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20woocommerce%20block%20checkout%3F\"><h3>Does it work with the WooCommerce block checkout?<\/h3><\/dt>\n<dd><p>Yes. Fees are applied server-side, so the totals are correct on both the classic and block cart and checkout.<\/p><\/dd>\n<dt id=\"does%20this%20send%20any%20data%20anywhere%3F\"><h3>Does this send any data anywhere?<\/h3><\/dt>\n<dd><p>No. Extnify Fee Rules makes no external requests and collects no data \u2014 everything runs on your store.<\/p><\/dd>\n<dt id=\"can%20i%20upgrade%20to%20pro%20without%20losing%20my%20settings%3F\"><h3>Can I upgrade to Pro without losing my settings?<\/h3><\/dt>\n<dd><p>Yes. Extnify Fee Rules and Extnify Fee Rules Pro share the same data, so your configured fees carry over automatically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Expanded the plugin listing (features, demo, FAQ).<\/li>\n<li>Corrected the in-admin Documentation link.<\/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 cart and checkout \u2014 flat or percentage, gated by zone, payment or shipping method.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=377812"}],"author":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/extnify"}],"wp:attachment":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377812"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377812"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377812"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377812"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377812"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}