在WooCommerce中,我有一些自定义代码来隐藏特定用户角色的增值税,并且它适用于所有角色,除了名为白金之外的所有角色都完全适用,其中不隐藏增值税但仍然是所有默认用户角色。在WooCommerce中为特定用户角色隐藏增值税
我需要的是这个代码隐藏增值税铂金也 - 它为其他角色我列出
我怎样才能使我的“白金”用户角色的工作吗?
这是我使用的代码:
/**
* Function that will check for user role and turn off VAT/tax for that role
*/
function wc_diff_rate_for_user() {
// check for the user role
if (is_user_logged_in() && current_user_can('bronze', 'sølv', 'guld', 'platinum')) {
// set the customer object to have no VAT
WC()->customer->is_vat_exempt = true;
}
}
add_action('template_redirect', 'wc_diff_rate_for_user', 1);
/**
* Function that filters the variable product hash based on user
*/
function wc_get_variation_prices_hash_filter($hash, $item, $display) {
// check for the user role
if (is_user_logged_in() && current_user_can('bronze', 'sølv', 'guld', 'platinum')) {
// clear key 2, which is where taxes are
$hash['2'] = array();
}
// return the hash
return $hash;
}
add_filter('woocommerce_get_variation_prices_hash', 'wc_get_variation_prices_hash_filter', 1, 3);
/**
* Function that removes the price suffix (inc. Tax) from variable products based on role
*/
function wc_get_price_suffix_filter($price_display_suffix, $item) {
// check for the user role
if (is_user_logged_in() && current_user_can('bronze', 'sølv', 'guld', 'platinum')) {
// return blank if it matches
return '';
}
// return if unmatched
return $price_display_suffix;
}
add_filter('woocommerce_get_price_suffix', 'wc_get_price_suffix_filter', 10, 2);
//B2B Roller
add_role('bronze', __(
'Bronze'),
array(
'read' => false, // Allows a user to read
'create_posts' => false, // Allows user to create new posts
'edit_posts' => false, // Allows user to edit their own posts
)
);
add_role('sølv', __(
'Sølv'),
array(
'read' => false, // Allows a user to read
'create_posts' => false, // Allows user to create new posts
'edit_posts' => false, // Allows user to edit their own posts
)
);
add_role('guld', __(
'Guld'),
array(
'read' => false, // Allows a user to read
'create_posts' => false, // Allows user to create new posts
'edit_posts' => false, // Allows user to edit their own posts
)
);
add_role('platinum', __(
'Platinum'),
array(
'read' => false, // Allows a user to read
'create_posts' => false, // Allows user to create new posts
'edit_posts' => false, // Allows user to edit their own posts
)
);
当我用当前的代码替换它时,会出现一个错误。我在帖子顶部附加了错误,因为在这里发帖太久了。 – eMikkelsen
@eMikkelsen我已经更新了条件函数(最后)。试试吧。谢谢 – LoicTheAztec
这工作!太棒了! – eMikkelsen