---
title: Advanced and AJAX Options for the WooCommerce Free Shipping Bar
description: "Advanced and AJAX options for the WooCommerce free shipping bar: when the message shows and how it refreshes."
url: "https://wpfactory.com/docs/fine-tuning-free-shipping/"
updated: "2026-09-26"
category: How to
tags:
  - Free Shipping Bar
---

# Advanced and AJAX Options for the WooCommerce Free Shipping Bar

To control when the free shipping message shows and make it update without a page reload, open **WPFactory > Left for Free Shipping > Advanced** in [Free Shipping Bar: Amount Left for Free Shipping for WooCommerce](https://wpfactory.com/item/amount-left-free-shipping-woocommerce/). The behavior toggles there are free; the AJAX group and the option to ignore virtual products in the total are Pro.

Go to **WPFactory > Left for Free Shipping** (also reachable at **WooCommerce > Settings > Amount Left for Free Shipping**) and open the **Advanced** section.

## Advanced options

| Label | Option ID | Default | Free/Pro |
| --- | --- | --- | --- |
| Check shipping cost (show message when shipping total is zero) | `alg_wc_left_to_free_check_cart_free_shipping` | No | Free |
| Check for alternative free shipping | `alg_wc_left_to_free_shipping_check_free_shipping` | No | Free |
| Virtual products (hide text for virtual-only carts) | `alg_wc_left_to_free_shipping_check_virtual` | No | Free |
| Ignore virtual products in cart to reach the min amount | `alg_wc_left_to_free_shipping_ignore_virtual_products` | No | Pro |
| Clear notices (wipe notices on add to cart) | `alg_wc_left_to_free_shipping_clear_notices` | No | Free |

### What each option is for

- **Check shipping cost:** shows the **Free shipping reached** message whenever the cart's shipping total is 0 and a shipping rate is available, for example when a free shipping coupon or a zero-cost rate applies.
- **Check for alternative free shipping:** if the zone also has a Free shipping method that needs no minimum, the cart is treated as already qualifying.
- **Virtual products:** hides the message when every item in the cart is virtual, since nothing ships.
- **Ignore virtual products in cart to reach the min amount** (Pro): subtracts virtual items from the cart total, and makes the WooCommerce Free shipping method ignore them too, so downloads or services cannot unlock free delivery.
- **Clear notices:** removes earlier notices when a product is added. Turn it on if messages appear twice.

## AJAX options (Pro)

Enable AJAX so the amount updates without a page reload. This matters for the Store notice, for WooCommerce's "Enable AJAX add to cart buttons on archives", and for text placed outside the areas WooCommerce refreshes itself.

| Label | Option ID | Default |
| --- | --- | --- |
| Enable AJAX | `alg_wc_left_to_free_shipping_ajax_enabled` | No |
| Additional events | `alg_wc_left_to_free_shipping_ajax_events` | (empty) |
| Added to cart event without AJAX | `alg_wc_left_to_free_shipping_ajax_added_to_cart_no_ajax` | No |
| Force update (update on any page load) | `alg_wc_left_to_free_shipping_ajax_force_update` | No |

The plugin always listens for a core set of events: `updated_cart_totals`, `added_to_cart`, `removed_from_cart`, `wc_fragment_refresh`, `updated_checkout`, `wc_cart_emptied`, `updated_shipping_method`, and a built-in event fired when a Cart or Checkout block total changes. Use **Additional events** only to add your own space-separated JavaScript events. Enable **Force update** if a caching layer stops the amount from refreshing.

### What AJAX refreshes

With **Enable AJAX** on, three outputs refresh live: the `[alg_wc_left_to_free_shipping]` shortcode, the Site-wide notice and the Default WooCommerce notice from the [Store notice section](https://wpfactory.com/docs/store-notices-options/). The Cart, Mini-cart and Checkout sections and the widget are not refreshed by it: they update when WooCommerce redraws that part of the page, or on the next page load.

## Step by step: live updates on shop and product pages

1. Place the shortcode where you want the message, for example in a header block: `[alg_wc_left_to_free_shipping content="%amount_left_for_free_shipping% left for free shipping"]`.
2. In **Advanced**, tick **Enable AJAX**.
3. If your theme adds to cart on single product pages with a page reload, also tick **Added to cart event without AJAX**.
4. If you use page caching, tick **Force update**.
5. Save changes, clear your cache and test by adding a product from the shop page.

## If it does not work

- **The shortcode still shows the old amount:** AJAX is off, or a cached page is served. Tick Force update and purge the cache. See [Shortcode does not update on shop or product pages](https://wpfactory.com/docs/shortcode-amount-not-updating/).
- **Cart page text lags behind quantity changes:** move it to a position inside the cart totals, which WooCommerce redraws. See [Bar text does not update when the cart changes](https://wpfactory.com/docs/bar-text-not-updating/).
- **A theme's custom cart does not trigger updates:** find the JavaScript event it fires after adding to cart and add it to Additional events.

## FAQ

### Is AJAX updating free?

No, **Enable AJAX** is Pro. The other Advanced toggles, except ignoring virtual products in the total, are free.

### Does Force update slow the site?

It sends one extra request per message on each page load, so enable it only when caching causes stale amounts.

### Why is the message hidden for a cart with only downloads?

The **Virtual products** option is on, which hides the text when nothing in the cart needs shipping.

### Get more control

The behavior toggles are free. [Amount Left for Free Shipping](https://wpfactory.com/item/amount-left-free-shipping-woocommerce/) Pro adds the AJAX engine and the virtual-products exclusion for accurate real-time updates. [See what Pro unlocks](https://wpfactory.com/item/amount-left-free-shipping-woocommerce/).

Need a hand? Our team answers every ticket on the [Amount Left for Free Shipping support forum](https://wpfactory.com/support/item/amount-left-free-shipping-woocommerce/).

Related articles

- [Getting Started with the Free Shipping Bar for WooCommerce](https://wpfactory.com/docs/use-free-shipping-bar/)
- [WooCommerce Free Shipping Progress Bar Settings](https://wpfactory.com/docs/progress-bar-options/)
- [General Free Shipping Bar Settings in WooCommerce](https://wpfactory.com/docs/general-options/)
- [Third-Party Plugin Compatibility for the Free Shipping Bar](https://wpfactory.com/docs/free-shipping-third-party-compatibility/)
- [Free Shipping Bar: Developer Hooks and Filters Reference](https://wpfactory.com/docs/free-shipping-developer-hooks-filters/)

 

[![Free Shipping Bar: Amount Left for Free Shipping for WooCommerce](https://wpfactory.com/wp-content/uploads/Free-Shipping-Over-Amount-Bar-for-WooCommerce.webp)](https://wpfactory.com/item/amount-left-free-shipping-woocommerce/)
