根据用户角色删除价格后缀

问题描述 投票:1回答:1

未能基于用户角色添加后缀,因为它不会显示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;
}

这可行,但是我不得不切换用户(我希望管理员和批发商看到后缀)并放入客户等。

问题在于,来宾客户仍然看到后缀。

有人可以建议对已登录的“默认批发商”用户和“管理员”以外的任何人隐藏后缀的方法吗?

谢谢!

woocommerce hide suffix
1个回答
0
投票
您可以为此使用以下内容。此代码显示“如果没有管理员或default_wholesaler”,$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 );

© www.soinside.com 2019 - 2024. All rights reserved.