Ottenere il prezzo totale del carrello Woocommerce in formato numerico
È possibile ottenere il prezzo totale del carrello senza markup aggiuntivi, quindi senza il simbolo €? Attualmente sto ottenendo l'importo con:
$totalamount = $woocommerce->cart->get_cart_total();
questo restituirà €16.50
Ho provato anche questo:
$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, '.', '');
Ma questo restituisce sempre 0.00
Esiste una funzione get di WooCommerce che restituirà il prezzo totale del carrello in formato numerico? Grazie!
Per favore aggiungi una spiegazione alla tua risposta: perché potrebbe risolvere il problema?

Se uso questo nel carrello funziona correttamente solo quando si visita il carrello, non se qualcuno usa aggiorna carrello... qualcuno sa perché?

Questa dovrebbe essere la risposta corretta. A seconda del contesto (ad esempio il mio), anche WC()->cart->total funziona bene.

in qualsiasi pagina puoi dichiarare $woocommerce come variabile globale e poi puoi accedere alla maggior parte delle cose che ti servono.

puoi anche creare un'altra variabile del carrello in questo modo: global $woocommerce; $cart = $woocommerce->cart->get_cart();
questo contiene le informazioni relative al carrello;
usa print_r( $cart ); per accedere ai valori.

https://docs.woocommerce.com/wc-apidocs/source-class-WC_Cart.html#288-298

Aggiornamento 2020
Risposta
Vedi la risposta di flytech per una soluzione che utilizza l'API nativa di WooCommerce.
Nota / Avvertenza
Se devi eseguire operazioni aritmetiche corrette con valori monetari, utilizza sempre interi con segno (!) che rappresentano la più piccola denominazione di una determinata valuta (centesimi, penny, paisa, dirham, ecc.).
Converti nuovamente in frazioni decimali solo a livello di presentazione dell'applicazione dopo che tutti i calcoli sono stati completati.
Questo vale indipendentemente dal linguaggio o dal framework utilizzato.
Risposta originale
Non conosco affatto WooCommerce e quindi potrebbe esserci anche un modo nativo, ma comunque, questo
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
dovrebbe funzionare.
La funzione preg_replace
elimina tutto tranne i caratteri decimali e i punti.
Se hai bisogno di fare calcoli con questo valore, floatval
converte il valore da stringa a numerico.

Per alcuni paesi devi considerare anche la virgola, prova questo '#[^\d.,]#'

Ti avviso riguardo a questo problema: se imposti punti e virgole nelle impostazioni generali di woocommerce puoi ottenere risultati indesiderati con questo metodo. Esempio: importo = 1.239,90$ può essere letto come 1,239$. Suggerirei questa soluzione
