
A WooCommerce auto apply coupon adds a discount to your customer's cart without them needing to type or paste a coupon code.
It works the way a supermarket loyalty card works. The cashier scans it, the discount is applied to the total, and nobody types anything or holds up the queue.
The difference shows up in the money. A $45 cart that qualifies for 10% off at $50 has a reason to add one more item. A $45 cart with an empty coupon field has a reason to open a new tab.
That second cart is the one worth fixing.
WooCommerce ships the coupon field but not the automation behind it. You can create discount codes under Marketing ⇒ Coupons, and there is no setting anywhere that applies them on their own.
There are five ways to close that gap, and we will walk through all of them: at checkout, inside the cart, a shareable link, in a cart recovery email, and a PHP snippet.
Table of Contents
- 1 Can WooCommerce Apply a Coupon Automatically?
- 2 Before You Start: Create the Coupon
- 3 Method 1: Auto Apply Coupon on WooCommerce Checkout Page
- 4 Method 2: Reward a Spend Threshold Inside the Cart
- 5 Method 3: Share a Link/URL That Applies the Discount
- 6 Method 4: Attach the Discount to an Automated Cart Recovery Email
- 7 Method 5: Auto Apply a Coupon Without a Plugin
- 8 5 Best Practices to Get More Conversions With Automatic Discounts
- 9 WooCommerce Auto Apply Coupon: Frequently Asked Questions (FAQs)
- 10 Start Converting More Shoppers With WooCommerce Auto Apply Coupons!
Can WooCommerce Apply a Coupon Automatically?
No, there is no native setting for it.
To discount a cart without customer input, you need one of three mechanisms: a plugin that adds a toggle to the coupon screen, a PHP snippet hooked into cart calculation, or a URL parameter that carries the code into the cart session.
Here is how the five routes compare.
| Method | Best for | Coding required? | Conditions it can handle |
| At the checkout | Stores replacing the default WooCommerce checkout | No | Coupon restrictions, applied at specific or store-wide checkout |
| In the cart on a spend threshold | Stores using a side or popup cart to push order value | No | Cart total thresholds, rewarded as a discount, free shipping or a free product |
| Shareable link | Email campaigns, ads, or social promotions | No | Whatever the coupon itself allows |
| Inside an automated email | Recovering abandoned carts and winning back lapsed buyers | No | Whatever the coupon allows, triggered by an automation event |
| PHP snippet | Custom rules the native restrictions can't reach | Yes | Anything you can express in code, including order history and user roles |
You do not need all six. Most stores run one or two and never touch the rest, so pick by where your discount needs to appear rather than working down the list.
Before You Start: Create the Coupon
Every method below applies an existing coupon. None of them create one, so build it first.
Creating a discount coupon
Go to Marketing ⇒ Coupons and click on 'Add coupon'.

Name your coupon or generate one from the button.
In the coupon data section, on the General tab, configure:
- Discount type
- Coupon amount
- Allow free shipping
- Coupon expiry date

Setting the coupon usage restrictions and limits
You can find additional settings on the usage restriction and usage limits tab. For example, set a minimum spend.
Adding a minimum spending limit encourages more sales when it comes to applying coupons.

If you want to restrict auto-apply coupons to orders that include specific products or products from specific categories, do so in the Usage Restrictions tab.

On the Usage Limits tab, set the number of times a customer can use a coupon and the number of times a coupon can be used.
Setting usage restrictions can be highly beneficial if you want to run campaigns like discounts for only the first, let's say, 100 users.

After setting up, click on 'Publish' to save the coupon code and make it usable.
Now that you have generated the coupon code, let’s look at how to auto-apply a coupon in WooCommerce based on the cart total in the next sections.
👉 For a full breakdown of discount types, restrictions, and usage limits, see our guide to WooCommerce coupons.
Method 1: Auto Apply Coupon on WooCommerce Checkout Page

