3.3: How do you hide the new dashboard welcome panel?

The question:

I have tried various versions of this here:

unset($wp_meta_boxes['dashboard']['normal']['high']['dashboard_wp_welcome_panel']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_wp_welcome_panel']);
unset($wp_meta_boxes['dashboard']['normal']['core']['wp_welcome_panel']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_welcome_panel']);
unset($wp_meta_boxes['dashboard']['normal']['core']['welcome_panel']);

I have tried looking this up but as there is not much documentation (there is but there isn’t ) on it yet it is kind of hard.

I was wondering if someone could please help me out. I would really appreciate it. Thanks. 🙂

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

If you’re using multisite, there’s a plugin you can network activate to disable the welcome panel on all new sites. It’s aptly named “Hide Welcome Panel for Multisite.”

If you just want to do this for a typical (single site) installation, it’s also pretty easy. The welcome screen is shown for a user if a specific meta key is set. So, add the following to a plugin and activate it …

add_action( 'load-index.php', 'hide_welcome_panel' );

function hide_welcome_panel() {
    $user_id = get_current_user_id();

    if ( 1 == get_user_meta( $user_id, 'show_welcome_panel', true ) )
        update_user_meta( $user_id, 'show_welcome_panel', 0 );
}

This code is adapted directly from the above-mentioned plugin, but I haven’t had a chance to personally test it …

Method 2

@EAMann’s solution hides the welcome panel from all users, but still allows the panel to be turned back on in the screen options. My solution, which should work in any installation (single or multisite), will remove it completely:

add_action( 'load-index.php', 'remove_welcome_panel' );

function remove_welcome_panel()
{
    remove_action('welcome_panel', 'wp_welcome_panel');
    $user_id = get_current_user_id();
    if (0 !== get_user_meta( $user_id, 'show_welcome_panel', true ) ) {
        update_user_meta( $user_id, 'show_welcome_panel', 0 );
    }
}

This removes the welcome panel action, which removes the welcome panel from the dashboard altogether. It then sets the user preference to hide the welcome panel for good measure. FYI, the preference can be set to 0 (hide), 1 (show or single site creator) or 2 (multisite site owner).


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment