WordPress plugin, version 2.1.0
Murls Discounts
Automatically apply a discount when a customer chooses a specific payment method at checkout. No coupon codes and no manual steps: the customer picks bank transfer, cash on delivery or any other gateway, and the discount appears on the order instantly.
The reason to use it: card and wallet payments carry processing fees, while bank transfer and cash cost you far less. This gives customers a reason to choose the cheaper method by rewarding them for it.
Requirements
- WordPress 6.3 or newer, tested up to 7.0
- WooCommerce 7.0 or newer, tested up to 10.9.4
- PHP 7.4 or newer
Install
- In WordPress, go to Plugins, then Add New.
- Search for Murls Discounts.
- Click Install Now, then Activate.
- Go to WooCommerce › Murls Discounts to open the settings.
You can also download the ZIP from the plugin page on WordPress.org and upload it under Plugins, then Add New, then Upload Plugin.

Set up your first discount
The settings page lists every payment gateway you have enabled in WooCommerce. Each one is a card with its own toggle switch and a badge showing its current discount at a glance, so you can see the whole setup without opening anything.
- Find the payment method you want to reward, for example bank transfer.
- Turn on its toggle. The card opens and the badge turns green.
- Choose a discount type: percentage or fixed amount.
- Enter the amount, for example 5 for five percent, or 500 for a flat 500 off.
- For a percentage, optionally set a maximum so the discount cannot grow past a figure you are comfortable with on large orders.
- Optionally set a custom label. This is the text the customer sees on the order line.
- Click Save changes.
The card shows a live checkout preview as you type, so you can see exactly what the customer will see before you save. Place one test order afterwards to confirm it behaves the way you expect.

Every section under Conditions is optional. Leave them alone and the discount simply always applies.

Label placeholders
Your custom label can include placeholders that fill in automatically:
- [percent]becomes the percentage, so "Save [percent]" shows as "Save 5%".
- [amount]becomes the formatted amount in your store currency, so "Save [amount]" shows the real figure.
If you leave the label empty, it shows as Payment Discount.
Conditions
Each gateway can have its own rules for when the discount applies.
Minimum order amount
Set a minimum the cart must reach before the discount applies. If you also use product scope below, you can choose whether the minimum is measured against the full cart or only the eligible products.
Maximum discount, for percentage rules
A percentage grows with the cart, so a 10% discount costs you far more on a large order than a small one. Set a maximum and the discount stops climbing once it reaches that figure. Ten percent off with a maximum of 5,000 gives a customer spending 20,000 the same 5,000 as a customer spending 100,000.
This applies to percentage discounts only, so the field is hidden when a rule is set to a fixed amount. A fixed amount is already a fixed cost, so there is nothing to cap.
Schedule
Turn on a schedule to run the discount between two dates and times, which is useful for a sale weekend. Either side can be left blank for an open-ended start or finish. Times follow your WordPress timezone setting.
Choosing which products qualify
By default the discount applies to the whole cart. Turn on product scope to narrow it down.
- Include mode: only products in the categories you pick are discounted.
- Exclude mode: everything is discounted except products in the categories you pick.
Parent categories cover their children automatically, so selecting a top-level category also covers everything nested inside it. You do not need to tick each subcategory.
Excluding single products
You can also exclude specific products by SKU. Type a SKU and press Enter to add it as a tag, and press backspace or click a tag to remove it. A SKU listed here is never discounted, even if its category qualifies, so it acts as an override.
Promotional message
Each gateway can show a short message in the cart and checkout totals area, so customers know the saving is available before they choose. Something like "Pay by bank transfer and save 5%" encourages the switch. There is a live preview as you type.
What the customer sees
When they pick the payment method, the discount appears in the totals with your label beside it. Nothing to enter, nothing to click.

Analytics
The top of the settings page shows a rolling 30-day summary: total discounts given, orders that used a discount, how many rules are active, and how many payment methods you have available.
Orders awaiting payment are included, which matters if you use bank transfer or cheque, since those orders sit on hold until you confirm the money has arrived. Figures also update as soon as an order comes in rather than waiting for a refresh.
If you used bank transfer on version 2.0.0 and saw zeroes here, that was a defect in that version. Updating to 2.1.0 fixes it, and your real figures appear.
Compatibility
- Works with both the classic checkout and the newer block checkout.
- Works with the classic cart, the block cart and the mini cart.
- Compatible with High-Performance Order Storage (HPOS).
- Works with any payment gateway registered in WooCommerce.
- Works with any theme. No page builder required.
Privacy
The plugin collects nothing and sends nothing anywhere. There are no external requests and no third-party services. Your discount rules and figures stay in your own WordPress database. Uninstalling removes the plugin's settings and cached figures, while historical order records are left intact on purpose.
For developers
The plugin exposes hooks for customisation:
- murls_discounts_calculated_amount filter: change the calculated discount before it is applied.
- murls_discounts_fee_area_notices filter: change the promotional notices before they render.
- murls_discounts_fee_applied action: fires after a discount is added to the cart.
The plugin is GPL v2 or later, and translation ready via the murls-discounts text domain.
Common questions
How quickly can I get a discount running?
Toggle on a payment method, enter an amount, and save. It is active straight away, with no cache to clear and nothing else to configure.
Does it work with the block checkout?
Yes. Classic and block checkout are both fully supported, as are the classic cart, block cart and mini cart.
Do customers need a coupon code?
No. The discount applies by itself the moment they select the payment method. There is nothing to type and nothing to remember.
Does it work alongside WooCommerce coupons?
Yes. A customer can use a normal coupon and still receive the payment discount. The two work independently.
How are taxes handled?
The discount follows whatever tax settings your store already uses. There is nothing extra to configure.
Does it work with subscriptions?
It applies correctly to the first checkout. Whether it carries over to automatic renewals depends on how your subscription plugin handles cart fees, so test a renewal if that matters to you.
Which payment gateways are supported?
Every gateway registered in WooCommerce appears on the settings page, including bank transfer, cash on delivery, cheque and any card or wallet gateway you have installed.
Is my data sent anywhere?
No. Nothing is sent to any external server. Everything stays in your own WordPress database.
Troubleshooting
The discount is not showing at checkout
- Check the gateway toggle is on and the amount is greater than zero.
- Check the cart meets any minimum order amount you set.
- If a schedule is on, check the current date falls inside it.
- If product scope is on, check the cart actually contains qualifying products, and that none are excluded by SKU.
- If you have several payment methods, the customer has to select one before the discount can appear.
The amount looks smaller than expected
- Check whether a maximum discount is set on that rule. Once the percentage reaches it, it stops growing.
- With product scope on, a percentage is worked out from the qualifying products only, not the whole cart.
- A discount can never exceed the qualifying total or reduce an order to zero, so it is trimmed if it would.
Need help?
Post in the plugin support forum on WordPress.org. That is the fastest route, and the answer stays public so it helps the next person with the same question. You can also email support@murls.co.
Open the support forum