如何从订单编辑页面删除特定订单元框。
以下内容适用于旧版本,但不适用于高性能订单存储 (HPOS):
remove_meta_box( 'woocommerce-order-items', 'shop-order', 'normal' ); // Removes products/items meta box for technicians
remove_meta_box( 'woocommerce-order-actions', 'shop-order', 'normal' ); // Removes products/items meta box for technicians
remove_meta_box( 'woocommerce-order-notes', 'shop-order', 'normal' ); // Removes order note meta box for technicians
remove_meta_box( 'order_custom', 'shop-order', 'normal' );
如有任何帮助,我们将不胜感激。
下面的代码似乎只是隐藏,但实际上并没有删除它。
function itsm_add_meta_boxes() {
echo '<style>
#woocommerce-order-items, #woocommerce-order-actions, #wpo_wcpdf-data-input-box, #woocommerce-order-notes, #order_custom {
display: none !important;
}
</style>';
}
add_action( 'add_meta_boxes', 'itsm_add_meta_boxes', 11 );
还有其他建议吗?
要删除高性能订单存储 (HPOS) 元框,您需要使用以下内容:
use Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController;
add_action( 'add_meta_boxes', 'admin_order_custom_metabox' );
function admin_order_custom_metabox() {
$screen = class_exists( '\Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController' ) && wc_get_container()->get( CustomOrdersTableController::class )->custom_orders_table_usage_is_enabled()
? wc_get_page_screen_id( 'shop-order' )
: 'shop_order';
remove_meta_box( 'woocommerce-order-items', $screen, 'normal' ); // Removes products/items meta box for technicians
remove_meta_box( 'woocommerce-order-actions', $screen, 'normal' ); // Removes products/items meta box for technicians
remove_meta_box( 'woocommerce-order-notes', $screen, 'normal' ); // Removes order note meta box for technicians
remove_meta_box( 'order_custom', $screen, 'normal' );
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。