If you are already replacing the default WooCommerce checkout, the rule belongs on the checkout page itself.
This is the route for stores running dedicated funnels or one-page checkouts, where the goal is to remove the coupon field rather than fill it in.
FunnelKit Funnel Builder lets you auto-apply coupons and hide the coupon field on the WooCommerce checkout page.
Here, we will explain how you can offer auto-applied coupons to everyone, both without any conditions and with conditions such as minimum order requirements and use restrictions.
Before we move to the primary process, you need to install and activate FunnelKit Funnel Builder.
Step 1: Create a store checkout and import a template
We will create a custom or global store checkout to replace the default WooCommerce checkout page.
To create a new store checkout, navigate to FunnelKit ⇒ Store Checkout and click on 'Create Store Checkout'.

You should now see a new window with all the prebuilt templates from FunnelKit. Choose your favorite page builder and hover over the template you like.
To preview the template pages, hover and click on the 'Preview' button.
Here, we are going with the Elementor page builder and the “Minimalist” template. This template has three steps: checkout, one-click upsell, and thank you page.

Before you can import this template, decide whether you want a single-page checkout or multi-page checkout.
Here, we're going with the simple single-page layout.
To import the template you choose, click on 'Import This Funnel', provide a name and click on Done.

This will add the newly created store checkout.
Step 2: Customize the checkout page
Click on the checkout page to start customizing it.

On the Design tab, you can customize the design of your checkout page template.
For more details, check our post on customizing the WooCommerce checkout page.
Scroll down to the Checkout Form Fields. Here, you can add custom fields, edit, rearrange, or even remove unnecessary checkout form fields.
For more details, refer to our WooCommerce Checkout Field Editor post.

Step 3: Enable the auto-apply coupon option
Move to the Optimizations tab. Under Auto Apply Coupons, click on 'Yes' to enable and add the coupon code.
The coupon's own restrictions still govern when it fires. For example, if you've set the minimum spend to $75, a $76 cart gets 10% off automatically, with no extra configuration here.
Once you have the coupon ready, enter the coupon code. You can deactivate the coupon field so that users don’t have to enter a coupon code manually.

After that, click on “Save” to update the options.
Along with auto-apply coupons, you can also optimize your checkout page with express payment options (Google Pay and Apple Pay), enable Google address auto-complete, and an enhanced phone field.
Step 4: Enable the checkout and test it out
Activate the store checkout by clicking on the 'Enable Store Checkout' button.

This will ensure your store's checkout page with the auto-apply coupon feature is live.
To test the process, add some products to the cart and head to the checkout page.
Based on the coupon you set, it will be automatically applied when the conditions are met.
Here, we set a coupon code that requires a total of $150 for an order, and the cart items must be from the clothing category.

As with the checkout page, you can customize your one-click upsell and thank-you pages as well.
This was all about how to offer WooCommerce auto-apply coupons on the checkout page with different conditions.
Method 2: Reward a Spend Threshold Inside the Cart
Applying the discount at checkout is late. By then the customer has stopped shopping and started paying, so a threshold offer has nothing left to influence.
Inside the cart, a $45 basket is still editable. Show the customer they are $5 from 10% off while they can still add something, and the offer does the selling.
FunnelKit Cart handles this with milestone rewards in its slide-out cart. You set a threshold, pick what the customer earns when they clear it, and the cart shows a progress bar with the gap spelled out.
Its in-cart recommendations offer relevant products, while the reward system shows users how much more to add and lets them shop directly from the cart.
Here's a quick preview:

Install and activate FunnelKit Cart on your website.
The premium version is included in FunnelKit Plus and above plans. Once activated, you're all set!
Step 1: Enable the slide-out cart
Go to FunnelKit ⇒ Cart and turn on the 'Enable Cart' toggle button.

After enabling the slide-in cart, you can choose the cart icon display and positioning inside your WooCommerce store.
Watch this video below:

Step 2: Add a reward milestone
Open the Rewards section and click on 'Create Reward'.

