在WooCommerce中,我正在尝试为客户和来宾用户应用set_is_vat_exempt()
方法。
对于已登录的客户,它工作正常。任何人都可以建议我该怎么做?
一个问题可能是因为用户未登录,因此可能$woocommerce->customer
无法启用它。
这是我的代码:
$bilalId = get_current_user_id();
add_filter( 'woocommerce_cart_totals_order_total_html', 'wc_cart_totals_order_total_html_bn');
function wc_cart_totals_order_total_html_bn() {
global $woocommerce;
if( current_user_can('customer' || $bilalId == 0) ) {
$woocommerce->customer->set_is_vat_exempt(true);
}
}
最后,我只想禁用未登录用户的任何税率。
即使我尝试了“零利率”,但对我没有用。
任何形式的指导都将受到赞赏。
感谢。
答案 0 :(得分:3)
所以你需要的是在一个隐藏在 init
动作钩子中的自定义函数中使用wordpress条件is_user_logged_in()
,这样:
add_action( 'init', 'wc_tax_exempt_unlogged' );
function wc_tax_exempt_unlogged() {
// Getting user data for logged users
if( is_user_logged_in() ){
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;
$current_user_roles = $current_user->roles;
$bilal_id = 0;
}
// Exempting of VAT non logged users, customers and the main admin ID (you)
if( ! is_user_logged_in() || in_array( 'customer', $current_user_roles ) || $bilal_id == $current_user_id ){
WC()->customer->set_is_vat_exempt(true);
}
}
代码进入活动子主题(或主题)的function.php文件或任何插件文件中。
此代码经过测试并有效。