为了账号安全,请及时绑定邮箱和手机立即绑定

仅向多个授权用户角色显示 WooCommerce 产品

仅向多个授权用户角色显示 WooCommerce 产品

Helenr 2021-12-03 16:39:12
我正在尝试调整“在 WooCommerce 中对未经授权的用户完全隐藏产品”答案代码,以允许多个自定义用户角色查看此产品。我认为实现这一点的最佳方法是扩展授权用户功能以包含此用户角色。这是我尝试实施但没有成功的更改。有人可以说明如何进行吗?// Conditional function checking for authorized usersfunction is_authorized_user() {    if ( is_user_logged_in() ) {        $user = wp_get_current_user();        $caps = $user->allcaps;        if ( ( isset($caps['edit_product']) && $caps['edit_product'] ) ||        array( 'custom_user_role1', 'custom_user_role2', $user->roles ) )           return true;    } else         return false;}如何使其适用于一系列用户角色,而不仅仅是一个?任何帮助表示赞赏。
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

由于您有 2 个要比较的数组:

  • 您的 2 个自定义角色(在数组中)

  • 当前用户角色(即数组)

您可以使用array_intersect()php 函数使其以这种方式工作:

// Conditional function checking for authorized users

function is_authorized_user(){


    if ( is_user_logged_in() ) {


        $user = wp_get_current_user();

        $caps = $user->allcaps;


        if ( ( isset($caps['edit_product']) && $caps['edit_product'] ) || 

        array_intersect( ['custom_user_role1', 'custom_user_role2'], $user->roles ) ) {

            return true;

        }


        return false; 

    } 

    else {

        return false; 

    }

}

它现在应该适用于多个用户角色。


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 232 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信