Now, to set up a cart threshold-based discount, customize the following options:
- Type: Create three types of discounts: Free shipping, discount, and free gift. Let's choose Discount.
- Icon Title: Provide the discount title that appears when someone hovers over the icon.
- Message: Enter the message that will be shown on the top shopping bar. You can use the merge tag {{remaining_amount}} to display the remaining amount required to receive the reward. For example, we have added the message "Add items worth {{remaining_amount}} more to get $30 OFF" as our discount is meant to provide $30 OFF on orders worth $150 or above.
- Amount to Get Reward: Enter the minimum amount one must spend to receive the reward. This is important for calculating the message that will appear in the cart. In our case, it’s $150.
- Coupon: Enter the coupon code you want to automatically apply to the mini cart.
After setting up all the options, click on Save to update.

For more details on setting up other types of rewards, check our post that guides you step by step.
Step 3: Test the auto-apply discount
To test whether the discount reward applies under the conditions you applied, go to the storefront and add the product to your mini cart.
With our condition and coupon code, users will enjoy $30 OFF orders of $150 or more.

This is how easily you can set auto-apply coupons in a WooCommerce side cart.
Method 3: Share a Link/URL That Applies the Discount
A link is the right tool for email, ads, and social. The customer clicks, lands on your store, and the discount is already sitting in the cart with nothing to remember.
CouponFollow research found 80% of shoppers sign up for brand emails specifically to get discounts. Those subscribers are already primed.
A link that applies the offer on click converts better than a code they have to carry two screens forward.
In FunnelKit Funnel Builder, the generator sits on the same Optimizations tab from Method 1.
Open 'Generate URL to Populate Checkout', then enter the following values:
- Product: Add the product ID you want to add to checkout when this URL is hit. If you want to add multiple products, enter comma-separated product IDs.
- Quantity: Enter the item quantity here. Again, for multiple products, add the quantity using a comma. Make sure the quantity and product ID sequence match.
- Coupons: Add the coupon that will be applied automatically. Here, you can add multiple coupons as well.
- Email Service: Enter the email service you prefer in case you want to share this coupon URL via email.
- Checkout URL: Here, you will find the final auto-apply coupon URL for specific products and their quantity

The result sends a shopper straight to checkout with the products and the discount already in place:

Follow these things before you send this link anywhere:
- Exclude the parameter from your page cache. Otherwise the first visitor's discount gets cached and served to everyone who follows.
- Check what happens on an empty cart. If your link points at the cart or checkout without an add-to-cart parameter, the coupon has nothing to discount yet. Point campaign links at a product or include the product in the URL.
- Watch coupon restrictions. With a $75 minimum on save10, a link that loads one $30 product applies nothing. Either send the link to a qualifying bundle or drop the minimum on the campaign coupon.
If you would rather not depend on a plugin for this, the snippet in Method 5 builds the same link behavior.
Method 4: Attach the Discount to an Automated Cart Recovery Email
Every method so far waits for the customer to show up. This one goes after them.
A cart abandonment sequence is the highest-leverage place to put a discount, because the customer already chose the products and stopped at the price.
Timing decides whether it works because the first email inside an hour recovers meaningfully more than one sent the next day.
FunnelKit Automations tracks abandoned carts, then builds the recovery link with the coupon attached, so the link in the email is the link that works.
Let’s see how you can do this using our step-by-step guide.
Make sure you've installed and activated FunnelKit Automations on your website.
Step 1: Enable cart tracking
Firstly, enable abandoned cart tracking. To do so, go to FunnelKit Automations ⇒ Settings.
Check the “Enable Cart Tracking” option on the Cart tab. This will activate the cart tracking.

You can also set other options, such as Wait Period, Cool Off Period, and Lost Cart (days). Make sure to save your changes.
Step 2: Build the recovery automation
Navigate to FunnelKit Automations ⇒ Automations and then click on ‘Create New Automation’.

Now, you can see all the pre-built templates by FunnelKit Automations.
Here, we will choose the Abandoned cart reminder template.

To import this prebuilt template, click on 'Import Recipe', provide a name and click on Create.

This will add automation that sends three reminder emails to users to encourage them to return and complete the order.

Please note that you can use both static coupons and dynamic coupons. If you want to use a static coupon, skip the next step.
Step 3: Create a dynamic coupon (optional)
We need to create a coupon before we can add an auto-apply coupon URL to the email body. To do that, we need to add a new step that will create a dynamic coupon.
We will send the coupon code URL with the first email, so we need to add an event before that. After the first delay, click on the + icon and choose Action.

