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

从订单预览中删除WooCommerce管理订单操作

单展
2023-03-14

我想删除商店经理将订单标记为已完成的能力。为此,我在主题的functions.php文件中使用了以下基于“有条件地在WooCommerce管理订单列表中隐藏特定操作按钮”的答案:

add_filter( 'woocommerce_admin_order_actions', 'custom_admin_order_actions', 900, 2 );
function custom_admin_order_actions( $actions, $the_order ){
    if(isset(wp_get_current_user()->roles[0]) && wp_get_current_user()->roles[0] == 'shop-manager') 
        unset($actions['complete']);

    return $actions;
}

通过这个,我成功地从shop_order页面上删除了完整的按钮。但是,商店经理仍然能够使用订单预览中出现的完成按钮完成订单。为了避免这种情况,我尝试了前一个动作之后的下一个动作:

add_action( 'woocommerce_admin_order_preview_start', 'custom_display_order_data_in_admin' );
function custom_display_order_data_in_admin(){
    // Call the stored value and display it
    echo '<div>Class = "button hidden wc-action-button wc-action-button-complete complete"</div><br>'; 
}

但是,这不会从预览窗口中删除按钮,因为它不会替换代码中的行。

有没有一种方法可以立即从shop_order页面和订单预览中删除此功能?如果没有,如何在预览窗口中隐藏此按钮?

共有1个答案

终睿
2023-03-14

若要从"商店经理"用户角色的管理订单预览中删除"完成"更新订单状态按钮,请使用以下操作:

add_filter( 'woocommerce_admin_order_preview_actions', 'filter_admin_order_preview_actions', 10, 2 );
function filter_admin_order_preview_actions( $actions, $order ) {
    if( current_user_can('shop-manager') && isset($actions['status']['actions']['complete']) ) {
        unset($actions['status']['actions']['complete']);
    }
    return $actions;
}

代码进入函数。活动子主题(或活动主题)的php文件。测试和工作。

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

  • 店铺后台如何管理订单 如图所示 1、功能路径 Niushop商城电脑端后台-订单 2、流程介绍 买家在商城购买商品,系统则会产生订单,而后台可查看所有订单信息,并对订单可备注 1.查看订单,根据筛选条件可查看指定的订单 订单列表,商城内所有的订单商家均可查看,可看订单的状态、详情、买家、交易状态、配送方式、订单类型等信息(如图) 打印订单:勾选商品,批量操作 2.订单状态: 待付款:在商城中买家已

  • 我的WooCommerce版本是4.5。2. 我想删除自定义用户的添加顺序,使其无法访问。 我已使用具有以下权限的用户角色编辑器创建了自定义用户: 这样,用户只能查看现有订单,并单击订单预览更新为“已完成”。 我试着用这个: ...但订单主菜单变得不可访问。 我偶然发现这篇文章删除或隐藏批量订单面板上的WooCommerce上的“添加新”按钮,该按钮使用CSS从页面上隐藏“添加订单”。 我希望有人

  • 我正在为我的WooCommerce商店出售的产品使用一些自定义项目元。我正在寻找一种方法来隐藏项目元显示在管理订单页面上的订单项目部分下。 我使用下划线的元名称,但元仍然显示。 你可以在附件中看到我的意思。。。 想法?

  • 我试图将我的产品简短描述作为一个新标签添加到我的订单页面,这样我们就有了一个更简单的方法来订购产品,而不必进入产品内部。 我看到目前SKU显示在产品下,理想情况下,它会有一个产品简短描述。 这就是我到目前为止所得到的结果,但是短描述没有输出 目前的结果显示 “没有摘录,因为这是一篇受保护的文章。” 我觉得它没有在产品中循环,并试图获取订单摘录,因此它说它受到保护,但我对此不太有经验。 感谢您的帮助

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