Woocommerce - Betrag auf 5 Rappen runden

  • Hallo zusammen

    Habe ein kleines Problem bei einem Webshop. Der Shop hat die Währung CHF und es besteht die Möglichkeit einen Gutscheincode einzugeben (z.B. 11%).
    Die Beträge werden zwar 2-stellig gerundet, aber ich will diese natürlich auf 5 Rappen genau Runden.

    Gibt es irgend eine Lösung dafür? Habe gesehen z.B. via functions.php ... Doch mir fehlt der entsprechende php-Code.

    Danke für eure Hilfe!

    • 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

  • Habe eine Lösung gefunden:

    [COLOR=#212121][FONT=&quot][COLOR=#666666]add_filter( 'woocommerce_calculated_total', 'round_price_product', 10, 1);[/COLOR][/FONT][/COLOR]
    [COLOR=#212121][FONT=&quot][COLOR=#666666]function round_price_product( $price ){[/COLOR][/FONT][/COLOR]
    [COLOR=#212121][FONT=&quot][COLOR=#666666] return round(($price + 0.000001) * 20) / 20;[/COLOR][/FONT][/COLOR]
    [COLOR=#212121][FONT=&quot][COLOR=#666666]}

    am Ende in functions.php einfügen[/COLOR][/FONT][/COLOR]

  • Ich würde nicht round verwenden, sondern ceil (oder für geizige Kaufleute floor)

    Mit ceil wird der abzuziehende Betrag immer aufgerundet. Aus 22.87 wird 22.90. Der Kunde bekommt etwas mehr Rabatt.
    Mit floor wird der abzuziehende Betrag immer abgerundet. Aus 22.87 wird also 22.85. Der Kunde bekommt also etwas weniger Rabatt.

    Welche rechtlichen Aspekte zu beachten sind, ist mit einem Anwalt zu klären! Denn zumindest in Deutschland bin ich mir relativ sicher, dass das Abrunden zu Abmahnungen führen könnte, denn wenn 11% Rabatt einen Abzug von 22.87 ergeben aber nur 22.85 abgezogen werden gibt es Stress. Wer hingegen 22.90 anzieht ist auf der sicheren Seite.

    Die Funktion kommt in die functions.php eines Child Themes

    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.

  • Habe eine Lösung gefunden:

    [COLOR=#212121][FONT=&amp][COLOR=#666666]add_filter( 'woocommerce_calculated_total', 'round_price_product', 10, 1);[/COLOR][/FONT][/COLOR]
    [COLOR=#212121][FONT=&amp][COLOR=#666666]function round_price_product( $price ){[/COLOR][/FONT][/COLOR]
    [COLOR=#212121][FONT=&amp][COLOR=#666666] return round(($price + 0.000001) * 20) / 20;[/COLOR][/FONT][/COLOR]
    [COLOR=#212121][FONT=&amp][COLOR=#666666]}

    am Ende in functions.php einfügen[/COLOR][/FONT][/COLOR]

    Damit wird der Gesamtpreis gerundet inkl. Versand und Gebühren. Und das kaufmännisch, also bis 0.49 ab und ab 0.5 auf.

    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.

  • [COLOR=#333333]Ich würde nicht round verwenden, sondern ceil (oder für geizige Kaufleute floor)[/COLOR]

    [COLOR=#333333]Code:
    add_filter( 'woocommerce_coupon_get_discount_amount', 'mmx_round_coupon_amount' );
    function mmx_round_coupon_amount( $discount ){

    // round up
    $rounded = ceil( $discount / 0.05 ) * 0.05;

    // round down
    // $rounded = floor( $discount / 0.05 ) * 0.05;

    return $rounded;

    }[/COLOR]
    [COLOR=#333333]Mit ceil wird der abzuziehende Betrag immer aufgerundet. Aus 22.87 wird 22.90. Der Kunde bekommt etwas mehr Rabatt.[/COLOR]
    [COLOR=#333333]Mit floor wird der abzuziehende Betrag immer abgerundet. Aus 22.87 wird also 22.85. Der Kunde bekommt also etwas weniger Rabatt.[/COLOR]

    [COLOR=#333333]Welche rechtlichen Aspekte zu beachten sind, ist mit einem Anwalt zu klären! Denn zumindest in Deutschland bin ich mir relativ sicher, dass das Abrunden zu Abmahnungen führen könnte, denn wenn 11% Rabatt einen Abzug von 22.87 ergeben aber nur 22.85 abgezogen werden gibt es Stress. Wer hingegen 22.90 anzieht ist auf der sicheren Seite.[/COLOR]

    [COLOR=#333333]Die Funktion kommt in die functions.php eines [/COLOR]Child Themes

    -------------

    Hier wird aber etwas grosszügig aufgerundet. z.B. 7.03 wird auf 7.30 gerundet. kann das sein?

  • Hier wird aber etwas grosszügig aufgerundet. z.B. 7.03 wird auf 7.30 gerundet. kann das sein?

    Eigentlich nicht. Wie gerundet wird habe ich ja 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.

  • Ja, komisch. Habe es soeben getestet und erhalte solche Ergebnisse ...

    Bei meinem Test erhalte ich die richtigen Werte.

    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.

  • hmm etwas unklar...
    Also der gerundete Endbetrag soll auch in der DB (dh Buchhaltung) enthalten sein.
    Ist dem so ?

    Und nochmals bitte - wie und wo genau das einfügen / anwenden ?

    SRI ich bin seit einigen Jahren weg vom Fenster -- also viel vergessen...

  • Und deshalb mache ich hier zu.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

Jetzt mitmachen!

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