从订单预览中删除 WooCommerce 管理员订单操作
Remove WooCommerce admin order action from order preview
我想为商店经理删除将订单标记为已完成的功能。为此,我根据主题的 functions.php 文件中的 "" 答案使用了以下内容:
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>';
}
但是,这不会从预览中删除按钮 window,因为它不会替换代码中的行。
有没有办法立即从 shop_order 页面和订单预览中删除此功能?如果没有,如何在预览中隐藏此按钮window?
要从 "Shop manager" 用户角色的管理员订单预览中删除 "complete" 更新订单状态按钮,请使用以下命令:
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;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
我想为商店经理删除将订单标记为已完成的功能。为此,我根据主题的 functions.php 文件中的 "
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>';
}
但是,这不会从预览中删除按钮 window,因为它不会替换代码中的行。
有没有办法立即从 shop_order 页面和订单预览中删除此功能?如果没有,如何在预览中隐藏此按钮window?
要从 "Shop manager" 用户角色的管理员订单预览中删除 "complete" 更新订单状态按钮,请使用以下命令:
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;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。