Install: Only show the language chooser when we have access to the filesystem without asking for credentials.
fixes #29397. Built from https://develop.svn.wordpress.org/trunk@29673 git-svn-id: http://core.svn.wordpress.org/trunk@29448 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
c878fd96d9
commit
81d600dcca
|
@ -204,9 +204,37 @@ function wp_download_language_pack( $download ) {
|
|||
$skin = new Automatic_Upgrader_Skin;
|
||||
$upgrader = new Language_Pack_Upgrader( $skin );
|
||||
$translation->type = 'core';
|
||||
/**
|
||||
* @todo failures (such as non-direct FS)
|
||||
*/
|
||||
$result = $upgrader->upgrade( $translation, array( 'clear_update_cache' => false ) );
|
||||
|
||||
if ( ! $result || is_wp_error( $result ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $translation->language;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if WordPress has access to the filesystem without asking for
|
||||
* credentials.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*
|
||||
* @return bool Returns true on success, false on failure.
|
||||
*/
|
||||
function wp_can_install_language_pack() {
|
||||
if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
||||
$skin = new Automatic_Upgrader_Skin;
|
||||
$upgrader = new Language_Pack_Upgrader( $skin );
|
||||
|
||||
$check = $upgrader->fs_connect( array( WP_CONTENT_DIR, WP_LANG_DIR ) );
|
||||
|
||||
if ( ! $check || is_wp_error( $check ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -189,7 +189,7 @@ if ( ! empty( $_REQUEST['language'] ) ) {
|
|||
switch($step) {
|
||||
case 0: // Step 0
|
||||
|
||||
if ( empty( $langugage ) && ( $languages = wp_get_available_translations() ) ) {
|
||||
if ( wp_can_install_language_pack() && empty( $langugage ) && ( $languages = wp_get_available_translations() ) ) {
|
||||
display_header( 'language-chooser' );
|
||||
echo '<form id="setup" method="post" action="?step=1">';
|
||||
wp_install_language_form( $languages );
|
||||
|
|
|
@ -93,7 +93,7 @@ if ( ! empty( $_REQUEST['language'] ) ) {
|
|||
}
|
||||
switch($step) {
|
||||
case -1:
|
||||
if ( empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
|
||||
if ( wp_can_install_language_pack() && empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
|
||||
setup_config_display_header( 'language-chooser' );
|
||||
echo '<form id="setup" method="post" action="?step=0">';
|
||||
wp_install_language_form( $languages );
|
||||
|
|
Loading…
Reference in New Issue