如何从管理员订单页面删除批量操作

How to remove bulk actions from admin orders page

我正在尝试使用以下代码从管理员的订单页面中删除所有默认的批量操作:

add_filter( 'bulk_actions-edit-shop_order', 'remove_order_statuses_bulk' );
function remove_order_statuses_bulk ( $bulk_actions ) {
    error_log( print_r( $bulk_actions, true ) );

    $unwanted_actions = array( "mark_processing", "mark_pending", "mark_on-hold", "mark_completed", "mark_cancelled", "mark_refunded", "mark_failed" );

    foreach ( $unwanted_actions as $action ) {
        if ( isset( $bulk_actions[$action] ) ) {
            unset( $bulk_actions[$action] );
        }
    }

    return $bulk_actions;
}

error_log 显示仅包含 "edit""trash""mark_custom-status" 的数组(这是我使用相同的挂钩创建的状态)。所以数组已经是空的了。

问题是 wp-admin/edit.php?post_type=shop_order 中包含批量操作的菜单仍然显示已删除的条目。

我目前没有缓存插件。可能是什么原因造成的?

您的函数被调用得太早,因为您没有设置优先级。

更改您的 add_filter 的优先级并且有效。

add_filter( 'bulk_actions-edit-shop_order', 'remove_order_statuses_bulk', 40, 1 );