Удалите метабокс, зарегистрированный другим плагином - Woocommerce [закрыт]
Я пытаюсь удалить метабокс галереи который добавлен WooCommerce - он был добавлен в обновлении, но у меня уже есть метабокс галереи, и я не хочу запутывать клиента.
Очевидно, что я могу взломать плагин, но я хотел бы сделать это из functions.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' );
}
Я удалил разделы, которые не имеют отношения к делу, т.Е. зарегистрированные другие метабоксы и т. Д.
2 answers
Быстрый поиск в их репозитории на GitHub показывает следующую строку:
add_meta_box(
'woocommerce-product-images',
__( 'Product Gallery', 'woocommerce' ),
'WC_Meta_Box_Product_Images::output',
'product',
'side'
);
Итак, ваш призыв к remove_meta_box()
использует правильный идентификатор/дескриптор/имя, а также правильный приоритет и контекст.
Проблема только в крючке и приоритете, с которым выполняется крючок - вам нужно отменить регистрацию позже, чем плагин WooCommerce регистрирует поля . В противном случае вы пытаетесь отменить регистрацию чего-то, что еще не зарегистрировано.
add_action( 'add_meta_boxes' , 'remove_my_meta_boxes', 40 );
function remove_my_meta_boxes()
{
remove_meta_box( 'woocommerce-product-images', 'product', 'side');
}
Должно быть возможно удалить этот метабокс, но вам придется удалить его после того, как он будет добавлен. Я думаю, что вы пытаетесь сделать это с аргументом приоритета, но вы также используете другой хук, который, если сервер памяти, запускается до того, как хук используется плагином.
function remove_my_meta_boxes() {
remove_meta_box( 'woocommerce-product-images', 'product', 'side');
}
add_action( 'add_meta_boxes' , 'remove_my_meta_boxes', 40 );