Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

505
Vistas
Obtenga el total de impuestos del carrito mediante programación en WooCommerce

¿Cómo se obtiene el total de impuestos en WooCommerce en la página functions.php en WordPress, usando:

 global $woocommerce; $discount = $woocommerce->cart->tax_total;

Pero no está devolviendo ningún valor.

¿Cómo puedo obtener el total de impuestos del carrito?

Esencialmente, quiero que el impuesto se calcule para el usuario, pero luego lo reduzca, ya que el cliente pagará los impuestos sobre COD.

Código completo a continuación:

 add_action( 'woocommerce_calculate_totals', 'action_cart_calculate_totals', 10, 1 ); function action_cart_calculate_totals( $cart_object ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; if ( !WC()->cart->is_empty() ): $cart_object->cart_contents_total *= .10 ; endif; } //Code for removing tax from total collected function prefix_add_discount_line( $cart ) { global $woocommerce; $discount = $woocommerce->cart->tax_total; $woocommerce->cart->add_fee( __( 'Tax Paid On COD', 'your-text-domain' ) , - $discount ); } add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line' );
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

  1. global $woocommerce; $woocommerce->cart está obsoleto para Cart. Utilice WC()->cart en su lugar.
    Aquí puede usar directamente el argumento $cart (objeto) en su lugar...
  2. La propiedad correcta es taxes en lugar de tax_total .
  3. Es mejor usar el método WC_Cart get_taxes() para ser compatible con WooCommerce versión 3.0+

Para lograr lo que está intentando, su código será:

 // For Woocommerce 2.5+ (2.6.x and 3.0) add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line', 10, 1 ); function prefix_add_discount_line( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $discount = 0; // Get the unformated taxes array $taxes = $cart->get_taxes(); // Add each taxes to $discount foreach($taxes as $tax) $discount += $tax; // Applying a discount if not null or equal to zero if ($discount > 0 && ! empty($discount) ) $cart->add_fee( __( 'Tax Paid On COD', 'your-text-domain' ) , - $discount ); }

El código va en el archivo function.php de su tema secundario activo (o tema) o también en cualquier archivo de complemento.

Este código está probado y funciona.

about 4 years ago · Santiago Trujillo Denunciar

0

Está utilizando un nombre de función incorrecto. La función correcta es la siguiente: -

 WC()->cart->get_tax_totals( );

En lugar de usar $woocommerce->cart->tax_total; para obtener el impuesto total del carrito, puede hacerlo restando el total del carrito sin impuestos del total del carrito.

Puede hacer esto siguiendo el código: -

 $total_tax = floatval( preg_replace( '#[^\d.]#', '', WC()->cart->get_cart_total() ) ) - WC()->cart->get_total_ex_tax();

Si desea obtener una matriz para todos los impuestos, puede obtener el siguiente código: -

 WC()->cart->get_taxes( );
about 4 years ago · Santiago Trujillo Denunciar

0

Podemos usar esta función que funcionó para mí.

 WC()->cart->get_total_tax();
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda