WP 3.8 Color de administrador predeterminado para todos los usuarios

10

Estoy sorprendido con el nuevo esquema de color para 3.8 y aunque el tema clásico 3.7 ha desaparecido, me gustaría establecer el nuevo esquema de color "Claro" como el predeterminado para todos los usuarios, pero al mismo tiempo, aún permitirles cambiar el tema si lo desean, en su perfil de usuario.

¿Alguien ha logrado crear una función para establecer el valor predeterminado para todos los usuarios? He buscado pero no puedo encontrar nada ya que esto es tan nuevo, el códice 3.8 no está completamente escrito.

Sol
fuente

Respuestas:

14

Puede establecer (en términos de fuerza) un color predeterminado functions.phpcomo este:

add_filter( 'get_user_option_admin_color', 'update_user_option_admin_color', 5 );

function update_user_option_admin_color( $color_scheme ) {
    $color_scheme = 'light';

    return $color_scheme;
}

Actualización: los siguientes esquemas de color están disponibles por defecto en WP 3.8

  • Fresco
  • ligero
  • azul
  • café
  • ectoplasma
  • medianoche
  • Oceano
  • amanecer

Bonificación (que se encuentra en wpmudev ): deshabilite las opciones de esquema de color de administrador para asegurarse de que los usuarios no puedan volver a cambiar a otro color:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Actualización 2: como señaló Rarst, el filtro anterior forzará un esquema de color específico en lugar de establecer un valor predeterminado que se pueda cambiar. La solución a esto es ejecutar una acción solo una vez (por ejemplo, en la configuración / registro del usuario) para que luego el usuario pueda decidir y cambiar el color por su cuenta:

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {

       update_user_meta($user_id, 'admin_color', 'light');

}

Actualización 3: Ok, entonces un intento más :)

La idea es agregar metadatos de usuario adicionales (ver custom_admin_color_scheme) tan pronto como el usuario actualice el perfil; siempre que el campo no esté configurado true, cambiaremos la combinación de colores predeterminada del administrador a una combinación de colores de nuestra elección:

// add custom user meta data
add_action('personal_options_update', 'save_custom_admin_color_optios');
function save_custom_admin_color_optios( $user_id ) {

    update_user_meta($user_id, 'custom_admin_color_scheme', true);

}

// change default color scheme if not customized
$customized_color_scheme = get_user_option( 'custom_admin_color_scheme', get_current_user_id() );
if ( empty($customized_color_scheme) ) {

    update_user_meta(get_current_user_id(), 'admin_color', 'light');

}

Actualización 4: Finalmente, también hay un complemento muy bueno en wordpress.org para manejar fácilmente los esquemas de color de administrador predeterminados: Esquema de color de administrador predeterminado

Sven
fuente
2
¿No forzará este esquema específico en lugar de establecer el valor predeterminado que se puede cambiar?
Rarst
@Rarst Buen punto! Actualicé mi respuesta y agregué una acción para cambiar solo el color en la configuración; después de eso depende del usuario :)
Sven
En realidad, esto no es muy útil para los usuarios ya registrados. No creo que haya una manera de obligarlos a elegir en el próximo inicio de sesión (supongo que sería mucho trabajo).
Sol
@Sol Simplemente verifique si ya hay una configuración y si es uno de los esquemas de color predefinidos de 3.8. Si ahora, solo exit( wp_redirect( admin_url( 'profile.php' ) ) );(no estoy seguro profile.php) redirígelos a su perfil y agrega uno admin_noticeque deberían cambiar. Hecho de esta manera, son forzados ya que la redirección sucederá hasta que se complete esta configuración :)
kaiser
Hola Kaiser, suena perfecto, ¿puedes proporcionar un código de ejemplo?
Sol