Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich die Anzahl der Artikel im Header-Warenkorb in WooCommerce ajaxifizieren?

Wie kann ich die Anzahl der Artikel im Header-Warenkorb in WooCommerce ajaxifizieren?

Patricia Arquette
Freigeben: 2024-10-30 01:26:02
Original
856 Leute haben es durchsucht

How to Ajaxify Header Cart Items Count in WooCommerce?

Ajaxify Header Cart Items Count in WooCommerce

Challenge

In einer benutzerdefinierten WooCommerce-Integration Im WordPress-Theme trat ein Problem auf, bei dem eine Anzeige für die Anzahl der Artikel im Warenkorb nach dem Hinzufügen von Artikeln falsche Werte anzeigte. Der Täter legte eine bestimmte Menge an Artikeln in den Warenkorb, was dazu führte, dass sich der Indikator nur um eins erhöhte.

Lösung

Um dieses Problem zu beheben, können wir die spezielle Funktion von WooCommerce nutzen woocommerce_add_to_cart_fragments Aktions-Hook, der Ajax-Unterstützung für die Aktualisierung der Anzahl der Warenkorbartikel bietet.

Implementierung

1. HTML und ID/Klasse

In der Datei header.php des Themes definieren wir das HTML-Element, das die Warenkorbanzahl anzeigt. Für ein einfaches Targeting ist es wichtig, eine eindeutige ID oder Klasse zuzuweisen:

<code class="html"><div id="mini-cart-count"><?php echo WC()->cart->get_cart_contents_count(); ?></div></code>
Nach dem Login kopieren

2. PHP-Code

Als nächstes fügen wir der Datei „functions.php“ eine Funktion hinzu, die den Hook verwendet, um den Inhalt der Warenkorbanzahl dynamisch zu aktualisieren:

<code class="php">add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_count');
function wc_refresh_mini_cart_count($fragments){
    ob_start();
    $items_count = WC()->cart->get_cart_contents_count();
    ?>
    <div id="mini-cart-count"><?php echo $items_count ? $items_count : ' '; ?></div>
    <?php
        $fragments['#mini-cart-count'] = ob_get_clean();
    return $fragments;
}</code>
Nach dem Login kopieren

3. Ajax-Update

Wenn Sie zusätzliche Kontrolle mit jQuery benötigen, sollten Sie die Verwendung der Ereignisse wc_fragment_refresh oder wc_fragments_refreshed in Betracht ziehen:

<code class="javascript">$(document.body).trigger('wc_fragment_refresh');</code>
Nach dem Login kopieren

oder

<code class="javascript">$(document.body).trigger('wc_fragments_refreshed');</code>
Nach dem Login kopieren

Durch Implementierung dieser Änderungen , die Anzahl der Artikel im Warenkorb zeigt genau die Anzahl der Artikel im Warenkorb an, auch wenn bestimmte Produktmengen hinzugefügt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich die Anzahl der Artikel im Header-Warenkorb in WooCommerce ajaxifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage