Overview
Plusero - Extra Fees for WooCommerce lets you add a charge to an order when a condition you set is met. Some examples: a cash on delivery surcharge, a small order fee, a packaging charge on fragile goods or a card processing percentage. You set up the rule once, and from then on the plugin adds the fee whenever the rule matches.
You build each fee in a guided flow that asks five plain questions: where the fee applies, when it should be charged, how much it should be, what customers should see, and whether it reads correctly. Before you save, the builder reads your answers back to you as a sentence, so you can check what you built.
Fees are added the standard WooCommerce way. They show in the cart, the checkout, the order, the confirmation email and PDF invoices. They work on the classic cart and checkout and on the block cart and checkout. The free plugin is complete on its own. You can create as many fees as you like, and nothing is locked or time limited.
Requirements
- WordPress 6.4 or later
- PHP 7.4 or later
- WooCommerce 8.0 or later (required, must be installed and active)
- Tested with WordPress 7.1.3 and WooCommerce 11.2.1
- Works with the classic and the block cart and checkout, and with High Performance Order Storage
Installation
The plugin is free on WordPress.org. It needs WooCommerce, so install and activate WooCommerce 8.0 or newer first.
In your WordPress admin, go to Plugins > Add New.
Search for Plusero Extra Fees.
Click Install Now on Plusero - Extra Fees for WooCommerce.
Click Activate.
Open Plusero Fees in the admin menu. The fee list is empty until you build your first fee.
Quick start
- Open the fee builder
Go to Plusero Fees > Add Fee, or click Build your first fee on the empty fee list.
- Choose where the fee is charged
On step 1, Where, pick Product, Cart, Checkout, Shipping or Payment. For a cash on delivery surcharge, pick Payment. Click Next.
- Add a condition
On step 2, When, click Add a condition. For a cash on delivery fee, leave the type as Payment method, keep is and choose your cash on delivery gateway. If you add no conditions, the fee is charged on every order.
- Set the amount
On step 3, Amount, choose Fixed amount and enter the charge, or choose Percentage and enter a figure such as
2.5. Click Next. - Write what customers see and save
On step 4, Wording, enter the Fee label, for example Cash on delivery charge. On step 5, Review, read the summary, leave Switch this fee on when I save it ticked and click Save fee.
- Test it
Add a product to the cart, go to checkout and select cash on delivery. The fee shows in the totals. It goes away when you switch to another payment method.
#The fee list (All Fees)
Plusero Fees > All Fees lists every fee you have built. Before you build any, the screen shows No fees yet and a Build your first fee button.
Each row shows:
- Fee: the internal name. When the customer-facing label is different, it shows below as Customers see: ....
- Where: the location the fee is charged at (Product, Cart, Checkout, Shipping or Payment).
- Amount: the fixed amount or the percentage, with the method name underneath.
- Conditions: how many conditions the fee has, or Always charged if it has none.
- Order: the order number. Lower numbers are worked out and shown first.
- Status: Active or Inactive.
Managing fees
- Click the Active or Inactive button in the Status column to switch a fee on or off without deleting it.
- Hover a row and click Edit to open the fee in the builder.
- Click Duplicate to copy a fee. The copy is saved switched off so you can edit it first.
- Click Delete to remove a fee. You are asked to confirm, because this cannot be undone.
Finding a fee
- All, Active and Inactive above the list show how many fees are in each state. Click one to show only those fees.
- To show only the fees charged in one place, pick it in the Filter by where the fee is charged dropdown and click Filter.
- Show every fee clears both filters.
- Type in the Filter fees by name box to narrow the list as you type.
#Add a fee, step 1: Where
Go to Plusero Fees > Add Fee to open the builder. Across the top you see the five steps: Where, When, Amount, Wording and Review. The So far panel on the right sums up your answers as you go. Use Next and Back to move between steps. You can also click any earlier step to go back to it.
Step 1 asks Where should this fee be charged? Your answer decides which conditions you can use on step 2. Every fee is added to the cart the same way, so the location is about what the fee reacts to, not about which page it shows on.
| Location | What it is for | Conditions offered |
|---|---|---|
| Product | Charged when a matching product is in the cart. | Product, Product category, Total quantity, Customer role |
| Cart | Charged on the cart as a whole, such as a small order fee. | Cart subtotal, Total quantity, Product, Product category, Customer role |
| Checkout | Charged based on who the customer is and where they are. | Billing country, Customer role, Cart subtotal, Total quantity |
| Shipping | Charged based on the shipping method the customer picked. | Shipping method, Cart subtotal, Billing country, Customer role |
| Payment | Charged based on the payment gateway the customer picked. | Payment method, Cart subtotal, Total quantity, Customer role |
Pick a card and click Next. If you change the location later, any conditions you already added are cleared, because the conditions on offer change with the location.
#Add a fee, step 2: When (conditions)
Step 2 asks When should it be charged? Add conditions, or leave this empty to charge the fee on every order.
- Choose All of these match (every condition must be true) or Any of these match (one is enough) at the top of the list.
- Click Add a condition.
- Pick the condition type, then a comparison, then a value. A short help line under the row explains the condition.
- Repeat for more conditions. Click the × button to remove one.
The builder writes your conditions back as a sentence under the list, for example Product category is one of Apparel.
Condition types
| Condition | Compares | Choices |
|---|---|---|
| Cart subtotal | The cart subtotal before tax, shipping and other fees. | is more than, is at least, is less than, is at most, is, is not. You enter a number. |
| Total quantity | How many items are in the cart in total, counting quantities. | Same comparisons as Cart subtotal. You enter a number. |
| Product | Matches when one of the chosen products or variations is in the cart. | is one of, is none of. Search by product name; variations are listed too. |
| Product category | Matches when a cart item belongs to one of the chosen categories. | is one of, is none of. Search by category name. |
| Customer role | The role of the logged in customer. Visitors who are not logged in count as Guest. | is, is not. Choose a role or Guest, not logged in. |
| Billing country | The country on the billing address at checkout. | is, is not. Choose a country. |
| Payment method | The gateway the customer selected. The fee updates as soon as they switch. | is, is not. Gateways you have switched off are marked (disabled). |
| Shipping method | The shipping method the customer selected. | is, is not. Choose Any plus a method type (for example any flat rate) to match every method of that type, or a single method in one zone, listed as Zone: Method title (Method type). |
Example
With All of these match, Cart subtotal is less than 500 and Billing country is India charges a small order fee only on Indian orders under 500.
To charge different amounts at different order sizes, build one fee per band and give each a Cart subtotal condition for its range, for example is at most 500 on the first and is more than 500 on the second.
#Add a fee, step 3: Amount
Step 3 asks How much should it be? Pick how the amount is worked out, then fill in the figures.
- Fixed amount: a flat charge, the same on every order. Enter it in Amount, in your shop currency.
- Percentage: a share of the cart, such as 2 percent of the subtotal. Enter the figure in Percentage (2.5 means two and a half percent), then choose what it is Worked out from.
What a product fee is worked out from
For a Product fee, the percentage comes from the cart lines the fee matches, not from the whole basket, and the Worked out from choices change their wording to show this. For example, a 10 percent product fee limited to one product, on a basket with one of that product at 10 and five of another at 9, charges 1, not 5.50.
- Only rules that name products (Product and Product category) decide which lines count. Rules about the cart total or the customer only decide whether the fee applies at all.
- A product fee with no product rule covers every line.
- If no line in the cart matches, the fee charges nothing. It never falls back to the whole basket.
Limits, rounding and tax
These apply to both methods:
- Smallest fee and Largest fee keep the result inside a range. Zero means no limit. For example, two percent with smallest 20 and largest 200 charges 20 on a 500 order and 200 on a 20000 order.
- Rounding tidies up the result before it reaches the cart.
- Tick Charge tax on this fee if the fee is taxable, then pick the Tax class. Leave it unticked and the fee is added with no tax.
Each field is described in the settings reference below.
#Add a fee, step 4: Wording
Step 4 asks What should customers see? This is the line that appears in the cart, the checkout and the order email.
- Fee label: the name on the fee line. Write it the way you would say it to a customer. Cash on delivery charge reads better than COD fee rule 3.
- Description (optional): a short line shown under the fee amount in the cart and checkout totals. Use it to say why the fee exists.
- Tooltip (optional): text shown when the customer hovers or focuses the small marker next to the fee.
- Internal name (optional): what the fee is called in your fee list. Customers never see it. If you leave it empty, the label is used.
- Order: lower numbers are worked out and shown first. Use it when several fees should appear in a set order.
You must fill in at least the Fee label or the Internal name before you can go on.
Fee labels, descriptions and tooltips are registered with WPML and Polylang when you save a fee, so you can translate them with the rest of your shop.
#Add a fee, step 5: Review and save
Step 5 asks Does this look right? It reads the fee back in plain words: Where, When, Amount, Customers see, and also Tax and Tooltip when you set them.
- Check each line. Click an earlier step at the top to change an answer.
- Leave Switch this fee on when I save it ticked to make the fee live straight away. Untick it to save the fee switched off, as a draft. A draft charges nothing until you switch it on here or in the fee list.
- Click Save fee.
You return to the fee list with one of these notices:
- Fee saved. It is switched on and applies to matching carts.
- Fee saved. It is switched off, so it charges nothing until you switch it on.
To test a fee, add a matching product to the cart and open the cart page. The fee shows in the totals under the subtotal.
#Editing a fee
To change a fee, click its name or Edit in the fee list. The same builder opens with the heading Edit fee and your saved answers filled in. The So far panel shows the current setup, and saved product and category rules show their names.
When you edit a fee, the Switch this fee on when I save it box on the last step starts at the fee's current status, so saving a paused fee does not make it live by mistake.
To build a similar fee quickly, use Duplicate in the fee list and edit the copy.
#Settings
Plusero Fees > Settings holds the options that apply to every fee in the shop.
- Under When several fees apply, choose how more than one matching fee is shown in the cart totals.
- Under On the storefront, choose whether tooltips and descriptions show, and whether fees that work out to zero are hidden.
- Under Uninstalling, leave Remove all fees and settings when the plugin is deleted off unless you are removing the plugin for good.
- Click Save settings. You see Settings saved.
#Built-in documentation
Plusero Fees > Documentation explains every option inside your dashboard, so you do not have to leave your site to look something up. Use the links at the top to jump to a topic:
- Getting started: building your first fee, checking it works and finding a fee in a long list.
- Where a fee is charged: each location and the conditions it offers.
- Conditions: all match or any match, and what each condition compares.
- How the amount is worked out: methods, what a percentage is taken from, limits, rounding and tax.
- What the customer sees: label, description, tooltip, internal name and order.
- Settings and Questions that come up.
- For developers: the filters for adding your own conditions and calculations.
#Fees on orders
When a customer places an order, each fee that applied is saved on the order as its own fee line, with the label the customer saw. You see these lines in WooCommerce > Orders when you open an order, and the Fees total includes them. The same lines appear in the confirmation email and on PDF invoices with no extra setup.
Each fee gets its own line, so two fees with the same label are both charged.
Settings reference
Plusero Fees > All Fees
Filters that narrow the fee list. They only change what you see on this screen.
#Filter by where the fee is charged
Shows only the fees charged in one place. Click Filter to apply it.
When to change it
Use it when you have many fees and want to see, for example, only your payment fees.
#Filter fees
Narrows the list as you type, showing only rows that contain your text. The box shows the hint Filter fees by name.
Plusero Fees > Add Fee
The fields of the five-step fee builder. The same fields appear when you edit a fee. Conditions on step 2 are explained in the Add a fee, step 2: When section above.
#Product Charged when a matching product is in the cart.
Step 1, Where should this fee be charged? Decides which conditions you can use on step 2. Changing it clears any conditions you already added.
When to change it
Pick the location that matches what the fee should react to: the products, the cart, the customer, the shipping method or the payment gateway.
#How much should it be?
Step 3. Chooses how the amount is worked out. You must pick one before you can go on.
When to change it
Use Fixed amount for a flat charge and Percentage for a charge that grows with the order, such as card processing.
#Amount
Shown when How much should it be? is set to Fixed amount.
The flat fee, in your shop currency.
#Percentage
Shown when How much should it be? is set to Percentage.
The percentage to charge. Enter 2.5 for two and a half percent.
#Worked out from
Shown when How much should it be? is set to Percentage.
Which cart figure the percentage is taken from. For a Product fee the wording changes, because the figure covers only the products the fee matches, not the whole basket.
When to change it
Pick the version including tax if your fee should follow the price the customer pays with tax.
#Smallest fee
The fee is never less than this. Zero means no lower limit.
When to change it
Useful on percentage fees, so a small order still pays a sensible minimum.
#Largest fee
The fee never goes above this. Zero means no upper limit.
When to change it
Useful on percentage fees, where a large order would otherwise produce a very large fee.
#Rounding
How the result is tidied up before it reaches the cart.
When to change it
Two decimal places suits most shops. Pick another choice if your currency or till works differently.
#Charge tax on this fee
Makes the fee taxable. WooCommerce then treats it like any other taxable line and includes it in your tax reports. Ticking it shows Tax class.
When to change it
Tick it when the fee is taxable where you sell. Leave it clear to add the fee with no tax.
#Tax class
Shown when Charge tax on this fee is ticked.
The tax class the fee uses. The list holds Standard followed by the other tax classes set up in your shop.
When to change it
Keep Standard unless the fee should use a reduced or other special rate.
#Fee label
Step 4. The name on the fee line in the cart, the checkout, the order and the email. You need a label or an internal name to save.
When to change it
Write it the way you would say it to a customer, for example Cash on delivery charge.
#Description
A short line shown under the fee amount in the cart and checkout totals. Leave it empty and nothing extra is shown.
When to change it
Use it to say why the fee exists.
#Tooltip
Shown when the customer hovers over or focuses the small marker next to the fee. Fees without tooltip text show no marker.
When to change it
Use it for detail that would clutter the label.
#Internal name
What this fee is called in your fee list. Customers never see it. If you leave it empty, the label is used.
When to change it
Give fees with similar labels names you can tell apart, such as COD fee, orders under 500.
#Order
Lower numbers are worked out and shown first. Accepts 1 to 9999.
When to change it
Change it when you have several fees and want them in a set order.
#Switch this fee on when I save it
Step 5. Ticked, the fee is saved active and applies to matching carts. Unticked, it is saved switched off as a draft and charges nothing until you switch it on. When you edit a fee, the box starts at the fee's current status.
When to change it
Untick it to prepare a fee now and switch it on later from the fee list.
Plusero Fees > Settings
These settings apply to every fee in the shop.
#When several fees apply
How more than one matching fee is shown in the cart totals.
#Show tooltips
Adds a marker next to any fee that has tooltip text. Fees with no tooltip never show one.
When to change it
Turn it off to hide all tooltip markers across the shop without deleting your tooltip texts.
#Show descriptions
Shows a fee description as a small line under the fee amount in the cart and checkout totals. Fees with no description never show one.
When to change it
Turn it off to hide all fee descriptions across the shop.
#Hide fees that come to zero
A fee that works out to nothing is left off the totals rather than shown as a blank line.
When to change it
Turn it off if you want a zero fee shown, for example to tell customers that delivery handling is free on this order.
#Remove all fees and settings when the plugin is deleted
Off by default, so your fees survive a deactivate, a reactivate or an update. When on, deleting the plugin removes all its fees and settings.
When to change it
Turn it on only when you are removing the plugin for good and want nothing left behind.
On your site
Shoppers see each fee that applies as a line in the cart and checkout totals, under the subtotal, with the Fee label you wrote. You do not need to add a shortcode or block.
- If the fee has a Description and Show descriptions is on, a short line in smaller text appears under the fee amount.
- If the fee has a Tooltip and Show tooltips is on, a small marker appears next to the fee. The text shows when the shopper hovers over the marker or moves focus to it.
- Payment fees and shipping fees update as soon as the shopper picks another payment or shipping method. A cash on delivery surcharge appears when they choose cash on delivery and goes away when they switch.
- After the order is placed, the same fee lines appear on the order, in the confirmation email and on PDF invoices.
All of this works the same on the classic cart and checkout and on the block cart and checkout.
Frequently asked questions
Can I charge a fee only for cash on delivery?
Yes. Add a fee, choose Payment as the location, add a Payment method condition set to your cash on delivery gateway, and set the amount. The fee appears as soon as the customer picks that gateway.
Do fees work with the block cart and checkout?
Yes. Fees are added through the standard WooCommerce cart fee hook, which the block cart, the block checkout and the Store API all read from. Descriptions and tooltips show under the fee in the block totals too, and a payment fee follows the customer's choice straight away.
Does the fee include tax?
Only if you tick Charge tax on this fee on the Amount step. Then you can also choose the Tax class. WooCommerce treats the fee like any other taxable line and includes it in your tax reports.
Where does the fee description appear?
Under the fee amount in the cart and checkout totals, as a short line in smaller text. Fees with no description show nothing extra. To turn descriptions off for the whole shop, untick Show descriptions under Plusero Fees > Settings.
What is a Product fee's percentage taken from?
The products it matches, not the whole basket. A 10 percent product fee limited to one product charges 10 percent of that product's line, whatever else is in the cart. If no line in the cart matches, the fee charges nothing.
Can I charge different amounts at different order sizes?
Yes. Build one fee per band and give each a Cart subtotal condition for its range, for example is at most 500 on one and is more than 500 on the other. Give them different Order numbers so they read in sequence in your fee list.
How many fees can I create?
As many as you need. The free plugin has no limit of any kind on the number of fees, and nothing in it is locked or time limited.
Will deleting the plugin remove my fees?
Only if you ask it to. Remove all fees and settings when the plugin is deleted under Plusero Fees > Settings is off by default. Your fees survive a deactivate, a reactivate and an update.
Can I translate fee labels?
Yes. When you save a fee, its label, description and tooltip are registered with WPML and Polylang, so you can translate them with the rest of your shop.
Does the plugin send data anywhere?
No. It makes no remote requests and connects to no external service. Everything it stores stays in your own database.
What happens if I install the Pro edition?
While Pro is active, this free plugin stays idle, and a note on the Plugins screen says you can deactivate it. Pro includes every free feature, and none of your fees or settings are lost.
Troubleshooting
- "Plusero Extra Fees requires WooCommerce to be installed and active."
The plugin only runs when WooCommerce is active. Install and activate WooCommerce 8.0 or newer under Plugins, then reload the admin.
- "Plusero Extra Fees requires WooCommerce 8.0 or newer. This site runs WooCommerce ..."
Your WooCommerce version is too old. Update WooCommerce to 8.0 or newer under Plugins or Dashboard > Updates. A similar notice appears when the server runs a PHP version older than 7.4. In that case, ask your host to upgrade PHP.
- My fee is not showing in the cart
Check three things in order:
- Is the fee Active in the fee list? A fee saved with Switch this fee on when I save it unticked charges nothing.
- Does every condition match the cart you are testing with? With All of these match, every condition has to be true.
- Does the amount come to more than zero? Fees that work out to nothing are hidden while Hide fees that come to zero is on. A Product fee whose product rules match no line in the cart also charges nothing.
- The payment fee does not change when I switch payment method
The totals normally refresh when the payment method changes. If they do not, another plugin or the theme is stopping the checkout refresh. Test with a default theme and only WooCommerce active, then turn your other plugins back on one at a time to find the conflict.
- "Choose where this fee should be charged." or "Choose how the amount is worked out."
The builder stops you from moving on until the step is answered. Pick a location card on step 1, or pick Fixed amount or Percentage on step 3, then click Next.
- "Give the fee a label your customers will see."
A fee needs a name. On step 4, Wording, fill in the Fee label (or at least the Internal name), then continue.
- "Your session has expired. Reload the page and try again."
The page was open too long, or you were logged out. Reload the page, log in again if asked, and repeat the action. If you were in the middle of building a fee, you may need to enter your answers again.
- "You do not have permission to manage fees."
Only users who can manage WooCommerce (for example administrators and shop managers) can use the Plusero Fees screens. Log in with such an account, or ask an administrator to change your role.
- "Plusero Extra Fees (free) is idle because the Pro edition is active."
This is expected when the Pro edition is active. Pro already includes every free feature, so you can deactivate the free edition under Plugins. None of your fees or settings are lost.
- A new fee is saved but says "Fee saved. It is switched off, so it charges nothing until you switch it on."
Switch this fee on when I save it was unticked on the last step. Click Inactive in the fee's Status column to switch it on, or edit the fee and tick the box before saving. A duplicated fee is also saved switched off.
Free vs Pro
Plusero Free vs Pro
The free plugin charges unlimited conditional fees on products, carts, checkout, shipping and payment, as fixed amounts or percentages with tax and limits. Pro adds optional, tiered and scheduled fees, more conditions, condition sets, ready made fees and reports.
16 of 31 features in Free15 more with Pro
| Feature | Free | Pro |
|---|---|---|
| Building fees | ||
| Charge fees on product, cart, checkout, shipping or payment | Included | Included |
| Five step fee builder with plain summary | Included | Included |
| Create as many fees as you need | Included | Included |
| Duplicate, pause and filter fees in the list | Included | Included |
| Conditions | ||
| Conditions on subtotal, quantity, product, category and role | Included | Included |
| Payment method, shipping method and billing country conditions | Included | Included |
| All match or any match conditions | Included | Included |
| More conditions: weight, country, coupon, weekday Free offers billing country but no cart weight, coupon, shipping country or weekday conditions. | Limited | Included |
| Address conditions by state, city, postcode or zone | Not included | Included |
| Several condition groups on one fee | Not included | Included |
| Amounts and tax | ||
| Fixed amount and percentage fees | Included | Included |
| Smallest fee, largest fee and rounding | Included | Included |
| Taxable fees with a chosen tax class | Included | Included |
| Tiered, per item, per weight and percent plus fixed fees | Not included | Included |
| Fees that reduce what the customer pays | Not included | Included |
| Ceiling on total fees per order | Not included | Included |
| Fee amounts per currency with currency switchers | Not included | Included |
| Fees on WooCommerce Subscriptions renewals | Not included | Included |
| Storefront and orders | ||
| Fee label, description and tooltip in totals | Included | Included |
| Choose how several matching fees are shown | Included | Included |
| Works on classic and block cart and checkout | Included | Included |
| Fees saved on orders and in order emails | Included | Included |
| Translate fee labels with WPML and Polylang | Included | Included |
| Optional fees customers can tick, like gift wrapping | Not included | Included |
| Price breakdown with fees on product pages | Not included | Included |
| Fee shown next to each payment method | Not included | Included |
| Scheduling and reuse | ||
| Schedule fees by date, weekday and hour | Not included | Included |
| Reusable condition sets and ready made fees | Not included | Included |
| Reports and tools | ||
| Fee reports, change history, import and export | Not included | Included |
| Debug panel showing why each fee applied | Not included | Included |
| REST API for headless storefronts | Not included | Included |
Upgrade
Upgrade to Plusero - Extra Fees for WooCommerce
The free plugin is complete on its own. If you need more control over your fees, the Pro edition, Plusero - Extra Fees for WooCommerce, includes everything in this plugin and adds:
- Optional fees customers can tick, like gift wrapping
- Tiered, per item, per weight and percent plus fixed fees
- More conditions: weight, country, coupon, weekday
- Schedule fees by date, weekday and hour
- Reusable condition sets and ready made fees
- Fee reports, change history, import and export