# king-addons/51.1.87/includes/widgets/Woo_Shortcode_Cart/script.js

King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder, version 51.1.87. 45 lines.

- Page: https://pluginprobe.com/plugins/king-addons/51.1.87/code/includes/widgets/Woo_Shortcode_Cart/script.js
- Raw: https://pluginprobe.com/plugins/king-addons/51.1.87/raw/includes/widgets/Woo_Shortcode_Cart/script.js
- Modified: 2026-09-28T10:54:44+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/king-addons/51.1.87/code/includes/widgets/Woo_Shortcode_Cart/script.js#L10-L20`.

```javascript
/**
 * Keep header/block mini-cart in sync after classic [woocommerce_cart] updates.
 */
(function ($) {
    'use strict';

    let refreshing = false;

    const refreshMiniCart = () => {
        if (refreshing) {
            return;
        }
        refreshing = true;

        document.dispatchEvent(new CustomEvent('wc-blocks_added_to_cart', { bubbles: true }));
        document.dispatchEvent(new CustomEvent('wc-blocks_removed_from_cart', { bubbles: true }));

        if (window.wp && wp.data && wp.data.dispatch) {
            try {
                const cartStore = wp.data.dispatch('wc/store/cart');
                if (cartStore && typeof cartStore.invalidateResolution === 'function') {
                    cartStore.invalidateResolution('getCartData');
                }
            } catch (e) {
                // Store may be unavailable on pages without WooCommerce blocks.
            }
        }

        if ($ && $.fn) {
            $(document.body).trigger('wc_fragment_refresh');
        }

        window.setTimeout(() => {
            refreshing = false;
        }, 250);
    };

    if ($ && $.fn) {
        $(document.body).on('updated_wc_div updated_cart_totals', refreshMiniCart);
    } else {
        document.body.addEventListener('updated_wc_div', refreshMiniCart);
        document.body.addEventListener('updated_cart_totals', refreshMiniCart);
    }
})(window.jQuery);

```
