En Woocommerce, me gustaría agregar un 3,5 % al total general (incluida la tarifa de envío). Por ahora estoy usando estos códigos, pero esto solo se calcula sin gastos de envío.
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_donation' ); function woocommerce_custom_donation() { global $woocommerce; if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $percentage = 0.035; // 3.5% // uncomment the line below to include shipping fees in the donation/surcharge calculation // $donation = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage; $donation = $woocommerce->cart->cart_contents_total * $percentage; $woocommerce->cart->add_fee( 'Administration Fees', $donation, true, '' ); }También puedes probar esto.
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_donation',10, 1 ); function woocommerce_custom_donation() { global $woocommerce; if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $percentage = 3.5; $cart_total = $woocommerce->cart->cart_contents_total; $shipping_total = $woocommerce->cart->get_shipping_total() ?: 0; $tax_total = $woocommerce->cart->get_taxes_total() ?: 0; $grand_total = $cart_total + $shipping_total + $tax_total; $donation = $grand_total * $percentage / 100; $woocommerce->cart->add_fee( 'Administration Fees', $donation, true, '' ); }Creo que cuando el producto está en el carrito, el método de entrega (y las tarifas relacionadas) no se conocen/aplican hasta el pago.
Por lo tanto, agregaría una "tarifa de pago" al finalizar la compra, y así después de que el usuario haya seleccionado un método de pago (y por qué no un método de pago)
Si habilita el cálculo de impuestos en la configuración de Woocommerce, también puede configurar un impuesto para todos que también se aplica a las tarifas de envío: