猿问

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

我正在尝试调整“在 WooCommerce 中对未经授权的用户完全隐藏产品”答案代码,以允许多个自定义用户角色查看此产品。我认为实现这一点的最佳方法是扩展授权用户功能以包含此用户角色。


这是我尝试实施但没有成功的更改。有人可以说明如何进行吗?


// 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( 'custom_user_role1', 'custom_user_role2', $user->roles ) )

           return true;

    } else 

        return false;

}

如何使其适用于一系列用户角色,而不仅仅是一个?任何帮助表示赞赏。


Helenr
浏览 233回答 1
1回答

郎朗坤

由于您有 2 个要比较的数组:您的 2 个自定义角色(在数组中)当前用户角色(即数组)您可以使用array_intersect()php 函数使其以这种方式工作:// 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_intersect( ['custom_user_role1', 'custom_user_role2'], $user->roles ) ) {            return true;        }        return false;     }     else {        return false;     }}它现在应该适用于多个用户角色。
随时随地看视频慕课网APP

相关分类

Python
我要回答