Move to the WooCommerce tab, choose Create Coupon, and click on Done.

Now provide the coupon title, discount type, amount, coupon code prefix, etc., and click on ‘Save’ to save the discount coupon code. For more details, read our documentation on personalized coupon codes.

Step 4: Add the auto-apply coupon code URL in the email body
Now, we will add the coupon code URL in the first email. To do so, click on the first email step.

You can design your email using four methods: Visual Builder, Rich Text, and Raw HTML.
Here, we will share how to add an auto-apply coupon using Rich Text and Visual Builder.
By default, the abandoned cart recipe comes with a text-based email template. To add an auto-apply coupon URL, click the {{..}} merge tag icon. Then, look for the Cart Recovery URL merge tag and click on the ⚙️icon.
After that, you can choose whether you want to use a static coupon or a dynamic coupon.

Use a static coupon
Select the coupon type as Static Coupon, then enter the coupon you want to use. This will generate a dynamic link that takes users directly to the checkout page.
Click on “Copy” to copy the link.

Use a dynamic coupon
Choose the coupon type as a dynamic coupon, and select the coupon code you created in the previous step from the drop-down. This will generate a dynamic link that takes users directly to the checkout page.
Click on “Copy” to copy the link.

Here, we are going with a dynamic coupon.
You can now add the link as a URL or in an anchor text in your email body.

After adding the cart recovery link with the applied coupon code, save the email.
Here is a preview of the email with the auto-apply coupon Woocommerce URL. The coupon is applied automatically at checkout.

Step 5: Add auto-apply coupon link using cart link block (optional)
Our experts highly recommend using the Visual Builder(New), as it offers many ready-to-use prebuilt email templates.
Note: If you use Visual Builder (New), you can skip the above step of customizing the email text built with rich text.
Here, we are importing the Abandoned Cart template.

Now, you can customize the email template according to your preference.
The Visual Builder includes a "Cart Link" block that adds a cart recovery URL to a CTA. This URL directs users to the website where their cart items have already been added.

To ensure the coupon is automatically applied when users click the CTA, enable "Auto Apply Coupon" and input the generated coupon code. Depending on your preference, you can insert the code manually or dynamically. In this case, we are using an automatically generated coupon.
For this, choose the Coupon type “Automation” and select the coupon you created in the previous step.

Save the email after adding the auto-apply coupon URL and making the customizations.
Lastly, to make your auto coupon automation go live, turn on the toggle button.
And that’s it. Your automation to send abandoned cart emails with an auto-applied WooCommerce coupon URL is ready.

