X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/4feeb71a9d812a9ae371c28a3d8b442a4394ded7..16e7b37c7914d753890c1a05a9335f3b43751eb8:/wp-admin/options.php diff --git a/wp-admin/options.php b/wp-admin/options.php index 6bad0fd6..17474890 100644 --- a/wp-admin/options.php +++ b/wp-admin/options.php @@ -32,7 +32,7 @@ if ( empty($option_page) ) { } else { /** - * Filter the capability required when using the Settings API. + * Filters the capability required when using the Settings API. * * By default, the options groups for all registered settings require the manage_options capability. * This filter is required to change the capability required for a certain options page. @@ -47,7 +47,7 @@ if ( empty($option_page) ) { if ( ! current_user_can( $capability ) ) { wp_die( '

' . __( 'Cheatin’ uh?' ) . '

' . - '

' . __( 'You are not allowed to manage these items.' ) . '

', + '

' . __( 'Sorry, you are not allowed to manage these options.' ) . '

', 403 ); } @@ -57,7 +57,7 @@ if ( is_multisite() ) { if ( ! empty($_GET[ 'adminhash' ] ) ) { $new_admin_details = get_option( 'adminhash' ); $redirect = 'options-general.php?updated=false'; - if ( is_array( $new_admin_details ) && $new_admin_details[ 'hash' ] == $_GET[ 'adminhash' ] && !empty($new_admin_details[ 'newemail' ]) ) { + if ( is_array( $new_admin_details ) && hash_equals( $new_admin_details[ 'hash' ], $_GET[ 'adminhash' ] ) && !empty($new_admin_details[ 'newemail' ]) ) { update_option( 'admin_email', $new_admin_details[ 'newemail' ] ); delete_option( 'adminhash' ); delete_option( 'new_admin_email' ); @@ -66,6 +66,7 @@ if ( is_multisite() ) { wp_redirect( admin_url( $redirect ) ); exit; } elseif ( ! empty( $_GET['dismiss'] ) && 'new_admin_email' == $_GET['dismiss'] ) { + check_admin_referer( 'dismiss-' . get_current_blog_id() . '-new_admin_email' ); delete_option( 'adminhash' ); delete_option( 'new_admin_email' ); wp_redirect( admin_url( 'options-general.php?updated=true' ) ); @@ -76,7 +77,7 @@ if ( is_multisite() ) { if ( is_multisite() && ! is_super_admin() && 'update' != $action ) { wp_die( '

' . __( 'Cheatin’ uh?' ) . '

' . - '

' . __( 'You are not allowed to delete these items.' ) . '

', + '

' . __( 'Sorry, you are not allowed to delete these items.' ) . '

', 403 ); } @@ -124,7 +125,7 @@ if ( !is_multisite() ) { $whitelist_options['general'][] = 'new_admin_email'; /** - * Filter whether the post-by-email functionality is enabled. + * Filters whether the post-by-email functionality is enabled. * * @since 3.0.0 * @@ -135,7 +136,7 @@ if ( !is_multisite() ) { } /** - * Filter the options white list. + * Filters the options white list. * * @since 2.7.0 * @@ -160,7 +161,7 @@ if ( 'update' == $action ) { if ( 'options' == $option_page ) { if ( is_multisite() && ! is_super_admin() ) - wp_die( __( 'You do not have sufficient permissions to modify unregistered settings for this site.' ) ); + wp_die( __( 'Sorry, you are not allowed to modify unregistered settings for this site.' ) ); $options = explode( ',', wp_unslash( $_POST[ 'page_options' ] ) ); } else { $options = $whitelist_options[ $option_page ]; @@ -193,9 +194,11 @@ if ( 'update' == $action ) { } if ( $options ) { + $user_language_old = get_user_locale(); + foreach ( $options as $option ) { if ( $unregistered ) { - _deprecated_argument( 'options.php', '2.7', + _deprecated_argument( 'options.php', '2.7.0', sprintf( /* translators: %s: the option/setting */ __( 'The %s setting is unregistered. Unregistered settings are deprecated. See https://codex.wordpress.org/Settings_API' ), @@ -208,19 +211,23 @@ if ( 'update' == $action ) { $value = null; if ( isset( $_POST[ $option ] ) ) { $value = $_POST[ $option ]; - if ( ! is_array( $value ) ) + if ( ! is_array( $value ) ) { $value = trim( $value ); + } $value = wp_unslash( $value ); } update_option( $option, $value ); } - // Switch translation in case WPLANG was changed. - $language = get_option( 'WPLANG' ); - if ( $language ) { - load_default_textdomain( $language ); - } else { - unload_textdomain( 'default' ); + /* + * Switch translation in case WPLANG was changed. + * The global $locale is used in get_locale() which is + * used as a fallback in get_user_locale(). + */ + unset( $GLOBALS['locale'] ); + $user_language_new = get_user_locale(); + if ( $user_language_old !== $user_language_new ) { + load_default_textdomain( $user_language_new ); } }