The admin_color_scheme_picker WordPress PHP action fires in the ‘Admin Color Scheme’ section of the user editing screen. The section is only enabled if a callback is hooked to the action, and if there is more than one defined color scheme for the admin.
Usage
add_action('admin_color_scheme_picker', 'your_custom_function'); function your_custom_function($user_id) { // your custom code here }
Parameters
$user_id
: int – The user ID.
More information
See WordPress Developer Resources: admin_color_scheme_picker
Examples
Add a custom admin color scheme
Register a new admin color scheme and add it to the ‘Admin Color Scheme’ picker.
// Register a custom admin color scheme function register_custom_admin_color_scheme() { wp_admin_css_color( 'custom_scheme', // unique identifier __('Custom Scheme', 'domain'), // display name get_stylesheet_directory_uri() . '/custom_scheme_colors.css', // CSS file array('#1d2327', '#2c3338', '#3e4d59', '#ffffff') // base colors ); } add_action('admin_init', 'register_custom_admin_color_scheme'); // Add the custom color scheme to the picker function add_custom_scheme_picker($user_id) { global $_wp_admin_css_colors; $color_scheme = get_user_meta($user_id, 'admin_color', true); if (empty($color_scheme)) { $color_scheme = 'fresh'; } ?> <fieldset> <legend class="screen-reader-text"><span><?php _e('Admin Color Scheme', 'domain'); ?></span></legend> <?php foreach ($_wp_admin_css_colors as $id => $color) { ?> <div class="color-option"> <input name="admin_color" type="radio" value="<?php echo esc_attr($id); ?>" id="admin_color_<?php echo esc_attr($id); ?>" <?php checked($color_scheme, $id); ?>> <label for="admin_color_<?php echo esc_attr($id); ?>"><?php echo esc_html($color->name); ?></label> <table class="color-palette"> <tr> <?php foreach ($color->colors as $html_color) { ?> <td style="background-color: <?php echo esc_attr($html_color); ?>;"> </td> <?php } ?> </tr> </table> </div> <?php } ?> </fieldset> <?php } add_action('admin_color_scheme_picker', 'add_custom_scheme_picker');
Remove a color scheme from the picker
Remove the ‘Ectoplasm’ color scheme from the ‘Admin Color Scheme’ picker.
function remove_ectoplasm_color_scheme($user_id) { global $_wp_admin_css_colors; unset($_wp_admin_css_colors['ectoplasm']); } add_action('admin_color_scheme_picker', 'remove_ectoplasm_color_scheme');
Remove all color schemes except the default
Remove all color schemes except the default ‘Fresh’ color scheme from the ‘Admin Color Scheme’ picker.
function remove_other_color_schemes($user_id) { global $_wp_admin_css_colors; $_wp_admin_css_colors = array('fresh' => $_wp_admin_css_colors['fresh']); } add_action('admin_color_scheme_picker', 'remove_other_color_schemes');
Add a custom color scheme based on user role
Add a custom color scheme for ‘Editor’ user role and display it in the ‘Admin Color Scheme’ picker only for users with the ‘Editor’ role.
// Register a custom admin color scheme for editors function register_editor_admin_color_scheme() { wp_admin_css_color( 'editor_scheme', __('Editor Scheme', 'domain'), get_stylesheet_directory_uri() . '/editor_scheme_colors.css', array('#23282d', '#383c40', '#4d5e6f', '#ffffff') ); } add_action('admin_init', 'register_editor_admin_color_scheme'); // Add the custom color scheme to the picker for editors function add_editor_scheme_picker($user_id) { if (user_can($user_id, 'editor')) { global $_wp_admin_css_colors; $color_scheme = get_user_meta($user_id, 'admin_color', true); if (empty($color_scheme)) { $color_scheme = 'fresh'; } ?> <fieldset> <legend class="screen-reader-text"><span><?php _e('Admin Color Scheme', 'domain'); ?></span></legend> <?php foreach ($_wp_admin_css_colors as $id => $color) { if ('editor_scheme' === $id) { ?> <div class="color-option"> <input name="admin_color" type="radio" value="<?php echo esc_attr($id); ?>" id="admin_color_<?php echo esc_attr($id); ?>" <?php checked($color_scheme, $id); ?>> <label for="admin_color_<?php echo esc_attr($id); ?>"><?php echo esc_html($color->name); ?></label> <table class="color-palette"> <tr> <?php foreach ($color->colors as $html_color) { ?> <td style="background-color: <?php echo esc_attr($html_color); ?>;"> </td> <?php } ?> </tr> </table> </div> <?php } } ?> </fieldset> <?php } } add_action('admin_color_scheme_picker', 'add_editor_scheme_picker');
Force a specific color scheme for a user role
Force the ‘Midnight’ color scheme for all users with the ‘Author’ role.
function force_midnight_scheme_for_authors($user_id) { if (user_can($user_id, 'author')) { update_user_meta($user_id, 'admin_color', 'midnight'); } } add_action('admin_color_scheme_picker', 'force_midnight_scheme_for_authors');