Woocommerce ottieni il prezzo totale del carrello in un formato numerico
2 risposta
- voti
-
- 2013-09-24
Aggiorna 2020
<"Risposta"
Consulta la risposta diflytech per una soluzione che utilizza l'APInativa di WooCommerce.
Nota/avvertimento
Seintendieseguire un'aritmetica corretta coni valorimonetari, sempre utilizzanumeriinteri con segno (!) che rappresentanoilpiùpiccolotaglio di una data valuta (centesimi,penny,Paisa,Dirham,adesempio).
Converti dinuovoin frazioni decimalinel livello dipresentazione dellatua applicazione dopo chetuttii calcoli sono stati completati.Questo valeindipendentemente dalla lingua o dalframework.
Risposta originale
Non conosco affatto woocommercee quindipotrebbeesserci anche unmodonativo,ma comunque,questo
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
dovrebbe andare.
Il
preg_replace
eliminatuttotrannei caratteri decimalie i duepunti.Seti interessafare calcoli conesso,
floatval
converteil valore da una stringa a unonumerico.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.-
Grazie,l'hogià risolto con una sorta di soluzione davvero.Thanks, I already worked it out with some kind of solution indeed.
- 0
- 2013-09-24
- Trekdrop
-
Per alcunipaesi devi considerare anche la virgola,prova questo "# [^ \ d.,] #"For some countries you have to consider the comma too, try this '#[^\d.,]#'
- 0
- 2017-05-19
- j.c
-
Ti avverto di questoproblema: seimpostipuntie virgolenelleimpostazionigenerali di woocommercepuoi avere risultatiindesiderati con questometodo.Esempio:importo=1.239,90 $puòessere letto come 1.239 $.Suggerirei [questa soluzione] (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
Questo è quello che vuoi:
Lavorare con la variabileglobale:
global $woocommerce; $woocommerce->cart->total;
Lavorare con lafunzione:
WC()->cart->total;
That is what you want:
Working with global variable:
global $woocommerce; $woocommerce->cart->total;
Working with function:
WC()->cart->total;
-
Aggiungi una spiegazione allatua risposta: **perché ** questopotrebbe risolvereilproblema?Please add an explanation to your answer: **why** could that solve the problem?
- 4
- 2014-02-11
- fuxia
-
sì!questofunziona;rimuoveil simbolo della valutayes! this works; it strips the currency symbol
- 0
- 2014-04-05
- numediaweb
-
Se lo usonel carrellofunziona correttamente solo quandoil carrello viene visitato,non se qualcuno usail carrello di aggiornamento ... qualcuno saperché?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
-
Questa dovrebbeessere la risposta corretta. A seconda del contesto (adesempioilmio),anche WC () -> cart->totalfunzionabene.This should be the correct answer. Depending on context (e.g. mine), WC()->cart->total also works nicely.
- 0
- 2015-09-22
- rrrhys
-
in qualsiasipagina dichiari $ woocommerce come variabileglobalee puoi accedere allamaggiorparte delle cose di cui haibisogno.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
-
puoi anche creare un'altra variabile del carrello come questa global $ woocommerce; $ cart=$ woocommerce-> cart->get_cart (); questo contiene le cose relative al carrello; fare unprint_r ($ cart);per accedere ai valori.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
Èpossibile ottenereilprezzototale del carrello senza alcunmarkup.Quindi senzail simbolo €?In questomomento ricevo l'importo con:
questo darà € 16,50
Hoprovato anche questo:
Ma questo dà sempre 0,00
Esiste unafunzione di recupero di woocommerce chefornirà unformatonumerico delprezzototale del carrello?Grazie!