根据WooCommerce中的产品税类调整运输类

时间:2018-11-26 20:21:03

标签: php wordpress woocommerce cart tax

我目前正在尝试对WooCommerce中的产品和运输实施一些动态税收。到目前为止,我已经使用了这种方法: WooCommerce Documentation on Tax Classes and User Roles

用于根据用户数据设置添加到购物车的产品税种。该数据是我创建的管理区域中的自定义复选框。如果选中此复选框,则用户应获得零税率征税。

这在大多数情况下都可以正常工作,但最终会导致两个我无法解决的问题。

1)结帐页面永远不会完全加载(订单摘要和付款选项面板上方始终旋转着“加载”图标) 和

2)运输税未更新。具体来说,如果我从具有营业税和运输税的税种转到零税率税制,则营业税会正确更新(更新为无),但是运输费仍然要缴税。

我在WooCommerce设置中正确设置了税率(零税率没有运费),但是没有任何变化。

我正在使用此过滤器应用更改:

add_filter('woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2);

有人可以帮助我正确设置购物车和结帐的运费吗?

1 个答案:

答案 0 :(得分:1)

  

如果您希望免除特定用户角色的税,这是一种更好的方式WC_Customer类具有一个有趣的属性,该属性为is_vat_exempt

可以使用以下方法将来自特定用户角色的所有客户设置为“免税”:

add_action( 'template_redirect', 'is_user_vat_exempt' );
function is_user_vat_exempt(){
    // Only for logged in users
    if ( ! is_user_logged_in() ) 
        return; 

    // Set specific user role "Vat exempt" if is not set yet
    if ( current_user_can( 'some_user_role' ) && ! WC()->customer->is_vat_exempt() ) {
        WC()->customer->set_is_vat_exempt( true );
    }   
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

这将解决您的所有问题,并且您将需要删除不再需要的相关代码。