0

I try to remove metaboxes from non-admin for posts, pages, and add products page (WooCommerce), and this my code:

// ciusART Remove Metaboxes
add_action('admin_head', 'remove_metaboxes_for_non_admin');
function remove_metaboxes_for_non_admin(){
    if (!is_admin()){ // only remove for non admins
        remove_meta_box('wpseo_meta', 'post', 'advanced');
        remove_meta_box('wpseo_meta', 'page', 'advanced');
        remove_meta_box('wpseo_meta', 'products', 'advanced');
        remove_meta_box('acf_acf_extended-footer', 'post', 'advanced');
        remove_meta_box('acf_acf_extended-footer', 'page', 'advanced');
        remove_meta_box('acf_acf_extended-footer', 'products', 'advanced');
        remove_meta_box('acf_acf_layout-settings', 'post', 'advanced');
        remove_meta_box('acf_acf_layout-settings', 'page', 'advanced');
        remove_meta_box('acf_acf_layout-settings', 'products', 'advanced');
        remove_meta_box('acf_acf_product-settings', 'post', 'advanced');
        remove_meta_box('acf_acf_product-settings', 'page', 'advanced');
        remove_meta_box('acf_acf_product-settings', 'products', 'advanced');
        remove_meta_box('acf_acf_sidebar', 'post', 'advanced');
        remove_meta_box('acf_acf_sidebar', 'page', 'advanced');
        remove_meta_box('acf_acf_sidebar', 'products', 'advanced');
        remove_meta_box('acf_acf_size-guide', 'post', 'advanced');
        remove_meta_box('acf_acf_size-guide', 'page', 'advanced');
        remove_meta_box('acf_acf_size-guide', 'products', 'advanced');
        remove_meta_box('acf_acf_header-image-background', 'post', 'advanced');
        remove_meta_box('acf_acf_header-image-background', 'page', 'advanced');
        remove_meta_box('acf_acf_header-image-background', 'products', 'advanced');
        remove_meta_box('acf_acf_footer-image-background', 'post', 'advanced');
        remove_meta_box('acf_acf_footer-image-background', 'page', 'advanced');
        remove_meta_box('acf_acf_footer-image-background', 'products', 'advanced');
        remove_meta_box('acf_acf_extended-footer-image-background', 'post', 'advanced');
        remove_meta_box('acf_acf_extended-footer-image-background', 'page', 'advanced');
        remove_meta_box('acf_acf_extended-footer-image-background', 'products', 'advanced');
        // continue adding as necessary
    }
}

But this code not work, can you help me...

Thanks...

1
  • I believe you can use something like this to simplify that code.
    – s_ha_dum
    Apr 10, 2015 at 14:13

2 Answers 2

1

I don't think this will ever fire....

Is_admin() detects admin UI not admin priveleges... Try:

if (is_admin()) : 
function my_remove_meta_boxes()  { 
if( !current_user_can('manage_options') )  { 
    remove_meta_box(...);
}}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;
0

Please Change !is_admin() current user is administrator , is_admin() not check user but they check admin panel area

please change in your code

 add_action('admin_head', 'remove_metaboxes_for_non_admin');
function remove_metaboxes_for_non_admin(){
    global $current_user;
    if ($current_user->role[0]!='administrator')
    {
        remove_meta_box('wpseo_meta', 'post', 'advanced');
        remove_meta_box('wpseo_meta', 'page', 'advanced');
        remove_meta_box('wpseo_meta', 'products', 'advanced');
        remove_meta_box('acf_acf_extended-footer', 'post', 'advanced');
        remove_meta_box('acf_acf_extended-footer', 'page', 'advanced');
        remove_meta_box('acf_acf_extended-footer', 'products', 'advanced');
        remove_meta_box('acf_acf_layout-settings', 'post', 'advanced');
        remove_meta_box('acf_acf_layout-settings', 'page', 'advanced');
        remove_meta_box('acf_acf_layout-settings', 'products', 'advanced');
        remove_meta_box('acf_acf_product-settings', 'post', 'advanced');
        remove_meta_box('acf_acf_product-settings', 'page', 'advanced');
        remove_meta_box('acf_acf_product-settings', 'products', 'advanced');
        remove_meta_box('acf_acf_sidebar', 'post', 'advanced');
        remove_meta_box('acf_acf_sidebar', 'page', 'advanced');
        remove_meta_box('acf_acf_sidebar', 'products', 'advanced');
        remove_meta_box('acf_acf_size-guide', 'post', 'advanced');
        remove_meta_box('acf_acf_size-guide', 'page', 'advanced');
        remove_meta_box('acf_acf_size-guide', 'products', 'advanced');
        remove_meta_box('acf_acf_header-image-background', 'post', 'advanced');
        remove_meta_box('acf_acf_header-image-background', 'page', 'advanced');
        remove_meta_box('acf_acf_header-image-background', 'products', 'advanced');
        remove_meta_box('acf_acf_footer-image-background', 'post', 'advanced');
        remove_meta_box('acf_acf_footer-image-background', 'page', 'advanced');
        remove_meta_box('acf_acf_footer-image-background', 'products', 'advanced');
        remove_meta_box('acf_acf_extended-footer-image-background', 'post', 'advanced');
        remove_meta_box('acf_acf_extended-footer-image-background', 'page', 'advanced');
        remove_meta_box('acf_acf_extended-footer-image-background', 'products', 'advanced');
        // continue adding as necessary
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.