Rechnungs-Endbetrag runden nach Bestell-Änderung

  • Hallo zusammen

    Normalerweise rundet es mir den Rechnungs-Endbetrag mit dem folgenden Code in der functions.php:

    add_filter( 'woocommerce_calculated_total', 'round_price_product', 10, 1);
    function round_price_product( $price ){
    return round(($price + 0.000001) * 20) / 20;
    }

    Doch wenn ich eine Bestellung abändern und die Rechnung aktualisieren muss, dann rundet es nicht mehr.

    Weiss da jemand was tun?

    Herzlichen Dank und beste Grüsse

    • 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


  • add_filter( 'woocommerce_calculated_total', 'round_price_product', 10, 1);
    function round_price_product( $price ){
    return round(($price + 0.000001) * 20) / 20;
    }

    Doch wenn ich eine Bestellung abändern und die Rechnung aktualisieren muss, dann rundet es nicht mehr.

    Weiss da jemand was tun?

    in die EU ziehen, damit du als Schweizer nicht mehr runden musst?

    und bist du wirklich sicher, dass dies hier

    Code
    return round(($price + 0.000001) * 20) / 20;

    funktioniert.

    Bei round fehlt die Hälfte und mindestens eine schließende Klammer fehlt... und der Sinn eigentlich auch...
    https://www.php.net/manual/de/function.round.php

    Mit offenen Augen träumen

  • Hier funktioniert die Codezeile, es fehlt keine Klammer.

    Evtl. musst Du noch andere Filter ausser [FONT=Courier New]woocommerce_calculated_total[/FONT] nutzen.

  • Danke für die Antworten.
    Also der Code funktioniert. ;-)
    Einfach dann nicht, wenn etwas an der Bestellung geändert wurde, dann greift der Code nicht mehr.

    Wenn mir jemand einen funktionierenden Code sagen kann, kann ich auch was dafür geben, ich bin leider selber zu wenig versiert dazu.

  • Im Backend gibt es keinen passenden Hook. siehe https://forum.wpde.org/threads/woocom…-runden.184548/

    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.

  • Danke mensmaximus. Das heisst man müsste das einbauen was du dort angegeben hast?:

    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.

    Ich kann zwar Code eingeben in die functions.php, aber anscheinend ist das etwas komplizierter. Wie ist da das Vorgehen?
    Oder soll ich das im Jobforum ausschreiben, ist das eine grössere Sache?

Jetzt mitmachen!

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