未能基于用户角色添加后缀,因为它不会显示Woo价格显示简码,我现在正从另一个方向解决此问题-我已将后缀添加到Woos税标签中,现在却想删除后缀(来自除一个以外的所有用户角色)。
我在github上找到了此代码以从产品中删除后缀:
add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 2 );
function custom_woocommerce_get_price_suffix( $price_display_suffix, $product ) {
if ( ! $product->is_taxable() ) {
return '';
}
return $price_display_suffix;
}
并且我已经对其进行了修改,以对某些用户类型隐藏后缀
add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 2 );
function custom_woocommerce_get_price_suffix( $price_display_suffix, $product ) {
// check current user role
$user = wp_get_current_user();
$roles = ( array ) $user->roles;
if ( in_array( 'administrator', $roles ) ) {
$price = $your_suffix;
} elseif ( in_array( 'default_wholesaler', $roles ) ) {
$price = '$your_suffix';
return '';
}
return $price_display_suffix;
}
这可行,但是我不得不切换用户(我希望管理员和批发商看到后缀)并放入客户等。
问题在于,来宾客户仍然看到后缀。
有人可以建议对已登录的“默认批发商”用户和“管理员”以外的任何人隐藏后缀的方法吗?
谢谢!
$price_display_suffix = '';
function custom_woocommerce_get_price_suffix( $price_display_suffix, $product ) {
// check current user role
$user = wp_get_current_user();
$roles = ( array ) $user->roles;
// if NOT in array user roles
if ( !in_array( 'administrator', $roles ) ) {
$price_display_suffix = '';
} elseif ( !in_array( 'default_wholesaler', $roles ) ) {
$price_display_suffix = '';
}
return $price_display_suffix;
}
add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 2 );