[mailpoet_page]
MailPoet Page
by admin_spahmann | Jan. 9, 2026
(function($) {
function updateCartDisplay() {
// WooCommerce speichert Fragmente im sessionStorage
const fragments = JSON.parse(sessionStorage.getItem('wc_fragments'));
if (fragments && fragments['div.widget_shopping_cart_content']) {
// Wir ziehen die Zahl aus dem Mini-Cart HTML, das WC im Speicher hat
// Das ist der verlässliche Weg ohne PHP
const cartHtml = fragments['div.widget_shopping_cart_content'];
const tempDiv = document.createElement('div');
tempDiv.innerHTML = cartHtml;
// Wir suchen nach der Anzahl der Items im HTML-String
// WooCommerce nutzt oft Klassen wie 'count'
const countMatch = cartHtml.match(/(\d+)\s+Items/i) || [0, 0];
// Eleganter: Wir holen uns die echte Zahl direkt via jQuery von WC
// falls die Seite gerade geladen hat
var count = Cookies.get('woocommerce_items_in_cart');
}
// DER SICHERSTE WEG: WooCommerce Event Trigger nutzen
// Wir fragen den aktuellen Status ab
const cartCount = parseInt(window.sessionStorage.getItem('wc_cart_count') || 0);
// Anzeige aktualisieren
const display = document.getElementById('cart-count');
const wrapper = document.getElementById('cart-count-wrapper');
// Da WC die Anzahl oft im Header-Fragment mitschickt,
// hören wir einfach auf das Standard-Update Event:
if (display && wrapper) {
// Wir nehmen die Zahl direkt aus dem Session Storage (wird von WC befüllt)
const storageKey = 'wc_fragments';
const frag = JSON.parse(sessionStorage.getItem(storageKey));
// Wir extrahieren die Zahl aus dem Cookie 'woocommerce_items_in_cart'
// Falls der Cookie nur "1" sagt, obwohl 5 drin sind,
// nehmen wir das Session-Fragment:
let finalCount = 0;
if(frag) {
// Suche nach Ziffern im Fragment-HTML (meist im span.count)
const helper = document.createElement('div');
helper.innerHTML = frag['span.count'] || "";
finalCount = helper.innerText.replace(/\D/g,'') || 0;
}
if (finalCount > 0) {
display.innerText = finalCount;
wrapper.style.display = 'flex';
} else {
wrapper.style.display = 'none';
}
}
} catch (e) {
console.log("Cart update error", e);
}
}
// Höre auf WooCommerce AJAX Updates
$(document.body).on('added_to_cart removed_from_cart updated_wc_div', function() {
setTimeout(updateCartDisplay, 100);
});
// Initial beim Laden
$(document).ready(updateCartDisplay);
})(jQuery);