Woocommerce erhalten Warenkorb Gesamtpreis in einem Zahlenformat
2 Antworten
- Stimmen
-
- 2013-09-24
Update 2020
Antwort
Eine Lösungmit dernativen WooCommerce-APIfinden Sie unter Antwort vonflytech .
Hinweis/Einschränkung
Wenn Siemit Geldwerten richtig rechnenmöchten,verwenden Sie immer vorzeichenbehaftete Ganzzahlen (!),die den kleinsten Nennwerteinerbestimmten Währung darstellen. (Cent,Penny,Paisa,Dirham,zB).
Konvertieren Siein der Präsentationsebene Ihrer Anwendung erst dann wiederin Dezimalbrüche,nachdem alle Berechnungen durchgeführt wurden.Diesgilt unabhängig von Sprache oder Framework.
Ursprüngliche Antwort
Ich kenne Woocommerce überhauptnicht und daher könntees aucheinen nativen Weggeben,aber aufjeden Fall diesen
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
sollte reichen.
Der
preg_replace
entfernt alles außer Dezimalzeichen und Doppelpunkten.Wenn Sie damit rechnenmöchten,konvertiert das
floatval
den Wert voneiner Zeichenfolgein einenumerische.Update 2020
Answer
See flytech's answer for a solution using the native WooCommerce API.
Note / Caveat
If you're going to do proper arithmetic with monetary values, always use signed integers (!) representing the smallest denomination of a given currency (Cent, Penny, Paisa, Dirham, e.g.).
Only convert back to decimal fractions in the presentation layer of your application after all calculations are done.This holds true regardless of language or framework.
Original answer
I don't know woocommerce at all and hence there might be a native way as well, but anyhow, this
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
should do.
The
preg_replace
eliminates everything but decimal characters and colons.Should you care to do math with it, the
floatval
converts the value from a string to a numeric one.-
Danke,ich habeestatsächlich schonmit einer Lösung ausgearbeitet.Thanks, I already worked it out with some kind of solution indeed.
- 0
- 2013-09-24
- Trekdrop
-
Ineinigen Ländernmüssen Sie auch das Kommaberücksichtigen. Versuchen Sie Folgendes: '# [^ \ d.,] #'For some countries you have to consider the comma too, try this '#[^\d.,]#'
- 0
- 2017-05-19
- j.c
-
Ichmöchte Sie vor diesem Problem warnen: Wenn Siein den allgemeinen Einstellungenfür Woocommerce Punkte und Kommasfestlegen,können Siemit dieser Methode unerwünschte Ergebnisseerzielen.Beispiel: Betrag=1,239,90 $ kann als 1,239 $gelesen werden.Ich würde [diese Lösung] vorschlagen (https://stackoverflow.com/questions/30063173/woocommerce-get-cart-total-as-number#answer-42433145)I'd warn you about this issue: if you set dots and commas in woocommerce general settings you can have unwanted results with this method. Example: amount = 1.239,90$ can be read as 1,239$. I'd suggest [this solution](https://stackoverflow.com/questions/30063173/woocommerce-get-cart-total-as-number#answer-42433145)
- 1
- 2017-07-28
- j.c
-
- 2014-02-11
Dasist was Sie wollen:
Arbeitenmit globalen Variablen:
global $woocommerce; $woocommerce->cart->total;
Arbeitenmit Funktion:
WC()->cart->total;
That is what you want:
Working with global variable:
global $woocommerce; $woocommerce->cart->total;
Working with function:
WC()->cart->total;
-
Bittefügen Sie Ihrer Antworteine Erklärung hinzu: ** Warum ** könnte das das Problem lösen?Please add an explanation to your answer: **why** could that solve the problem?
- 4
- 2014-02-11
- fuxia
-
Ja!dasfunktioniert;Das Währungssymbol wirdentferntyes! this works; it strips the currency symbol
- 0
- 2014-04-05
- numediaweb
-
Wennich diesim Warenkorb verwende,funktioniertesnur dann ordnungsgemäß,wenn der Warenkorbbesucht wird,nicht wennjemandeinen Update-Warenkorb verwendet ... weißjemand warum?If I use this in the cart it only works properly when the cart is visited, not if someone uses update cart ... anyone know why?
- 1
- 2015-03-26
- byronyasgur
-
Dies sollte die richtige Antwort sein. Abhängig vom Kontext (z. B.meinem)funktioniert WC () -> cart->total auchgut.This should be the correct answer. Depending on context (e.g. mine), WC()->cart->total also works nicely.
- 0
- 2015-09-22
- rrrhys
-
Aufjeder Seite deklarieren Sie $ woocommerce alsglobale Variable und können auf diemeisten Dinge zugreifen,die Siebenötigen.on any page you declare $woocommerce as global variable and the you can access most of the stuff that you need.
- 0
- 2015-11-16
- Aamer Shahzad
-
Sie können aucheine andere Warenkorbvariable wie dieseerstellen globaler $ woocommerce; $ cart=$ woocommerce-> cart->get_cart (); Diesenthält diemit dem Einkaufswagen verbundenen Dinge. macheeinen print_r ($ cart);um auf die Werte zuzugreifen.you can also create another cart variable like this global $woocommerce; $cart = $woocommerce->cart->get_cart(); this contains the cart related stuff; do a print_r( $cart ); to access the values.
- 0
- 2015-11-16
- Aamer Shahzad
-
https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#288-298https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#288-298
- 0
- 2020-05-24
- Tosh
Istesmöglich,den Gesamtpreis des Warenkorbs ohne Aufschlag zuerhalten?Also ohne das € -Symbol?Im Momentbekommeich den Betragmit:
Diesergibt 16,50 €
Ich habe das auch versucht:
Diesergibtjedochimmer 0,00
Gibteseine Woocommerce-Get-Funktion,dieein Zahlenformat desgesamten Warenkorbpreises angibt?Danke!