2017-10-30 4 views
0

Iv meine Woocommerce Site so einrichten, dass die Preise ohne Steuern eingegeben werden.Woocommerce Steuern auf den Einkaufswagen aber nicht auf die Kasse

ID möchten jedoch Preise anzeigen Inklusive Steuern auf den Warenkorb und Produkt-Seiten, aber ausschließlich auf der Checkout-Seite.

Das Problem ist, Woocommerce ermöglicht es Ihnen standardmäßig auszuwählen, enthält/schließt Steuern für den Einkaufswagen & Checkout Together. aber ich brauche sie einzeln anzuzeigen.

Irgendwelche Ideen?

Antwort

0

Verwenden Sie den Filter woocommerce_get_price_including_tax auf den einzelnen Produktseiten. Ich habe den Code aus der Funktion get_price_including_tax kopiert. Ich habe diesen Code nicht getestet, aber das ist die Grundidee von dem, was Sie tun müssen.

function modify_woocommerce_get_price_including_tax($price, $qty, $product) { 

    if(! is_checkout()) { 
     $tax_rates  = WC_Tax::get_rates($product->get_tax_class()); 
     $base_tax_rates = WC_Tax::get_base_tax_rates($product->tax_class); 

     if (! empty(WC()->customer) && WC()->customer->is_vat_exempt()) { 

      $base_taxes   = WC_Tax::calc_tax($price * $qty, $base_tax_rates, true); 
      $base_tax_amount = array_sum($base_taxes); 
      $price    = round($price * $qty - $base_tax_amount, wc_get_price_decimals()); 

     /** 
     * The woocommerce_adjust_non_base_location_prices filter can stop base taxes being taken off when dealing with out of base locations. 
     * e.g. If a product costs 10 including tax, all users will pay 10 regardless of location and taxes. 
     * product feature is experimental @since 2.4.7 and may change in the future. Use at your risk. 
     */ 
     } elseif ($tax_rates !== $base_tax_rates && apply_filters('woocommerce_adjust_non_base_location_prices', true)) { 

      $base_taxes   = WC_Tax::calc_tax($price * $qty, $base_tax_rates, true); 
      $modded_taxes  = WC_Tax::calc_tax(($price * $qty) - array_sum($base_taxes), $tax_rates, false); 
      $price    = round(($price * $qty) - array_sum($base_taxes) + array_sum($modded_taxes), wc_get_price_decimals()); 

     } else { 

      $price = $price * $qty; 

     } 
    } 

    return $price; 

} 

add_filter('woocommerce_get_price_including_tax', 'modify_woocommerce_get_price_including_tax', 10, 3); 

Wenn Sie die Preise auf dem Wagen Seite ändern wollen, dann müssen Sie die Vorlage cart-totals.php in Ihrem Kind Thema außer Kraft zu setzen.

+0

Hey Andrew Vielen Dank für Ihre Antwort. Die Preise können inklusive oder ohne Steuern auf der einzelnen Produktseite angezeigt werden. Es ist die Cart-Seite, die ein Problem für mich schafft. – user3596056

+0

Sie haben das in Ihrer Frage nicht angegeben. Ich habe meine Antwort mit Anweisungen aktualisiert, im Grunde müssen Sie die Vorlage cart-totals.php ändern, da keine Filter vorhanden sind. –

Verwandte Themen