(function() { // Keep track of all product IDs displayed let displayedProducts = new Set(); // Function to filter duplicates in a grid function filterDuplicates(gridSelector) { const products = document.querySelectorAll(gridSelector + ' .woolentor-product'); products.forEach(prod => { const prodId = prod.getAttribute('data-product-id'); if (displayedProducts.has(prodId)) { prod.remove(); // remove duplicates } else { displayedProducts.add(prodId); } }); } // Run initially on page load document.addEventListener('DOMContentLoaded', function() { filterDuplicates('.woolentor-grid'); // change if your grid uses a different class }); // Watch for "Load More" button clicks const loadMoreBtn = document.querySelector('.woolentor-load-more-button'); if (loadMoreBtn) { loadMoreBtn.addEventListener('click', function() { // Wait for AJAX products to load const observer = new MutationObserver(() => { filterDuplicates('.woolentor-grid'); }); observer.observe(document.querySelector('.woolentor-grid'), { childList: true, subtree: true }); }); } })();
Shopping Cart