我正在尝试调整“在 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;
}
}
它现在应该适用于多个用户角色。
添加回答
举报
0/150
提交
取消