Php 如何更换woocommerce\u product\u tax\u类弃用挂钩?

Php 如何更换woocommerce\u product\u tax\u类弃用挂钩?,php,wordpress,woocommerce,product,hook-woocommerce,Php,Wordpress,Woocommerce,Product,Hook Woocommerce,我的错误日志中出现以下错误:woocommerce\u product\u tax\u类自3.0.0版以来已被弃用!改用woocommerce\u product\u get\u tax\u类。 我有以下功能来显示不同的用户角色和不同的税务类别。我是否可以直接将“woocommerce\u product\u tax\u class”更改为“woocommerce\u product\u get\u tax\u class”,或者该函数是否需要重新编写 function wc_diff_rate

我的错误日志中出现以下错误:woocommerce\u product\u tax\u类自3.0.0版以来已被弃用!改用woocommerce\u product\u get\u tax\u类。

我有以下功能来显示不同的用户角色和不同的税务类别。我是否可以直接将“woocommerce\u product\u tax\u class”更改为“woocommerce\u product\u get\u tax\u class”,或者该函数是否需要重新编写

function wc_diff_rate_for_user( $tax_class, $product ) {
        // Getting the current user 
        $current_user = wp_get_current_user();
        $current_user_data = get_userdata($current_user->ID);
    
        if ( in_array( 'eu_no_duty', $current_user_data->roles ) )
            $tax_class = 'Zero Rate';
      
      elseif ( in_array( 'eu_no_vat', $current_user_data->roles ) )
            $tax_class = 'Zero Rate';
      
      elseif ( in_array( 'eu_trusted', $current_user_data->roles ) )
            $tax_class = 'Zero Rate';
    
        return $tax_class;
    }
    add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );

因此,自woocommerce 3以来,hook
woocommerce\u product\u tax\u class
就被弃用,取而代之的是
woocommerce\u product\u tax\u class
woocommerce\u product\u variation\u get\u tax\u class
钩子

请改用以下简化代码:

add_filter( 'woocommerce_product_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
function tax_rate_based_on_user_role( $tax_class, $product ) {
    $roles   = array('eu_no_duty', 'eu_no_vat', 'eu_trusted'); // Here define user roles
    $user    = wp_get_current_user(); // Get current WP_User object 

    $matches = array_intersect( $user->roles, $roles ); // Check for matching user roles

    if ( ! empty($matches) ) {
        $tax_class = 'Zero Rate';
    }
    return $tax_class;
}
代码进入活动子主题(或活动主题)的functions.php文件。它应该更有效