0
如何限制具有特定角色(店鋪經理)的用戶訪問選定的woocommerce設置標籤。 我問了一個類似的問題here,但答案只會隱藏顯示的選項卡,但如果用戶直接輸入url,則不會限制用戶訪問頁面。從woocommerce結帳設置選項卡限制店鋪經理
我似乎無法弄清楚這一點。
如何限制具有特定角色(店鋪經理)的用戶訪問選定的woocommerce設置標籤。 我問了一個類似的問題here,但答案只會隱藏顯示的選項卡,但如果用戶直接輸入url,則不會限制用戶訪問頁面。從woocommerce結帳設置選項卡限制店鋪經理
我似乎無法弄清楚這一點。
這是不是很漂亮,但是,將工作:
add_filter('woocommerce_settings_tabs_array','remove_setting_tab', 50);
function remove_setting_tab($settings_tabs) {
//Default Tabs are :
//array(8) { ["general"]=> string(7) "General" ["products"]=> string(8) "Products" ["tax"]=> string(3) "Tax" ["checkout"]=> string(8) "Checkout" ["shipping"]=> string(8) "Shipping" ["account"]=> string(8) "Accounts" ["email"]=> string(6) "Emails" ["api"]=> string(3) "API" }
$user = wp_get_current_user();
if (isset($user->roles[0]) && $user->roles[0] == 'shop_manager') {
unset($settings_tabs['general']);// = array();
}
return $settings_tabs;
}
add_filter('woocommerce_general_settings', 'setting_tab_empty_content');
function setting_tab_empty_content($settings){
$user = wp_get_current_user();
if (isset($user->roles[0]) && $user->roles[0] == 'shop_manager') {
if ($_SERVER['REQUEST_URI']=='/wp-admin/admin.php?page=wc-settings&tab=general')
{
die('<strong>No permissions</strong>');
}
}
}
@loicTheAztec,第一:由於模具();它不乾淨,並且由於$ _SERVER ['REQUEST_URI']檢查它可以防止WP函數的其餘部分運行,並且第二次檢查它:應該是更準確的檢查。但它是一個絕望的解決方案的解決方法。 –
不知道爲什麼它不適合我。 unset部分工作正常,但die()導致此錯誤 警告:爲foreach()提供的無效參數在C:\ xampp \ htdocs \ 9ja \ wp-content \ plugins \ woocommerce \ includes \ admin \ class-wc 207行的-admin-settings.php –