Wieder mal - Rechnungs - Endbetrag runden

  • Hello
    Wir haben einen (Software aktuellen) Woocomerce Shop mit Storefront,(noch nicht offiziell aufgeschaltet).
    Das einzige was noch fehlt ist: den Rechnungsendbetrag auf den nächsten 5er oder 10er abrunden.
    Ich habe den Beitrag von nasenbaer von 201x durchgelesen werde aber echt nicht schlau daraus:
    Ich zitiere daraus:
    "Ich würde nicht round verwenden, sondern ceil (oder für geizige Kaufleute floor)
    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;
    }
    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.
    "
    Wir haben da keinen Rabatt Coupon etc. Ganz einfach den Endbetrag abrunden.
    In CH ist es üblich gerundet auf 5 Rp zu verrechnen.
    Das muss nicht mal speziell aufgeführt werden, in den AGB kann man dies vermerken und die Probleme sind vom Fenster. Überdies zahlt der Kunde ja weniger, also wird niemand Stress machen.

    Bitte mir ein Muster machen damit ich es einbauen kann.
    Wenn gewünscht sponsore ich etwas.
    Erich

    • 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

  • Code kommt in die functions.php eines Childthemes:

    Code
    add_filter( 'woocommerce_calculated_total', 'mmx_round_total_amount' );
    function mmx_round_total_amount( $total ) {
       $rounded = floor(($total + 0.000001) * 20) / 20;
       return $rounded;
    }

    Code zur freien Verwendung wie gepostet.

    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.

  • Oh, konnte es von hier aus einbauen...via RDP auf einen Rechner.

    in ..wp-contest/themes/storefront-child/
    ja eine functions.php drin- aber es war nicht viel drin...(soviel das der script direkt nicht aufgerufen werden kann)

    <?php
    // Exit if accessed directly
    if ( !defined( 'ABSPATH' ) ) exit;

    add_filter( 'woocommerce_calculated_total', 'mmx_round_total_amount' );
    function mmx_round_total_amount( $total ) {
    $rounded = floor(($total + 0.000001) * 20) / 20;
    return $rounded;
    }
    ...........
    Leider tut sich nichts - in Richtung runden.
    Muss die Funktion nicht noch irgendwo aufgerufen werden ?
    .......
    Es gibt noch eine ../themes/storefront/functions.php - aber dort steht unten dass man Benutzerspezifischen Code nicht einbauen soll.....

  • Es gibt viele Gründe warum die Funktion keine Wirkung zeigt. In einer frischen WooCommerce Installation mit Standrad Theme funktioniert es.

    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.

  • OK nun geschafft.
    Problem war das bestehende storefront-child.php war in den Plugiuns nicht aufgelistet.
    Nun selbst eines gemacht raufgeladen und aktiviert - funktioniert mit 5er Rundung.

Jetzt mitmachen!

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