Ich habe in der Kopfzeile meiner Seite einen Link zum Warenkorb mit den aktuellen Summen erstellt.
Es soll die aktuelle Summe des Warenkorbs und die Anzahl der im Warenkorb enthaltenen Artikel auf folgende Weise anzeigen:
[icon] 1,20 € – 1 Artikel
Der Wert wird jedoch nur auf der Warenkorbseite korrekt berechnet. Auf der Startseite wird es beispielsweise nur so angezeigt:
[icon] 0,00 € – 1 Artikel
So greife ich auf die Werte zu:
$count = WC()->cart->cart_contents_count;
WC()->cart->calculate_totals();
if($count > 0)
{
print "<a class="cart-contents" href="" . WC()->cart->get_cart_url();
print "" title="Voir votre panier">";
print WC()->cart->get_total();
print " - " . sprintf(_n('%d article', '%d articles', $count, 'woothemes'), $count);
print "</a>";
}
Wenn ich anrufe WC()->cart->get_cart_total();
wird der Preis ohne Steuern angezeigt, auch wenn ich erzwinge, dass Preise Steuern enthalten.
Wie kann ich konsistent den korrekten Wert auf der gesamten Website erhalten?
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
Sie können $amount auch gemäß Ihren Anforderungen in Float-Wert umwandeln.
Ich hatte das gleiche Problem, also ging ich den WooCommerce-Code durch. In der Funktion WC()->cart->calculate_totals()
in der Klasse WC_Cart
seit einiger Zeit gibt es folgende Bedingung
// Only calculate the grand total + shipping if on the cart/checkout
if ( is_checkout() || is_cart() ||
defined('WOOCOMMERCE_CHECKOUT') || defined('WOOCOMMERCE_CART') )
Diese Bedingung gilt speziell für die Berechnung der total
, Ich bin mir nicht sicher warum. Aber das gibt Ihnen die richtige Problemumgehung: Fügen Sie auf der Seite, auf der Sie die Gesamtsumme anzeigen müssen, eine der folgenden Codezeilen ein:
define( 'WOOCOMMERCE_CART', true );
oder
define( 'WOOCOMMERCE_CHECKOUT', true );
Und dann die Funktion ausführen WC()->cart->calculate_totals();
Dann bekommt man den Warenkorb auch nicht voll ausgenutzt WC()->cart->total
oder wc_cart_totals_order_total_html()
(für Währungssymbol)
10932300cookie-checkWoocommerce: Warenkorbsumme zeigt Null für 1 Artikelyes