Obtener el precio total del carrito de Woocommerce en formato numérico
¿Es posible obtener el precio total del carrito sin ningún formato? ¿Es decir, sin el símbolo €? Actualmente estoy obteniendo el monto con:
$totalamount = $woocommerce->cart->get_cart_total();
esto devolverá €16.50
También intenté esto:
$totalamount = number_format($woocommerce->cart->get_cart_total(), 2, '.', '');
Pero esto siempre devuelve 0.00
¿Existe alguna función de Woocommerce que devuelva el precio total del carrito en formato numérico? ¡Gracias!
Por favor, agrega una explicación a tu respuesta: ¿por qué podría eso resolver el problema?

Si uso esto en el carrito, solo funciona correctamente cuando se visita el carrito, no si alguien usa actualizar carrito... ¿alguien sabe por qué?

Esta debería ser la respuesta correcta. Dependiendo del contexto (como el mío), WC()->cart->total también funciona bien.

en cualquier página puedes declarar $woocommerce como variable global y luego podrás acceder a la mayoría de las cosas que necesitas.

también puedes crear otra variable del carrito así: global $woocommerce; $cart = $woocommerce->cart->get_cart();
esto contiene lo relacionado con el carrito;
haz un print_r( $cart ); para acceder a los valores.

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

Actualización 2020
Respuesta
Consulta la respuesta de flytech para una solución que utiliza la API nativa de WooCommerce.
Nota / Advertencia
Si vas a realizar operaciones aritméticas con valores monetarios, siempre utiliza enteros con signo (!) que representen la denominación más pequeña de una moneda dada (Centavo, Penny, Paisa, Dirham, etc.).
Solo convierte de vuelta a fracciones decimales en la capa de presentación de tu aplicación después de que todos los cálculos estén completos.
Esto aplica independientemente del lenguaje o framework que utilices.
Respuesta original
No conozco woocommerce en absoluto y por lo tanto puede que exista una forma nativa también, pero de cualquier manera, esto
$amount = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
debería funcionar.
El preg_replace
elimina todo excepto los caracteres decimales y los puntos.
Si necesitas realizar operaciones matemáticas con él, el floatval
convierte el valor de una cadena a uno numérico.

Para algunos países también debes considerar la coma, prueba esto '#[^\d.,]#'

Te advertiría sobre este problema: si configuras puntos y comas en los ajustes generales de WooCommerce puedes obtener resultados no deseados con este método. Ejemplo: cantidad = 1.239,90$ puede leerse como 1,239$. Sugeriría esta solución
