/** * Bongoto WooCommerce – Woo Enhancements (clean) * Path: assets/js/woo-enhancements.js * * - After AJAX add-to-cart: convert the same button to “View cart” * - Remove Woo's injected `wc-forward` link * - Bump header cart badge/icon */ (function ($) { 'use strict'; const $doc = $(document); const getCartUrl = () => (window.wc_add_to_cart_params && window.wc_add_to_cart_params.cart_url) || (window.wc_cart_params && window.wc_cart_params.cart_url) || '/cart/'; const getViewCartText = () => (window.wc_add_to_cart_params && window.wc_add_to_cart_params.i18n_view_cart) || 'View cart'; // Normalize to an anchor inside the same product card if needed function normalizeToAnchor($btn) { if (!$btn || !$btn.length) return $(); if ($btn.is('a')) return $btn; const $card = $btn.closest('li.product, .bt-product-card, .product'); const $anchor = $card.find('a.add_to_cart_button').first(); return $anchor.length ? $anchor : $btn; } // Handle Woo added_to_cart (AJAX) $doc .off('added_to_cart.bongoto') .on('added_to_cart.bongoto', function (_e, _fragments, _hash, $button) { // 1) Remove Woo's extra "View cart" link(s) $button?.siblings('a.added_to_cart.wc-forward').remove(); $('a.added_to_cart.wc-forward').remove(); // 2) Determine target button let $target = $button && $button.length ? $button : $('.add_to_cart_button.added').last(); $target = normalizeToAnchor($target); if (!$target.length) return; // 3) Turn into compact "View cart" button const cartUrl = getCartUrl(); const viewCartText = getViewCartText(); $target .removeClass('ajax_add_to_cart add_to_cart_button loading') .addClass('is-view-cart button-sm') .attr({ href: cartUrl, 'aria-label': viewCartText, }) .text(viewCartText) .off('click.bongotoViewCart') .on('click.bongotoViewCart', function (e) { e.preventDefault(); window.location.href = cartUrl; }); // 4) Header cart bump animation const $headerCart = $('.bt-header-cart, .bt-cart-icon, .bt-cart-count'); if ($headerCart.length) { $headerCart.addClass('bt-cart-bump'); setTimeout(() => $headerCart.removeClass('bt-cart-bump'), 600); } }); })(jQuery);