在WooCommerce中为免税客户禁用税

问题描述

我为WooCommerce安装启用了税收。它计算居住在我州的所有客户的税金(基于他们的收货地址)。这是WooCommerce的默认设置。

某些客户免税,因此不应该纳税。我在用户个人资料中创建了一个自定义字段,可以在其中选中一个框来免除客户的税款。这可以正常工作。

我试图找到一个钩子,可以在其中使用该选项禁用税收,但是我拥有的代码导致所有用户的结帐页面均为空白。没有错误消息显示。

我的functions.php代码如下:

///////////////////////////////////////
/* Tax exempt customers */
///////////////////////////////////////

// Add tax exempt custom user field in admin
add_action( 'show_user_profile','add_customer_tax_exempt_checkbox',10 );
add_action( 'edit_user_profile',10 );
function add_customer_tax_exempt_checkbox( $user )
{
    ?>
    <h3><?php _e("Tax status"); ?></h3>
    <table class="form-table">
        <tr>
            <th><?php _e("Tax exempt"); ?></th>
            <td>
    <?php

    woocommerce_form_field( 'tax_exempt',array(
        'type'      => 'checkbox','class'     => array('input-checkbox'),'label'     => __('Allowed'),),get_user_meta( $user->id,'tax_exempt',true ) );

    ?>
            </td>
        </tr>
    </table>
    <?php
}

// Save allowed custom user field in admin
add_action( 'personal_options_update','save_customer_tax_exempt_checkbox' );
add_action( 'edit_user_profile_update','save_customer_tax_exempt_checkbox' );
function save_customer_tax_exempt_checkbox( $user_id )
{
    if ( current_user_can( 'edit_user',$user_id ) ) {
        update_user_meta( $user_id,isset($_POST['tax_exempt']) ? '1' : '0' );
    }
}

// Enabling or disabling tax calculation at checkout
add_filter( 'woocommerce_product_tax_class','disable_tax_calculation' );
function disable_tax_calculation( $tax_class,$product ) {
   if ( get_user_meta( get_current_user_id(),true ) ) {
        $tax_class = 'Zero Rate';
   }
   return $tax_class;
}

///////////////////////////////////////
/* END: Tax exempt customers */
///////////////////////////////////////

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)