Woocommerce - Betrag auf 5 Rappen runden

  • Hallo weil der alte Thread schon Älter ist eröffne ich hier einen neuen.

    Wir schon im alten Thread beschrieben reicht es in der funktions.php die folgenden Zeilen einzufügen um den Gesamtbetrag im Warenkorb auf die nächsten 5 auf oder ab zu runden.

    [COLOR=#0000b3]add_filter( ‘woocommerce_calculated_total’, ’round_price_product’, 10, 1);
    function round_price_product( $price ){
    return round(($price + 0.000001) * 20) / 20; }[/COLOR]

    Wenn nun aber im Woocommerce Backoffice eine Bestellung bearbeitet und Aktualisiert wird. so wird auch die Berechnung neu durchgeführt und es wir nicht mehr auf 5 gerundet.

    In welche Datei kann auf das Runden des Gesamtbetrages im Backoffice eingewirkt werden?

    vielen Dank für hinweise

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Im Backend gibt es keinen Filter mit dem das in der von mir gezeigten Form möglich wäre wie im Frontend. Der einzige Ausweg ist ein komplette Neuberechnung mit der gewünschten Rundung mittels einer Kopie der Methode calculate_totals() der abstrakten Klasse WC_Abstract_Order über den Hook woocommerce_order_after_calculate_totals.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • @ mensmaximus
    danke für die Antwort
    ich habe nicht ganz verstanden in welcher Datei ich da ansetzen muss.
    habe mich aber in woocomerce umgeschaut und die Datei round.js und round.min.js gefunden
    ist es vielleicht möglich die Rundung für woocomerce in diesen Dateien zu Beinflusen?

  • In WooCommerce Dateien wird nichts verändert (außer bei Template Overrides). Wie es geht, habe ich beschrieben.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hallo und Danke für deine Beschreibung.
    Ich habe mich dran gesetzt und die letzten zwei Tage mit dem versuch verbracht deine Beschreibung umzusetzen, leider ohne Erfolg.
    ich denke dafür fehlen mir die tieferen Kenntnisse.

    gruss

  • Im Jobforum sollte sich jemand finden, der das anhand meiner Beschreibung kann.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hi
    Ich habe dieses rounding auf dem Hook “raw_woocommerce_price” bei mir eingesetzt.
    Ich hatte auch mit "woocommerce_calculated_total" probiert, aber das greift ja nur auf das Cart-Total und nicht auf den Produkt-Einzelpreis und nicht auf die Produkt-Zwischensumme.

    Jedenfalls hat sich jetzt aber gezeigt, dass dies immer nur für die einzelnen Positionen funktioniert.
    Intern wird weiter mit den realen ungerundeten Werten gerechnet.

    1. Summe bei grossen Qty:
    Wenn eine grosse Menge eines Produktes bestellt wird merkt man, dass die Summe zwar auf 5 Rappen gerundet ist, aber nicht die Summe aus X * dem gerundeten Einzelpreis ist.
    2. Warenkorbsumme stimmt nicht.
    Bei vielen Positionen erkennt man, dass auch hier die ungerundeten Einzelpositionen addiert und dann erst gerundet wird.
    3. Die an Stripe übermittelte Summe ist ungerundet.
    4. Mit Export-Plugins exportierte Orders haben auch die ungerundeten Werte.

    Dieser Hook wirkt also augenscheinlich nur auf den Output jeder einzelnen Position.

    Mein momentaner Workaround:
    Wir runden auf eine Dezimalstelle. Das kann Woocommerce in den Settings.
    Den Schönheitsfehler, das dann die zweite Dezimalstelle nicht angezeigt wird beheben wir mit eben diesem Hook.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!