我有一个功能,可以根据用户角色应用不同的税率。
function wc_diff_rate_for_user( $tax_class, $product ) {
if ( is_user_logged_in() && current_user_can( 'dealer-price-level' ) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'wc_diff_rate_for_user', 1, 2 );
但是,它仅适用于简单的产品。
对于变体产品,它不适用“零税率”税种。
我必须直接在WooCommerce插件中添加手动修复程序。
A。打开/wp-content/plugins/woocommerce/includes/class-wc-product-variation.php
B。查找行。...
$value = $this->parent_data['tax_class'];
C。替换为...
if ( is_user_logged_in() && current_user_can( 'dealer-price-level' ) ) {
$tax_class = 'Zero Rate';
} else {
$value = $this->parent_data['tax_class'];
}
我知道这是致命的罪行,因为更新后代码将丢失。
但是我完全不知道如何找到长期解决方案。
任何建议表示赞赏。