我正在尝试删除WooCommerce添加的gallery metabox-它已在更新中添加,但我已经有了gallery metabox,我不想混淆客户端。
显然,我可以破解插件,但我想从功能上做到这一点。php
我尝试过:
function remove_my_meta_boxes() {
remove_meta_box( \'woocommerce-product-images\', \'product\', \'side\');
}
add_action( \'admin_menu\' , \'remove_my_meta_boxes\', 40 );
它似乎不起作用
添加它的代码似乎是
public function __construct() {
add_action( \'add_meta_boxes\', array( $this, \'add_meta_boxes\' ), 30 );
}
以及
public function add_meta_boxes() {
add_meta_box( \'woocommerce-product-images\', __( \'Product Gallery\', \'woocommerce\' ), \'WC_Meta_Box_Product_Images::output\', \'product\', \'side\' );
}
我已经删除了不相关的部分,如其他已注册的元数据库等。
最合适的回答,由SO网友:kaiser 整理而成
在他们的GitHub repo 显示以下行:
add_meta_box(
\'woocommerce-product-images\',
__( \'Product Gallery\', \'woocommerce\' ),
\'WC_Meta_Box_Product_Images::output\',
\'product\',
\'side\'
);
所以你的电话
remove_meta_box()
使用正确的id/句柄/名称以及正确的优先级和上下文。
问题只在于钩子和钩子执行的优先级-您必须在WooCommerce插件之后注销registers the boxes. 否则,您将尝试注销尚未注册的内容。
add_action( \'add_meta_boxes\' , \'remove_my_meta_boxes\', 40 );
function remove_my_meta_boxes()
{
remove_meta_box( \'woocommerce-product-images\', \'product\', \'side\');
}