当前位置: 首页 > 知识库问答 >
问题:

删除WordPress管理仪表板上WooCommerce中添加订单的子菜单

栾耀
2023-03-14

我的WooCommerce版本是4.5。2.

我想删除自定义用户的添加顺序,使其无法访问wp-admin/post-new.php?post_type=shop_order

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

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

我试着用这个:

remove_submenu_page( 'edit.php?post_type=shop_order', 'post-new.php?post_type=shop_order');

...但订单主菜单变得不可访问。

我偶然发现这篇文章删除或隐藏批量订单面板上的WooCommerce上的“添加新”按钮,该按钮使用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;
    }

现在看起来是这样的:

共有1个答案

杜辰龙
2023-03-14

我正在使用wc4.4。1

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

function action_admin_menu() {
    global $menu, $submenu;

    // Unset 'Order: add new'
    unset( $submenu['edit.php?post_type=shop_order'][10] );
}
add_action( 'admin_menu', 'action_admin_menu' );

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

// DEBUG: This displays the complete wordpress admin menu on your dashboard for admin only. (Remove afterwards)
function debug_admin_menus() {
    global $menu, $submenu, $pagenow;
    if ( current_user_can('manage_options') ) {
        if( $pagenow == 'index.php' ) {  // print on dashboard
            echo '<pre>', print_r( $menu, 1 ), '</pre>'; // top level menus
            echo '<pre>', print_r( $submenu, 1 ), '</pre>'; // submenus
        }
    }
}
add_action( 'admin_notices', 'debug_admin_menus' );

function action_admin_menu() {
    global $menu, $submenu;

    // Unset 'Products: add new'
    unset( $submenu['edit.php?post_type=product'][10] );
}
add_action( 'admin_menu', 'action_admin_menu' );

相关:

>

  • 在WordPress管理仪表板中更改WooCommerce产品菜单标题

    如何重命名WordPress管理仪表板上WooCommerce选项卡下的菜单选项卡

  •  类似资料:
    • 我想删除商店经理将订单标记为已完成的能力。为此,我在主题的functions.php文件中使用了以下基于“有条件地在WooCommerce管理订单列表中隐藏特定操作按钮”的答案: 通过这个,我成功地从shop_order页面上删除了完整的按钮。但是,商店经理仍然能够使用订单预览中出现的完成按钮完成订单。为了避免这种情况,我尝试了前一个动作之后的下一个动作: 但是,这不会从预览窗口中删除按钮,因为它

    • 我正在为WooCommerce开发一个插件。我想覆盖admin的订单详细信息模板。我已经阅读了关于https://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/,但我仍然不明白如何覆盖admin的订单详细信息模板。以下是我的代码: 它不会在订单详细信息之后调用与

    • 订单管理位于WooCommerce - 订单下,当你的站点开始收到订单后,就能看到这个菜单。订单仅对管理员和商店经理/Shop Manager可见,每个订单有一个唯一的ID,这个ID就是WordPress post_id,是不连续的。本文简单介绍一下WooCommerce订单管理的方法。 订单状态的含义 待付款 / Pending Payment 成功下单但未支付订单,等待付款。如果支付网关的no

    • 使用以下代码,我可以在WooCommerce产品上获得一个自定义字段,但是如何在订单、结帐和管理订单(后端)上显示它呢? 这是我在每个产品上的自定义字段 这是我的管理订单(后端)详细信息。我尝试显示我在每个产品帖子中输入的正确元数据。 如何在管理订单中显示我在自定义字段中输入的值?我也希望有人能帮助我显示在订单和结帐页面的元。。。或者引导我走向正确的方向。我意识到,为了在管理订单中显示它,我必须确

    • 我想在Woocommerce的管理员查看订单页面上添加futured图像。已创建新列,但未显示产品图像。我应该如何显示订单缩略图?谢谢

    • 我想在页面中添加一个自定义按钮,管理员可以在其中手动创建新订单(管理员订单页面)。 管理员- 在我添加产品和点击编辑按钮后,我可以在添加元按钮附近显示自定义按钮吗?我找不到可以使用的钩子。 我已经添加了上面的代码。我得到了结果,但按钮显示后不久,我添加的产品。我只希望按钮显示时,我点击编辑按钮。 #更新 当我添加以下代码时,它起了作用。这条路对吗?由于设置了同一字段中的按钮