I18N: Add ability to change user's locale back to site's locale.

Previously there was no way to remove the user locale setting again, even though that might be desirable.

This adds a new 'Site Default' option to the user-specific language setting by introducing a new `show_site_locale_default` argument to `wp_dropdown_languages()`.

Props ocean90.
See #29783.
Fixes #38632.

git-svn-id: https://develop.svn.wordpress.org/trunk@39169 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Pascal Birchler
2016-11-08 23:00:38 +00:00
parent 5f610350e1
commit 21e874e00a
6 changed files with 95 additions and 8 deletions

View File

@@ -879,6 +879,25 @@ class WP_Test_REST_Users_Controller extends WP_Test_REST_Controller_Testcase {
$this->assertEquals( 'en_US', $user->locale );
}
/**
* @ticket 38632
*/
public function test_update_item_empty_locale() {
$user_id = $this->factory->user->create( array( 'user_login' => 'test_json_user', 'user_email' => 'testjson@example.com', 'locale' => 'de_DE' ) );
$this->allow_user_to_manage_multisite();
wp_set_current_user( self::$user );
$request = new WP_REST_Request( 'PUT', '/wp/v2/users/' . $user_id );
$request->set_param( 'locale', '' );
$response = $this->server->dispatch( $request );
$this->check_add_edit_user_response( $response, true );
$data = $response->get_data();
$this->assertEquals( get_locale(), $data['locale'] );
$user = get_userdata( $user_id );
$this->assertEquals( '', $user->locale );
}
public function test_update_item_username_attempt() {
$user1 = $this->factory->user->create( array( 'user_login' => 'test_json_user', 'user_email' => 'testjson@example.com' ) );
$user2 = $this->factory->user->create( array( 'user_login' => 'test_json_user2', 'user_email' => 'testjson2@example.com' ) );