Obține prețul total al coșului Woocommerce în format numeric
Este posibil să obțin prețul total al coșului fără markup suplimentar, deci fără simbolul €? În prezent obțin suma folosind:
$totalamount = $woocommerce->cart->get_cart_total();
aceasta va returna €16.50
Am încercat și această variantă:
$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, '.', '');
Dar aceasta returnează întotdeauna 0.00
Există vreo funcție WooCommerce care să returneze prețul total al coșului în format numeric? Mulțumesc!
Te rog să adaugi o explicație la răspunsul tău: de ce ar putea rezolva problema?

Dacă folosesc asta în coș, funcționează corect doar când coșul este vizitat, nu dacă cineva folosește actualizarea coșului... știe cineva de ce?

Acesta ar trebui să fie răspunsul corect. În funcție de context (de exemplu, în cazul meu), WC()->cart->total funcționează de asemenea foarte bine.

pe orice pagină poți declara $woocommerce ca variabilă globală și apoi poți accesa majoritatea lucrurilor de care ai nevoie.

poți crea și o altă variabilă pentru coș în felul următor global $woocommerce; $cart = $woocommerce->cart->get_cart();
aceasta conține informațiile legate de coș;
folosește print_r( $cart ); pentru a accesa valorile.

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

Actualizare 2020
Răspuns
Consultați răspunsul lui flytech pentru o soluție folosind API-ul nativ WooCommerce.
Notă / Avertisment
Dacă intenționați să efectuați calcule aritmetice corecte cu valori monetare, utilizați întotdeauna numere întregi semnate (!) care reprezintă cea mai mică denominație a unei monede date (Cent, Penny, Paisa, Dirham, etc.).
Convertiți înapoi în fracții zecimale doar în stratul de prezentare al aplicației după ce toate calculele au fost finalizate.
Acest lucru este valabil indiferent de limbajul sau framework-ul utilizat.
Răspuns original
Nu cunosc woocommerce deloc și, prin urmare, poate exista și o metodă nativă, dar oricum, acest cod
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
ar trebui să funcționeze.
Funcția preg_replace
elimină totul, cu excepția caracterelor zecimale și a punctelor.
Dacă doriți să efectuați calcule matematice cu această valoare, floatval
convertește valoarea dintr-un șir de caractere într-una numerică.

Pentru unele țări trebuie să iei în considerare și virgula, încearcă asta '#[^\d.,]#'

Aș avertiza despre această problemă: dacă setezi puncte și virgule în setările generale woocommerce, poți avea rezultate nedorite cu această metodă. Exemplu: suma = 1.239,90$ poate fi citită ca 1,239$. Aș sugera această soluție
