【问题标题】:How to hide "WooCommerce" from menu for non admin?如何从非管理员菜单中隐藏“WooCommerce”?
【发布时间】:2017-04-01 17:05:53
【问题描述】:
我尝试了以下方法,但没有成功
add_action( 'admin_menu', 'wpse28782_remove_menu_items' );
function remove_menus(){
remove_menu_page( 'edit.php?post_type=shop_order' );
}
add_action( 'admin_menu', 'remove_menus' );
如何隐藏它?
【问题讨论】:
标签:
wordpress
woocommerce
wordpress-theming
hook-woocommerce
【解决方案1】:
一种选择是使用管理菜单编辑器插件,它可以让您根据用户权限修改管理菜单。
https://en-au.wordpress.org/plugins/admin-menu-editor/
或者,您可以使用基于用户能力的解决方案,这将针对没有管理员权限的任何人:
add_action( 'admin_menu', 'no_woo' );
function no_woo() {
if ( current_user_can('manage_options') == false ) {
remove_menu_page( 'woocommerce' );
}
}
【解决方案2】:
案例 1:修改代码以实现此目的,(通用解决方案)
您可以使用以下方式进行调试:
add_action( 'admin_init', 'wodebug_admin_menu' );
function wodebug_admin_menu() {
echo '<pre>' . print_r( $GLOBALS[ 'menu' ], TRUE) . '</pre>';
}
这为 Contact Form 7 插件菜单页面提供(对于我的设置)以下内容:
[27] => Array
(
[0] => Formular
[1] => wpcf7_read_contact_forms
[2] => wpcf7
[3] => Contact Form 7
[4] => menu-top menu-icon-generic toplevel_page_wpcf7 menu-top-last
[5] => toplevel_page_wpcf7
[6] => none
)
获取密钥并申请您的案例。
add_action( 'admin_init', 'wpse_136058_remove_menu_pages' );
function wpse_136058_remove_menu_pages() {
remove_menu_page( 'edit.php?post_type=acf' );
remove_menu_page( 'wpcf7' ); // Key place in this
}
案例 2:使用插件。
http://wordpress.org/plugins/adminimize/