php - remove_submenu_page('woocommerce', 'wc-admin'); 功能不删除仪表板
问题描述
我在 WordPress 中为 WooCommerce 创建了一个新角色。我需要这个角色看到的唯一事情是:
- WooCommerce --> 仅限订单
- 用户 - 所有子菜单
- WP All Import - 除设置外的所有子菜单
- WP All Export - 除设置外的所有子菜单
我成功减少到列表,但在隔离 WooCommerce 仪表板子菜单时遇到问题。
我使用此代码获取完整列表:
if (!function_exists('debug_admin_menus')):
function debug_admin_menus() {
if ( !is_admin())
return;
global $submenu, $menu, $pagenow;
if ( current_user_can('manage_options') ) { // ONLY DO THIS FOR ADMIN
if( $pagenow == 'index.php' ) { // PRINTS ON DASHBOARD
echo '<pre>'; print_r( $menu ); echo '</pre>'; // TOP LEVEL MENUS
echo '<pre>'; print_r( $submenu ); echo '</pre>'; // SUBMENUS
}
}
}
add_action( 'admin_notices', 'debug_admin_menus' );
endif;
我发现该组件是: wc-admin 我在其中添加了:
remove_submenu_page('woocommerce', 'wc-admin');
但它并没有删除它。有谁知道为什么?我也试过:
add_action( 'admin_menu', 'remove_menu_pages', 999);
function remove_menu_pages() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
if($user_role == "custom_shop_admin") {
$remove_submenu = remove_submenu_page('woocommerce', 'wc-admin');
}
}
我查找的所有地方都有('woocommerce','wc-admin')作为仪表板。不确定我是否无法删除它,将其重定向到订单页面,也许仅适用于该角色。我知道最近有一个 WooCommerce 更新,所以不确定这是否与它有关。
谢谢!
解决方案
我知道它已经很久没有在这里说话了。我有同样的问题。我已经想通了,它可能会帮助人们在未来快速解决问题。这是解决方案。
function remove_menus_custom(){
global $current_user;
if(is_admin(){
remove_submenu_page('woocommerce','wc-admin');
}
}
add_action( 'admin_menu', 'remove_menus_custom', 999 );
推荐阅读
- saml-2.0 - LDAP 是否支持 SAML 2.0 请求?
- r - acf() 函数“lag.max”参数说明
- mongodb - 相同的 mongodb 查询给出不同的解释计划
- sql-server - 使用 sqlcmd 时仅返回受影响的 N 行
- webpack - SyntaxError:意外的关键字“const”。严格模式不支持 const 声明
- javafx-8 - 我想在编辑表格视图单元格文本字段后,当我输入时我想自动建议单词
- apache-spark - 使用 Overwrite 模式时 Spark 不会删除 MemSql 中的旧数据
- python - 如何减少 Django 在查询子模型属性时进行的数据库调用次数?
- asp.net-mvc - 我想在 kendo ui gridview Nopcommerce 中添加 if 条件
- yii2 - SELECT 中的子查询使用 Yii2 ActiveRecord