我正在嘗試調整“在 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
提交
取消