Estoy intentando crear un pequeño complemento para instalarlo en algunos sitios de un cliente alemán.
Puedo hacer WordPress en alemán, pero sería más fácil si estuviera en inglés.
Hay un complemento que administra esto ( WP Native Dashboard ) y aunque lo hace maravillosamente, es demasiado pesado para lo que necesito. El cliente no necesita esto, yo sí.
Intenté emularlo en vano ... Almacena una opción de base de datos para verificar el intercambio en lugar de $current_user
. Pero no entendí la lógica para que esto funcione.
Por lo tanto, estoy tratando de adaptar esta solución dada por toscho , pero parece que no estoy Haciendo los ganchos en los puntos correctos del proceso de WordPress.
La pregunta es: ¿qué bit falta (o estoy desordenado) en el siguiente código?
<?php
/*
Plugin Name: Set User Locale
Plugin URI: https://wordpress.stackexchange.com/q/53326/12615
Description: changes the admin language according to user_login
Version: 1.0
Author: wordpress-stackexchange
*/
class Wpse53326_ChangeLocaleOnDemand
{
public function __construct()
{
add_action('admin_init', array(&$this, 'on_init'));
add_filter( 'locale', array(&$this, 'on_change_language') );
}
public function on_init()
{
}
public function on_change_language( $locale )
{
global $current_user;
// this prints the current user_login without problems
// global $firephp;
// $firephp->log($current_user->data->user_login,'user_login');
// the following works for backend/frontend
// but if I try this conditional, it don't: if (is_admin() && 'the_user_login' == $current_user->data->user_login)
if( is_admin() )
{
return 'en_US';
}
return $locale;
}
}
$wpse53326_ChangeLocaleOnDemand_instance = new Wpse53326_ChangeLocaleOnDemand();