Ohne Steuern, wenn der Gutschein angewendet wird, andernfalls inklusive Steuern in den Artikeln

Lesezeit: 2 Minuten

Benutzeravatar von عثمان غني
عثمان غني

Ich habe für alle meine Artikel inklusive Steuern eingerichtet und MRP im Preis angegeben. Aber jetzt möchte ich Steuern inklusive anwenden, wenn der Kunde keinen Gutschein angewendet hat, dh bei MRP gekauft hat. Aber wenn der Kunde einen Gutschein anwendet, muss ich Steuern auf den Rabattbetrag anwenden.

Ist es mit Einstellungen innerhalb von Woocommerce möglich oder ist ein Plugin verfügbar?

For e.g.
**Case I**
Product MRP = 670
Shipping    =  50
Tax 18%     = 102
Final price = 670 (Including Taxes) 
It's Fine.


**Case II**
Product MRP = 670
Discount 40%= 268
Price       = 402
Shipping    =  50
Tax 18%     =  61
Final price = 452 (Including Taxes)
But I need tax to calculated exclusively on discounted price i.e. 402+18% = 474+50 (Ship) = 524

Ich habe folgenden Filter in meinem benutzerdefinierten Plugin ausprobiert:

add_filter( 'woocommerce_calc_tax', 'inc_or_exc',10,3 );
// add_filter( 'woocommerce_calculate_totals', 'calculate_totals',11 );
function inc_or_exc( $taxes,$price,$rates ) {
    // echo "<pre>";
    if(!empty(WC()->cart->coupon_discount_amounts)){
        return  WC_Tax::calc_exclusive_tax( $price, $rates );
    }else{
        return  WC_Tax::calc_inclusive_tax( $price, $rates );
    }
}

Aber es berechnet Steuern etwas seltsam. Wenn der MRP des Artikels 100 beträgt, wird 98,85 angezeigt und auch die Summen werden nach dem Ausführen des Plugins nicht mit neuen Steuern und Versandkosten aktualisiert. Wenn ich das Plugin deaktiviere, wird der Artikel MRP gut angezeigt, dh 100.

Endlich habe ich es gelöst.

Zuerst habe ich inklusive Exklusivfilter angewendet. Dann angerufen woocommerce_calculated_total mit benutzerdefiniertem Zustand und erreichte mein Motiv.

add_filter( 'woocommerce_calc_tax', 'inc_or_exc',10,3 );
// do_action('add_points');

add_filter( 'woocommerce_calculated_total', 'custom_calculated_total', 10, 2 );
function inc_or_exc( $taxes,$price,$rates ) {
    // echo "<pre>";
    if(!empty(WC()->cart->coupon_discount_amounts)){
        return  WC_Tax::calc_exclusive_tax( $price, $rates );
    }else{
        return  WC_Tax::calc_inclusive_tax( $price, $rates );
    }
}

function custom_calculated_total( $total, $cart ){
    // echo "<pre>";
    if(!empty(WC()->cart->coupon_discount_amounts)){
        return round( $total + WC()->cart->get_cart_contents_tax(), $cart->dp );
    }else{
        return round( $total, $cart->dp );
    }   
}

1393300cookie-checkOhne Steuern, wenn der Gutschein angewendet wird, andernfalls inklusive Steuern in den Artikeln

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

Privacy policy