Skip to content

Instantly share code, notes, and snippets.

@woogist
Last active October 4, 2022 10:40
Show Gist options
  • Save woogist/48c776c39df23d53df8d to your computer and use it in GitHub Desktop.
Save woogist/48c776c39df23d53df8d to your computer and use it in GitHub Desktop.
Apply different tax rates based on user role
<?php
/**
* Apply a different tax rate based on the user role.
*/
function wc_diff_rate_for_user( $tax_class, $product ) {
if ( is_user_logged_in() && current_user_can( 'administrator' ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
@tahmidbintaslim
Copy link

Hi ! Is there anyone who used this function for Woocommerce Membership Plugin which has Membership Plans?

@GogoulosT
Copy link

For reference, this is what I now use:

/**
 * Apply a zero tax rate for 'administrator' user role.
 */
function wc_diff_rate_for_user( $tax_class, $product ) {
  $user_id = get_current_user_id();
  $user = get_user_by( 'id', $user_id );

  if ( is_user_logged_in() && ! empty( $user ) && in_array( 'administrator', $user->roles ) ) {
    $tax_class = 'Zero Rate';
  }

  return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );

Hello, can you please help, i need to apply zero tax to everyone except wholesaler role. How is that possible?

Hello

I used this code and worked great for simple products. For variable products i still see prices with VAT.
Please advise

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment