php - tag - Obtenga cantidad total de carritos de woocommerce
tags wordpress codex (6)
Estoy intentando aplicar un descuento al precio total de un carrito, pero solo puedo hacerlo al precio base del artículo y no al precio total. Busqué en Google y encontré esta publicación en wordpress stackoverflow:
$ amount = floatval (preg_replace (''# [^ / d.] #'', '''', $ woocommerce-> carro-> get_cart_total ())); El preg_replace elimina todo excepto caracteres decimales y dos puntos.
Si le interesa hacer cálculos matemáticos, floatval convierte el valor de una cadena en una numérica.
Intenté agregar:
$amount2 = floatval( preg_replace( ''#[^/d.]#'', '''', $woocommerce->cart->get_cart_total() ) );
y cambiando
$discount = round( (($discounting_amount / 100 ) * $this->amount)*-1, WC()->cart->dp);
a
$discount = round( (($discounting_amount / 100 ) * $amount2)*-1, WC()->cart->dp);
Pero me sale el siguiente error:
Fatal error: Call to a member function get_cart_total() on a non-object in...
Debe llamar a la variable global para asegurarse de que obtiene los valores correctos.
Si agrega
global $woocommerce;
justo antes
$amount2 = floatval( preg_replace( ''#[^/d.]#'', '''', $woocommerce->cart->get_cart_total() ) );
eso debería resolver tu problema.
Prueba esto:
WC()->cart->cart_contents_total
La función get_cart_total utiliza la función wc_price thas convierte cart_contents_total en moneda.
Esto funciona perfectamente y elimina el símbolo de moneda:
$woocommerce->cart->total;
Esto también funciona bien.
WC()->cart->total
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
También puede convertir $ cantidad en valor flotante según su requisito.
Para mostrar el total de los carros, incluidos los impuestos y descuentos, use este
$ordertotal = wp_kses_data( WC()->cart->get_total() );