Minicart mit AJAX in Woocommerce aktualisieren / aktualisieren

Lesezeit: 3 Minuten

Minicart mit AJAX in Woocommerce aktualisieren aktualisieren
tobiasg

Ich versuche, diesen Code zu meinem WooCommerce-Setup hinzuzufügen, das einen Warenkorb-Link hinzufügt, wo immer ich das PHP platziere, und es dann aktualisiert, wenn Artikel im Warenkorb mit AJAX geändert werden: https://docs.woocommerce.com/document/show-cart-contents-total/

Hier sind die Ausschnitte:

HTML-PHP:

<a class="cart-customlocation" href="https://stackoverflow.com/questions/49941502/<?php%20echo%20wc_get_cart_url();%20?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf ( _n( '%d item', '%d items', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a>

Im functions.php Datei:

function woocommerce_header_add_to_cart_fragment( $fragments ) {
    global $woocommerce;

    ob_start();

    ?>
    <a class="cart-customlocation" href="https://stackoverflow.com/questions/49941502/<?php%20echo%20esc_url(wc_get_cart_url());%20?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> - <?php echo $woocommerce->cart->get_cart_total(); ?></a>
    <?php
    $fragments['a.cart-customlocation'] = ob_get_clean();
    return $fragments;
}

Aber das AJAX funktioniert nicht. Ist das zweite Snippet alles, was ich zur functions.php hinzufügen muss?

Es fühlt sich an, als sollte ich die Funktion aufrufen und nicht nur definieren?

Oder muss ich AJAX generell irgendwie aktivieren, damit es funktioniert?

Der Filterhaken woocommerce_add_to_cart_fragments fehlt in Ihrer Funktion …

Damit es funktioniert, sollte es sein:

add_filter( 'woocommerce_add_to_cart_fragments', 'header_add_to_cart_fragment', 30, 1 );
function header_add_to_cart_fragment( $fragments ) {
    global $woocommerce;

    ob_start();

    ?>
    <a class="cart-customlocation" href="https://stackoverflow.com/questions/49941502/<?php%20echo%20esc_url(wc_get_cart_url());%20?>" title="<?php _e('View your shopping cart', 'woothemes'); ?>"><?php echo sprintf(_n('%d item', '%d items', $woocommerce->cart->cart_contents_count, 'woothemes'), $woocommerce->cart->cart_contents_count);?> - <?php echo $woocommerce->cart->get_cart_total(); ?></a>
    <?php
    $fragments['a.cart-customlocation'] = ob_get_clean();

    return $fragments;
}

Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Ungetestet.

  • Danke Das hat funktioniert! Es fehlte im Beispiel von der WooCommerce-Seite.

    – Tobiasg

    20. April 2018 um 14:00 Uhr

  • Nur eine Anschlussfrage. Ist es möglich, die Funktion erneut auszuführen, wenn ich die Seite aktualisiere? Ich habe PolyLang installiert. Ich ändere die Schlüsselwörter “Elemente” mit Variablen, je nachdem, ob die Seite auf Schwedisch oder Englisch eingestellt ist. Es scheint, als ob das zuletzt aufgerufene AJAX irgendwie zwischengespeichert wird, sodass das Ändern der Sprache der Website die Schlüsselwörter in der Zeichenfolge nicht ändert, die die header_add_to_cart_fragment Funktion zurück. Lege ich ein Produkt in den Warenkorb, ändert sich das Keyword. Wenn ich dann aber auf eine andere Sprache wechsle, ist das Keyword immer noch in der Sprache, die beim Hinzufügen des Produkts aktiviert war.

    – Tobiasg

    20. April 2018 um 14:11 Uhr

  • @tobiasg Tut mir leid, aber ich verwende nie Polylang, da ich immer WPML verwende, daher kann ich dazu nicht beitragen.

    – LoicTheAztec

    20. April 2018 um 15:11 Uhr


  • Warenkorbseite : Warenkorb aktualisiertes Ereignis, wenn es nicht funktioniert.

    – Ravi Patel

    21. Januar um 16:22 Uhr

923860cookie-checkMinicart mit AJAX in Woocommerce aktualisieren / aktualisieren

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy