Seit der Version 1.4 gibt es bei WooCommerce ein Problem mit meinem Hook zur Anzeige der Steuer auf der Produktseite.
Da die Entwickler die Steuerverwaltung überarbeitet haben funktioniert der Hook nicht mehr.
Die Lösung ist wie folgt:
[sourcecode language="plain"]</del>
<del>add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_pp', 10);</del>
<del>function woocommerce_template_single_pp() {</del>
<del>global $product;</del>
<del>$_tax = new WC_Tax();</del>
<del>$rates = $_tax->get_rates( $product->get_tax_class() );</del>
<del>if (!isset($rates[0]['rate'])) return;</del>
<del> ?></del>
<del>(inkl <!--?php echo round($rates[0]['rate']); ?-->% Mwst. und zzgl. <a href="<?php bloginfo('url'); ?>/kauf-und-lieferbedingungen/">Versandkosten</a>)</del>
<del><!--?php <br ?--></del>
<del>}</del>
<del>[/sourcecode]
Florian Krüper hat den Hook für die aktuelle Version 1.4.4 angepasst, so dass der jeweils zugeordnete Steuersatz verwendet wird. Vielen Dank dafür
Features:
- Anzeige des MwSt.-Satzes auf der Produktdetailseite
- Gibt den für das einzelne Produkt hinterlegten MwSt.-Satz aus (funktioniert auch bei mehreren Sätzen, z. B. 7%, 19%, MwSt.-befreit)
- Bei 0% MwSt. alternative Textausgabe: „mehrwertsteuerbefreit“
- FailSafe, für den Fall, dass kein MwSt.-Satz ermittelt werden kann wird „inkl. 19% Mwst.“ ausgegeben.
[sourcecode]
add_action( ‚woocommerce_single_product_summary‘, ‚woocommerce_template_single_price‘, 10);
function woocommerce_template_single_price() {
//Anpassungen
$mehrwertsteuerBefreit = "Mehrwertsteuerbefreit"; //Text wird angezeitg, wenn MwSt. = 0%
$failSafe = "inkl. 19% MwSt."; //Text wird angezeigt, wenn Ausgabe der MwSt fehlschlägt (z.B. wegen eines Updates)
$versandText = "<br>Innerhalb Deutschlands, versandkostenfrei<br>"; //Text zum Versand. Optional. Wird vor dem Link angezeigt. Optional.
$versandLink = "http://blogDomain.de/versandbedingungen"; //Absoluter (!) Link zu Versandbedingungen. Optional.
$versandLinkText = "Versandbedingungen"; //Verlinkter Text für Versandbedingungen. Optional.
/*————– Unterhalb dieser Zeile sollte nichts angepasst werden müssen ————–*/
global $product;
//Preis anzeigen
woocommerce_get_template(’single-product/price.php‘);
//MwSt.-Satz für Produkt raussuchen
$_tax = new WC_Tax();
$rates = array_shift($_tax->get_rates( $product->get_tax_class() ));
//Den zugewiesenen MwSt-Satz anzeigen
if (isset($rates[‚rate‘])) {
if ($rates[‚rate‘] == 0) {
//Alternativtext, wenn 0% MwSt.
echo "<p>".$mehrwertsteuerBefreit;
} else {
echo "<p>inkl. ".round($rates[‚rate‘])."% MwSt. ";
}
} else {
//FailSafe: Wenn irgendetwas schiefgeht, besser das anzeigen, als gar nichts.
echo $failSafe;
}
// Angaben zu Versandkosten (Anm.: Hier könnte man auch automatisch die jeweiligen Versandkosten auslesen. So ist es aber einfacher und wird in den meißten Fällen genügen)
echo $versandText;
echo "<a href="".$versandLink."">".$versandLinkText."</a></p>";
?>
<?php
}
[/sourcecode]