Как удалить пользовательский метабокс по нажатию кнопки?

Я пытаюсь удалить пользовательский метабокс, который я создал для своего плагина, используя код PHP. Он должен быть удален из всех сообщений одним нажатием кнопки. Вот мой код:

<?php
if(isset($_REQUEST['submit_btn']))
{   
    function remove_custom_metabox()
    {
        remove_meta_box( 'my-meta-box-id' , 'post' , 'normal' );
    }
    add_action( 'add_meta_boxes', 'remove_custom_metabox');
}
?>

Почему это не работает? И есть ли способ сделать это для пользовательского мета-бокса с несколькими сообщениями? Спасибо!

РЕДАКТИРОВАТЬ 1: Просто чтобы получить более четкое представление о том, что я делаю, вот как я создаю настраиваемый мета-бокс в основном файле плагина:

function cd_meta_box_add()
{
        add_meta_box(
                'my-meta-box-id', //id
                'Contributors', //title
                'cd_meta_box_cb', //callback
                'post', //post type
                'normal', //position
                'high' //priority
                );
}
add_action('add_meta_boxes', 'cd_meta_box_add');

person Komal R    schedule 07.09.2018    source источник
comment
Вы должны вызывать свою функцию, например, remove_custom_metabox() вместо «remove_custom_metabox».   -  person executable    schedule 07.09.2018
comment
Нет, все еще не работает. И я думаю, что в add_action() мы можем вызвать имя функции, как это сделал я.   -  person Komal R    schedule 07.09.2018


Ответы (2)


Согласно документации вы должны использовать хук admin_menu

person Raf    schedule 07.09.2018

Чтобы удалить настраиваемый метабокс, используйте хук действий admin_menu или do_meta_boxes.

/**
 * Remove Custom Fields meta box
 */
function wpdocs_remove_post_custom_fields() {
    remove_meta_box( 'postcustom' , 'post' , 'normal' ); 
}
add_action( 'admin_menu' , 'wpdocs_remove_post_custom_fields' );
add_action( 'do_meta_boxes', 'wpdocs_remove_post_custom_fields' );

Для получения дополнительной помощи перейдите по этой ссылке: нажмите здесь

person dineshkashera    schedule 07.09.2018
comment
это не работает, я добавил больше информации к моему вопросу, не могли бы вы проверить это? - person Komal R; 07.09.2018
comment
сначала проверьте его удаление без нажатия кнопки, пожалуйста, удалите условие кнопки, после этого добавьте условия кнопки. - person dineshkashera; 07.09.2018
comment
Я тоже так пробовал, но не работает. Если я просто добавлю код remove_meta_box в основной файл плагина, где я создаю настраиваемый мета-бокс, тогда он сработает. Но как заставить его работать здесь? - person Komal R; 07.09.2018