【发布时间】:2020-03-12 14:58:38
【问题描述】:
我在 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 更新,所以不确定这是否与它有关。
谢谢!
【问题讨论】:
-
检查
$remove_submenu的值,remove_submenu_page 上的文档说这是错误的,如果未找到子菜单并因此未删除 -
谢谢亚历克斯,我实际上是通过上面的代码做到了这一点,我在其中一个建议中尝试了替代方法,但它只是在错误日志文件中引入了空白条目。我通过仪表板显示它的第一种方式
-
[woocommerce] => Array ( [0] => Array ( [0] => Dashboard [1] => view_woocommerce_reports [2] => wc-admin [3] => Dashboard -
也试过了:admin.php?page=wc-admin
-
你能解决这个问题吗?我也有同样的情况。
标签: php wordpress woocommerce