Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除'的子菜单;添加订单';WoodPress管理仪表板上的WooCommerce_Php_Wordpress_Woocommerce_Backend_Dashboard - Fatal编程技术网

Php 删除'的子菜单;添加订单';WoodPress管理仪表板上的WooCommerce

Php 删除'的子菜单;添加订单';WoodPress管理仪表板上的WooCommerce,php,wordpress,woocommerce,backend,dashboard,Php,Wordpress,Woocommerce,Backend,Dashboard,我的WooCommerce版本是4.5.2 我想删除自定义用户的“添加订单”,使其无法访问wp admin/post new.php?post\u type=shop\u order 我已使用具有以下权限的用户角色编辑器创建了自定义用户: 这样,用户只能查看现有订单,并单击订单预览更新为“已完成” 我试着用这个: remove_子菜单_页面('edit.php?post_type=shop_order','post new.php?post_type=shop_order'); …但无法访问订

我的WooCommerce版本是4.5.2

我想删除自定义用户的“添加订单”,使其无法访问
wp admin/post new.php?post\u type=shop\u order

我已使用具有以下权限的用户角色编辑器创建了自定义用户:

这样,用户只能查看现有订单,并单击订单预览更新为“已完成”

我试着用这个:

remove_子菜单_页面('edit.php?post_type=shop_order','post new.php?post_type=shop_order');
…但无法访问订单主菜单

我看到了这篇文章,它使用CSS在页面中隐藏了“添加顺序”

我希望有人能为我指明一个方向,告诉我如何实现我所追求的目标


更新:

根据7uc1f3r的回答,这是我的输出

[edit.php?post_type=shop_order] => Array
    (
        [5] => Array
            (
                [0] => Orders 
                [1] => edit_shop_orders 
                [2] => edit.php?post_type=shop_order
            )
            
        [10] => Array
            ( 
                [0] => Add order 
                [1] => edit_shop_orders 
                [2] => post-new.php?post_type=shop_order 
            )
    ) 
使用提供的解决方案,我使用它,以便自定义用户无法添加订单并访问wp admin/post new.php?post_type=shop_order:

    unset( $submenu['edit.php?post_type=shop_order'][10][0] );
    unset( $submenu['edit.php?post_type=shop_order'][10][1] );
    unset( $submenu['edit.php?post_type=shop_order'][10][2] );
此外,我应用CSS在管理面板上隐藏“添加顺序”:

    ul.wp-submenu.wp-submenu-wrap {
        display: none !important;
    }
现在看起来是这样的:


我使用的是
WC 4.4.1
&
WC 4.6.0
,在这两个版本中都无法从菜单创建新订单

更新:由于您发布的输出,这应该足以删除“订单:添加新的”

功能操作管理菜单(){
全局$菜单,$子菜单;
//取消设置“订单:添加新”
取消设置($edit.php?post_type=shop_order'][10]子菜单);
}
添加操作(“管理菜单”、“操作管理菜单”);

可选:对于“产品:添加新”和调试,您可以使用

//调试:这将在仪表板上显示完整的wordpress管理菜单,仅供管理员使用。(随后移除)
功能调试\管理\菜单(){
全局$菜单,$子菜单,$pagenow;
如果(当前用户可以(“管理选项”)){
如果($pagenow=='index.php'){//在仪表板上打印
回显“”,打印($menu,1),“”;//顶级菜单
回显“”,打印($submenu,1),“”;//子菜单
}
}
}
添加操作(“管理通知”、“调试管理菜单”);
功能操作\管理\菜单(){
全局$菜单,$子菜单;
//取消设置“产品:添加新”
取消设置($edit.php?post_type=product'][10]子菜单);
}
添加操作(“管理菜单”、“操作管理菜单”);

相关的:


我已经回答了您的问题,因为我没有相同的选项(可能是通过插件添加的?)。我希望收到您的反馈,然后我可以相应地调整我的答案。衷心感谢@7uc1f3r,这是一个了不起的解决方案!我使用“用户角色编辑器”插件创建了一个自定义的WooCommerce角色,如上图所示,我还应用了一些钩子。@chubby我现在调整了你的问题和我的答案。您可以随意删除上面的注释,并输出调试信息。当做