Note: You can include an auto-apply coupon link in all your post-purchase emails using the same process with FunnelKit Funnel Builder.
Method 5: Auto Apply a Coupon Without a Plugin
If you would rather not depend on a plugin, a short snippet does the same job with more room to move.
Put any snippet below in a child theme's functions.php, a site-specific plugin, or the free Code Snippets plugin. Never edit a parent theme's functions.php, because the next theme update erases it. Test on staging first.
Every example hooks into woocommerce_before_calculate_totals, and that choice is deliberate.
Older tutorials hook into woocommerce_before_cart or woocommerce_before_checkout_form. Those template hooks never fire on the block-based Cart and Checkout that now ship as the WooCommerce default, which is why so many older snippets appear to break for no reason.
Cart calculation runs for both checkout types.
Each snippet also carries a did_action() guard. Applying a discount triggers a fresh totals calculation, which would call the function again, so the guard stops the loop after the first pass.
Trigger the discount on cart total
Test this running example in code. It applies save10 once the subtotal reaches $75, and takes it back off if the customer drops below.
add_action( 'woocommerce_before_calculate_totals', 'fk_auto_apply_coupon_by_cart_total', 20, 1 );
function fk_auto_apply_coupon_by_cart_total( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
return;
}
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) {
return;
}
$coupon_code = 'save10';
$minimum_spend = 75;
$subtotal = $cart->get_subtotal();
if ( $subtotal >= $minimum_spend && ! $cart->has_discount( $coupon_code ) ) {
$cart->apply_coupon( $coupon_code );
}
if ( $subtotal < $minimum_spend && $cart->has_discount( $coupon_code ) ) {
$cart->remove_coupon( $coupon_code );
}
}That removal branch matters more than it looks. Without it, a customer who qualifies at $75 and then deletes an item keeps 10% off a $40 cart.
Trigger it on a specific product
Swap the IDs for your own. Hover over a product in Products ⇒ All Products to find its ID.
function fk_auto_apply_coupon_for_product( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
return;
}
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) {
return;
}
$coupon_code = 'save10';
$product_ids = array( 123, 456 );
$qualifies = false;
foreach ( $cart->get_cart() as $cart_item ) {
if ( in_array( (int) $cart_item['product_id'], $product_ids, true ) ) {
$qualifies = true;
break;
}
}
if ( $qualifies && ! $cart->has_discount( $coupon_code ) ) {
$cart->apply_coupon( $coupon_code );
} elseif ( ! $qualifies && $cart->has_discount( $coupon_code ) ) {
$cart->remove_coupon( $coupon_code );
}
}Discount first-time customers only
This checks the customer's order count and only fires when it is zero.
add_action( 'woocommerce_before_calculate_totals', 'fk_auto_apply_first_order_coupon', 20, 1 );
function fk_auto_apply_first_order_coupon( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
return;
}
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) {
return;
}
if ( ! is_user_logged_in() ) {
return;
}
$coupon_code = 'save10';
$order_count = wc_get_customer_order_count( get_current_user_id() );
if ( 0 === (int) $order_count && ! $cart->has_discount( $coupon_code ) ) {
$cart->apply_coupon( $coupon_code );
}
}Please note that WooCommerce can only count orders against an account. A guest checking out for the third time under a fresh email still looks like a first-time customer. If guest checkout is on, back this up with a per-email usage limit on the coupon itself.
Discount by user role for wholesale or members
For B2B stores and membership sites. Replace wholesale_customer with your role slug.
add_action( 'woocommerce_before_calculate_totals', 'fk_auto_apply_role_coupon', 20, 1 );
function fk_auto_apply_role_coupon( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
return;
}
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) {
return;
}
if ( ! is_user_logged_in() ) {
return;
}
$coupon_code = 'wholesale20';
$user = wp_get_current_user();
if ( in_array( 'wholesale_customer', (array) $user->roles, true ) && ! $cart->has_discount( $coupon_code ) ) {
$cart->apply_coupon( $coupon_code );
}
}Trigger free shipping above the threshold
Free shipping needs no snippet of its own. Create a coupon with the discount type set to Fixed cart discount at $0, tick Allow free shipping, then reuse the cart-total snippet with that code and your threshold.
Most people miss the shipping side. Go to WooCommerce ⇒ Settings ⇒ Shipping, open your zone, and add a Free shipping method set to "A valid free shipping coupon." Skip that and the coupon applies while the shipping charge stays on the order.
Note: for threshold strategy and zone setup, see our guide to free shipping in WooCommerce.
5 Best Practices to Get More Conversions With Automatic Discounts
Let's get to proven tips to increase conversions with auto-applied coupons.
1. Set clear rules to protect your profit margins
Auto-applied coupons trigger automatically. If you forget to set rules, every customer gets the discount on every order.
So, it's important to always set a minimum spend, product restriction, or user role requirement. Once that's done, check your coupon usage stats in the first 24 hours after launch.
2. Avoid stacking multiple auto-apply coupons
If more than one auto-apply coupon matches the same cart, your shoppers can get 20% off instead of 10%.
Therefore, use the “Individual use only” setting to prevent this, or make sure your cart conditions don’t overlap, or the auto-apply option has only one coupon.
3. A/B test your discount triggers and amounts
Not all discount triggers perform equally. A $50 minimum spend at 10% off might drive more revenue than a $30 minimum at 15% off.
Track coupon performance through checkout analytics in FunnelKit by reviewing generated orders and average order value with and without the discount.
4. Use auto-apply for free shipping thresholds
A common and effective use case is offering free shipping once the cart reaches a certain total.
This is effective because extra costs, such as shipping fees, are the top reason shoppers abandon their carts.
Therefore, pairing a free shipping coupon with auto-apply removes this friction entirely.
5. Schedule auto-apply coupons for flash sales
You set up a flash sale, auto-apply a coupon, and forget about it. A few days after your sale, people are still getting 25% off!
Set a start and end date so the auto-apply coupon activates and expires automatically.
WooCommerce Auto Apply Coupon: Frequently Asked Questions (FAQs)
To schedule a coupon in WooCommerce, you need to use a top coupon plugin. There, you just have to set the start and expiry dates when creating or editing the coupon.
Yes, with the Advanced Coupons plugin, you can use cart conditions to check a customer's order history. Set a condition requiring the customer to have no previous orders. When a new customer adds products to their cart, the coupon will apply automatically. Returning customers will not see the discount.
WooCommerce checks all active auto apply coupons during cart calculation. It then evaluates each coupon's usage restrictions and cart conditions against the current cart contents.
If a coupon's conditions are met, it is applied. If multiple auto-apply coupons qualify, they all apply unless one has the "Individual use only" setting enabled. In that case, WooCommerce applies only the first matching individual-use coupon.
Create a new coupon with the discount type set to "Fixed cart discount" at $0 and check the "Allow free shipping" box.
Then set your cart condition (such as a $75 minimum subtotal) and enable auto-apply.
Once done, configure a WooCommerce shipping zone with the "Free shipping" method that requires a valid free shipping coupon.
Yes, as long as the coupon is configured to support subscription products, in that the subscription products are not excluded from using this coupon.
With default WooCommerce settings, you can’t auto-apply gift cards or store credits. However, with additional plugins, you can do that.
Auto Coupons for WooCommerce is a free WordPress plugin that adds a toggle to the coupon edit screen and builds on the restrictions you already set, so save10 at $75 works with nothing more than flipping the switch. It handles unlimited coupons and links as well.
But it only acts on conditions native coupons already understand, so payment method, shipping zone, and order history are out of reach.
Its status screen under WooCommerce ⇒ Auto Coupons ⇒ Status is worth knowing about regardless of which method you run, because it reports exactly why a coupon did or did not apply.
Smart Coupons adds an "Auto apply?" checkbox on the coupon screen and validates every restriction before firing.
It applies up to five coupons at once by default and covers gift cards and store credit, which nothing else here does. Check out its official documentation walks through the setup.
Advanced Coupons takes a rules engine approach instead, triggering on order history, cart quantity, shipping method, payment gateway, or day of the week, and it handles BOGO natively.
Yes, conditional discounts work on the block checkout if the rule runs in the right place.
The Cart and Checkout Blocks are now the default for new WooCommerce stores. They render through the Store API rather than the classic PHP templates, so code hooked into woocommerce_before_cart or woocommerce_before_checkout_form never runs.
Coupon application still happens at cart calculation, which is why every example here hooks woocommerce_before_calculate_totals. It fires for both.
Start Converting More Shoppers With WooCommerce Auto Apply Coupons!
Enhancing your WooCommerce shopping experience is a breeze with auto-apply coupons. This not only streamlines the checkout process but also has the potential to significantly boost your sales.
While some prefer to apply coupon programmatically, the non-coding method offers more control over where and how to use auto-apply coupons.
With FunnelKit, you go beyond coupons, creating sales funnels and offering additional offers like order bumps and upsells to boost revenue.
Start with FunnelKit today and transform your WooCommerce store into a sales powerhouse!

Editorial Team
July 30, 2026Are you taking advantage of WooCommerce quantity discounts in your store? WooCommerce quantity discount is the concept of setting innovative pricing strategies by offering discounts on bulk items. Offering quantity...

Editorial Team
July 27, 2026WooCommerce subscription upsell can help boost your revenue through subscription-based sales. Moreover, subscription-based products allow you to add predictability to your revenue. You can sell physical and digital products and...

Editorial Team
July 7, 2026Are shoppers adding products to their cart and leaving before they buy? According to Baymard Institute research on checkout usability, 18% of shoppers who abandon their cart do so because...






