我正在尝试修改“在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;
}
如何使它适用于一组用户角色,而不仅仅是一个?任何帮助都很感激。
因为您有两个阵列要比较:
您可以使用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;
}
}
它现在应该适用于多个用户角色。