Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在woocommerce中添加税后计算的自定义费用_Php_Wordpress_Woocommerce_E Commerce - Fatal编程技术网

Php 如何在woocommerce中添加税后计算的自定义费用

Php 如何在woocommerce中添加税后计算的自定义费用,php,wordpress,woocommerce,e-commerce,Php,Wordpress,Woocommerce,E Commerce,我已使用以下代码将自定义费用添加到我的结帐页面: add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' ); function woocommerce_custom_surcharge() { global $woocommerce; if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return

我已使用以下代码将自定义费用添加到我的结帐页面:

add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
    global $woocommerce;

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;

    $percentage = 0.03;
    $surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total + $woocommerce->cart->tax_total ) * $percentage;
    $woocommerce->cart->add_fee( 'My Fee', $surcharge, false, '' );

}
除了加税外,一切正常。我想加上

$woocommerce->cart->tax_total
将执行此操作,但该值返回0


在计算这笔费用之前,有什么办法可以计算税金吗?

我不确定这是否是处理这个问题的正确方法

但是,我已经找到了解决我问题的有效方法

我刚刚计算了税款,并将其添加到费用计算中

add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

    $percentage = 0.03;
    $taxes = array_sum($woocommerce->cart->taxes);
    $surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total + $taxes ) * $percentage;   
    // Make sure that you return false here.  We can't double tax people!
    $woocommerce->cart->add_fee( 'Processing Fee', $surcharge, false, '' );

}
我从电话里听到了下面这句话。注意将应税变量设置为false,以避免双重征税

$taxes = array_sum($woocommerce->cart->taxes);

以下是如何获取总税收:

$total_taxes = array_sum($woocommerce->cart->get_taxes());

您是否删除了默认的添加操作?
add\u-fee
的第一个参数也是一个字符串。请看:@Musk抱歉,代码有点乱。我用这个arg打印出了税收总额。通常是一个字符串,比如“特殊费用”之类的。我不知道如何处理这个问题,但这里的课程文档可能会帮助你找到答案<代码>https://docs.woothemes.com/wc-apidocs/source-class-WC_Cart.html#737-763已针对WooCommerce 2.4.7进行了测试,并按预期运行。这并没有正确计算您的税费。这将为您提供购物车小计的税费,并且不会将运输税(或任何其他税费)考虑在内。@adamj我不确定您的意思。我的目标是根据购物车的小计计算税费,然后将该金额加上运费和海关附加费。听起来你是在建议我对所有东西征税,而这正是我试图避免的。正如问题中所述,你的目标是获得
税收总额。上面的方法并没有给你税收总额,它只是给你小计的税收。除非这是你想要的,否则我建议你改变它。