Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-admin/includes
File: update-core.php
&& $wp_filesystem->exists( $from . $root . 'wp-includes/version.php' )
[1000] Fix | Delete
) {
[1001] Fix | Delete
$distro = $root;
[1002] Fix | Delete
break;
[1003] Fix | Delete
}
[1004] Fix | Delete
}
[1005] Fix | Delete
[1006] Fix | Delete
if ( ! $distro ) {
[1007] Fix | Delete
$wp_filesystem->delete( $from, true );
[1008] Fix | Delete
[1009] Fix | Delete
return new WP_Error( 'insane_distro', __( 'The update could not be unpacked' ) );
[1010] Fix | Delete
}
[1011] Fix | Delete
[1012] Fix | Delete
/*
[1013] Fix | Delete
* Import $wp_version, $required_php_version, and $required_mysql_version from the new version.
[1014] Fix | Delete
* DO NOT globalize any variables imported from `version-current.php` in this function.
[1015] Fix | Delete
*
[1016] Fix | Delete
* BC Note: $wp_filesystem->wp_content_dir() returned unslashed pre-2.8.
[1017] Fix | Delete
*/
[1018] Fix | Delete
$versions_file = trailingslashit( $wp_filesystem->wp_content_dir() ) . 'upgrade/version-current.php';
[1019] Fix | Delete
[1020] Fix | Delete
if ( ! $wp_filesystem->copy( $from . $distro . 'wp-includes/version.php', $versions_file ) ) {
[1021] Fix | Delete
$wp_filesystem->delete( $from, true );
[1022] Fix | Delete
[1023] Fix | Delete
return new WP_Error(
[1024] Fix | Delete
'copy_failed_for_version_file',
[1025] Fix | Delete
__( 'The update cannot be installed because some files could not be copied. This is usually due to inconsistent file permissions.' ),
[1026] Fix | Delete
'wp-includes/version.php'
[1027] Fix | Delete
);
[1028] Fix | Delete
}
[1029] Fix | Delete
[1030] Fix | Delete
$wp_filesystem->chmod( $versions_file, FS_CHMOD_FILE );
[1031] Fix | Delete
[1032] Fix | Delete
/*
[1033] Fix | Delete
* `wp_opcache_invalidate()` only exists in WordPress 5.5 or later,
[1034] Fix | Delete
* so don't run it when upgrading from older versions.
[1035] Fix | Delete
*/
[1036] Fix | Delete
if ( function_exists( 'wp_opcache_invalidate' ) ) {
[1037] Fix | Delete
wp_opcache_invalidate( $versions_file );
[1038] Fix | Delete
}
[1039] Fix | Delete
[1040] Fix | Delete
require WP_CONTENT_DIR . '/upgrade/version-current.php';
[1041] Fix | Delete
$wp_filesystem->delete( $versions_file );
[1042] Fix | Delete
[1043] Fix | Delete
$php_version = PHP_VERSION;
[1044] Fix | Delete
$mysql_version = $wpdb->db_version();
[1045] Fix | Delete
$old_wp_version = $GLOBALS['wp_version']; // The version of WordPress we're updating from.
[1046] Fix | Delete
/*
[1047] Fix | Delete
* Note: str_contains() is not used here, as this file is included
[1048] Fix | Delete
* when updating from older WordPress versions, in which case
[1049] Fix | Delete
* the polyfills from wp-includes/compat.php may not be available.
[1050] Fix | Delete
*/
[1051] Fix | Delete
$development_build = ( false !== strpos( $old_wp_version . $wp_version, '-' ) ); // A dash in the version indicates a development release.
[1052] Fix | Delete
$php_compat = version_compare( $php_version, $required_php_version, '>=' );
[1053] Fix | Delete
[1054] Fix | Delete
if ( file_exists( WP_CONTENT_DIR . '/db.php' ) && empty( $wpdb->is_mysql ) ) {
[1055] Fix | Delete
$mysql_compat = true;
[1056] Fix | Delete
} else {
[1057] Fix | Delete
$mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' );
[1058] Fix | Delete
}
[1059] Fix | Delete
[1060] Fix | Delete
if ( ! $mysql_compat || ! $php_compat ) {
[1061] Fix | Delete
$wp_filesystem->delete( $from, true );
[1062] Fix | Delete
}
[1063] Fix | Delete
[1064] Fix | Delete
$php_update_message = '';
[1065] Fix | Delete
[1066] Fix | Delete
if ( function_exists( 'wp_get_update_php_url' ) ) {
[1067] Fix | Delete
$php_update_message = '</p><p>' . sprintf(
[1068] Fix | Delete
/* translators: %s: URL to Update PHP page. */
[1069] Fix | Delete
__( '<a href="%s">Learn more about updating PHP</a>.' ),
[1070] Fix | Delete
esc_url( wp_get_update_php_url() )
[1071] Fix | Delete
);
[1072] Fix | Delete
[1073] Fix | Delete
if ( function_exists( 'wp_get_update_php_annotation' ) ) {
[1074] Fix | Delete
$annotation = wp_get_update_php_annotation();
[1075] Fix | Delete
[1076] Fix | Delete
if ( $annotation ) {
[1077] Fix | Delete
$php_update_message .= '</p><p><em>' . $annotation . '</em>';
[1078] Fix | Delete
}
[1079] Fix | Delete
}
[1080] Fix | Delete
}
[1081] Fix | Delete
[1082] Fix | Delete
if ( ! $mysql_compat && ! $php_compat ) {
[1083] Fix | Delete
return new WP_Error(
[1084] Fix | Delete
'php_mysql_not_compatible',
[1085] Fix | Delete
sprintf(
[1086] Fix | Delete
/* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Minimum required MySQL version number, 4: Current PHP version number, 5: Current MySQL version number. */
[1087] Fix | Delete
__( 'The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.' ),
[1088] Fix | Delete
$wp_version,
[1089] Fix | Delete
$required_php_version,
[1090] Fix | Delete
$required_mysql_version,
[1091] Fix | Delete
$php_version,
[1092] Fix | Delete
$mysql_version
[1093] Fix | Delete
) . $php_update_message
[1094] Fix | Delete
);
[1095] Fix | Delete
} elseif ( ! $php_compat ) {
[1096] Fix | Delete
return new WP_Error(
[1097] Fix | Delete
'php_not_compatible',
[1098] Fix | Delete
sprintf(
[1099] Fix | Delete
/* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Current PHP version number. */
[1100] Fix | Delete
__( 'The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher. You are running version %3$s.' ),
[1101] Fix | Delete
$wp_version,
[1102] Fix | Delete
$required_php_version,
[1103] Fix | Delete
$php_version
[1104] Fix | Delete
) . $php_update_message
[1105] Fix | Delete
);
[1106] Fix | Delete
} elseif ( ! $mysql_compat ) {
[1107] Fix | Delete
return new WP_Error(
[1108] Fix | Delete
'mysql_not_compatible',
[1109] Fix | Delete
sprintf(
[1110] Fix | Delete
/* translators: 1: WordPress version number, 2: Minimum required MySQL version number, 3: Current MySQL version number. */
[1111] Fix | Delete
__( 'The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s.' ),
[1112] Fix | Delete
$wp_version,
[1113] Fix | Delete
$required_mysql_version,
[1114] Fix | Delete
$mysql_version
[1115] Fix | Delete
)
[1116] Fix | Delete
);
[1117] Fix | Delete
}
[1118] Fix | Delete
[1119] Fix | Delete
// Add a warning when the JSON PHP extension is missing.
[1120] Fix | Delete
if ( ! extension_loaded( 'json' ) ) {
[1121] Fix | Delete
return new WP_Error(
[1122] Fix | Delete
'php_not_compatible_json',
[1123] Fix | Delete
sprintf(
[1124] Fix | Delete
/* translators: 1: WordPress version number, 2: The PHP extension name needed. */
[1125] Fix | Delete
__( 'The update cannot be installed because WordPress %1$s requires the %2$s PHP extension.' ),
[1126] Fix | Delete
$wp_version,
[1127] Fix | Delete
'JSON'
[1128] Fix | Delete
)
[1129] Fix | Delete
);
[1130] Fix | Delete
}
[1131] Fix | Delete
[1132] Fix | Delete
/** This filter is documented in wp-admin/includes/update-core.php */
[1133] Fix | Delete
apply_filters( 'update_feedback', __( 'Preparing to install the latest version&#8230;' ) );
[1134] Fix | Delete
[1135] Fix | Delete
/*
[1136] Fix | Delete
* Don't copy wp-content, we'll deal with that below.
[1137] Fix | Delete
* We also copy version.php last so failed updates report their old version.
[1138] Fix | Delete
*/
[1139] Fix | Delete
$skip = array( 'wp-content', 'wp-includes/version.php' );
[1140] Fix | Delete
$check_is_writable = array();
[1141] Fix | Delete
[1142] Fix | Delete
// Check to see which files don't really need updating - only available for 3.7 and higher.
[1143] Fix | Delete
if ( function_exists( 'get_core_checksums' ) ) {
[1144] Fix | Delete
// Find the local version of the working directory.
[1145] Fix | Delete
$working_dir_local = WP_CONTENT_DIR . '/upgrade/' . basename( $from ) . $distro;
[1146] Fix | Delete
[1147] Fix | Delete
$checksums = get_core_checksums( $wp_version, isset( $wp_local_package ) ? $wp_local_package : 'en_US' );
[1148] Fix | Delete
[1149] Fix | Delete
if ( is_array( $checksums ) && isset( $checksums[ $wp_version ] ) ) {
[1150] Fix | Delete
$checksums = $checksums[ $wp_version ]; // Compat code for 3.7-beta2.
[1151] Fix | Delete
}
[1152] Fix | Delete
[1153] Fix | Delete
if ( is_array( $checksums ) ) {
[1154] Fix | Delete
foreach ( $checksums as $file => $checksum ) {
[1155] Fix | Delete
/*
[1156] Fix | Delete
* Note: str_starts_with() is not used here, as this file is included
[1157] Fix | Delete
* when updating from older WordPress versions, in which case
[1158] Fix | Delete
* the polyfills from wp-includes/compat.php may not be available.
[1159] Fix | Delete
*/
[1160] Fix | Delete
if ( 'wp-content' === substr( $file, 0, 10 ) ) {
[1161] Fix | Delete
continue;
[1162] Fix | Delete
}
[1163] Fix | Delete
[1164] Fix | Delete
if ( ! file_exists( ABSPATH . $file ) ) {
[1165] Fix | Delete
continue;
[1166] Fix | Delete
}
[1167] Fix | Delete
[1168] Fix | Delete
if ( ! file_exists( $working_dir_local . $file ) ) {
[1169] Fix | Delete
continue;
[1170] Fix | Delete
}
[1171] Fix | Delete
[1172] Fix | Delete
if ( '.' === dirname( $file )
[1173] Fix | Delete
&& in_array( pathinfo( $file, PATHINFO_EXTENSION ), array( 'html', 'txt' ), true )
[1174] Fix | Delete
) {
[1175] Fix | Delete
continue;
[1176] Fix | Delete
}
[1177] Fix | Delete
[1178] Fix | Delete
if ( md5_file( ABSPATH . $file ) === $checksum ) {
[1179] Fix | Delete
$skip[] = $file;
[1180] Fix | Delete
} else {
[1181] Fix | Delete
$check_is_writable[ $file ] = ABSPATH . $file;
[1182] Fix | Delete
}
[1183] Fix | Delete
}
[1184] Fix | Delete
}
[1185] Fix | Delete
}
[1186] Fix | Delete
[1187] Fix | Delete
// If we're using the direct method, we can predict write failures that are due to permissions.
[1188] Fix | Delete
if ( $check_is_writable && 'direct' === $wp_filesystem->method ) {
[1189] Fix | Delete
$files_writable = array_filter( $check_is_writable, array( $wp_filesystem, 'is_writable' ) );
[1190] Fix | Delete
[1191] Fix | Delete
if ( $files_writable !== $check_is_writable ) {
[1192] Fix | Delete
$files_not_writable = array_diff_key( $check_is_writable, $files_writable );
[1193] Fix | Delete
[1194] Fix | Delete
foreach ( $files_not_writable as $relative_file_not_writable => $file_not_writable ) {
[1195] Fix | Delete
// If the writable check failed, chmod file to 0644 and try again, same as copy_dir().
[1196] Fix | Delete
$wp_filesystem->chmod( $file_not_writable, FS_CHMOD_FILE );
[1197] Fix | Delete
[1198] Fix | Delete
if ( $wp_filesystem->is_writable( $file_not_writable ) ) {
[1199] Fix | Delete
unset( $files_not_writable[ $relative_file_not_writable ] );
[1200] Fix | Delete
}
[1201] Fix | Delete
}
[1202] Fix | Delete
[1203] Fix | Delete
// Store package-relative paths (the key) of non-writable files in the WP_Error object.
[1204] Fix | Delete
$error_data = version_compare( $old_wp_version, '3.7-beta2', '>' ) ? array_keys( $files_not_writable ) : '';
[1205] Fix | Delete
[1206] Fix | Delete
if ( $files_not_writable ) {
[1207] Fix | Delete
return new WP_Error(
[1208] Fix | Delete
'files_not_writable',
[1209] Fix | Delete
__( 'The update cannot be installed because your site is unable to copy some files. This is usually due to inconsistent file permissions.' ),
[1210] Fix | Delete
implode( ', ', $error_data )
[1211] Fix | Delete
);
[1212] Fix | Delete
}
[1213] Fix | Delete
}
[1214] Fix | Delete
}
[1215] Fix | Delete
[1216] Fix | Delete
/** This filter is documented in wp-admin/includes/update-core.php */
[1217] Fix | Delete
apply_filters( 'update_feedback', __( 'Enabling Maintenance mode&#8230;' ) );
[1218] Fix | Delete
[1219] Fix | Delete
// Create maintenance file to signal that we are upgrading.
[1220] Fix | Delete
$maintenance_string = '<?php $upgrading = ' . time() . '; ?>';
[1221] Fix | Delete
$maintenance_file = $to . '.maintenance';
[1222] Fix | Delete
$wp_filesystem->delete( $maintenance_file );
[1223] Fix | Delete
$wp_filesystem->put_contents( $maintenance_file, $maintenance_string, FS_CHMOD_FILE );
[1224] Fix | Delete
[1225] Fix | Delete
/** This filter is documented in wp-admin/includes/update-core.php */
[1226] Fix | Delete
apply_filters( 'update_feedback', __( 'Copying the required files&#8230;' ) );
[1227] Fix | Delete
[1228] Fix | Delete
// Copy new versions of WP files into place.
[1229] Fix | Delete
$result = copy_dir( $from . $distro, $to, $skip );
[1230] Fix | Delete
[1231] Fix | Delete
if ( is_wp_error( $result ) ) {
[1232] Fix | Delete
$result = new WP_Error(
[1233] Fix | Delete
$result->get_error_code(),
[1234] Fix | Delete
$result->get_error_message(),
[1235] Fix | Delete
substr( $result->get_error_data(), strlen( $to ) )
[1236] Fix | Delete
);
[1237] Fix | Delete
}
[1238] Fix | Delete
[1239] Fix | Delete
// Since we know the core files have copied over, we can now copy the version file.
[1240] Fix | Delete
if ( ! is_wp_error( $result ) ) {
[1241] Fix | Delete
if ( ! $wp_filesystem->copy( $from . $distro . 'wp-includes/version.php', $to . 'wp-includes/version.php', true /* overwrite */ ) ) {
[1242] Fix | Delete
$wp_filesystem->delete( $from, true );
[1243] Fix | Delete
$result = new WP_Error(
[1244] Fix | Delete
'copy_failed_for_version_file',
[1245] Fix | Delete
__( 'The update cannot be installed because your site is unable to copy some files. This is usually due to inconsistent file permissions.' ),
[1246] Fix | Delete
'wp-includes/version.php'
[1247] Fix | Delete
);
[1248] Fix | Delete
}
[1249] Fix | Delete
[1250] Fix | Delete
$wp_filesystem->chmod( $to . 'wp-includes/version.php', FS_CHMOD_FILE );
[1251] Fix | Delete
[1252] Fix | Delete
/*
[1253] Fix | Delete
* `wp_opcache_invalidate()` only exists in WordPress 5.5 or later,
[1254] Fix | Delete
* so don't run it when upgrading from older versions.
[1255] Fix | Delete
*/
[1256] Fix | Delete
if ( function_exists( 'wp_opcache_invalidate' ) ) {
[1257] Fix | Delete
wp_opcache_invalidate( $to . 'wp-includes/version.php' );
[1258] Fix | Delete
}
[1259] Fix | Delete
}
[1260] Fix | Delete
[1261] Fix | Delete
// Check to make sure everything copied correctly, ignoring the contents of wp-content.
[1262] Fix | Delete
$skip = array( 'wp-content' );
[1263] Fix | Delete
$failed = array();
[1264] Fix | Delete
[1265] Fix | Delete
if ( isset( $checksums ) && is_array( $checksums ) ) {
[1266] Fix | Delete
foreach ( $checksums as $file => $checksum ) {
[1267] Fix | Delete
/*
[1268] Fix | Delete
* Note: str_starts_with() is not used here, as this file is included
[1269] Fix | Delete
* when updating from older WordPress versions, in which case
[1270] Fix | Delete
* the polyfills from wp-includes/compat.php may not be available.
[1271] Fix | Delete
*/
[1272] Fix | Delete
if ( 'wp-content' === substr( $file, 0, 10 ) ) {
[1273] Fix | Delete
continue;
[1274] Fix | Delete
}
[1275] Fix | Delete
[1276] Fix | Delete
if ( ! file_exists( $working_dir_local . $file ) ) {
[1277] Fix | Delete
continue;
[1278] Fix | Delete
}
[1279] Fix | Delete
[1280] Fix | Delete
if ( '.' === dirname( $file )
[1281] Fix | Delete
&& in_array( pathinfo( $file, PATHINFO_EXTENSION ), array( 'html', 'txt' ), true )
[1282] Fix | Delete
) {
[1283] Fix | Delete
$skip[] = $file;
[1284] Fix | Delete
continue;
[1285] Fix | Delete
}
[1286] Fix | Delete
[1287] Fix | Delete
if ( file_exists( ABSPATH . $file ) && md5_file( ABSPATH . $file ) === $checksum ) {
[1288] Fix | Delete
$skip[] = $file;
[1289] Fix | Delete
} else {
[1290] Fix | Delete
$failed[] = $file;
[1291] Fix | Delete
}
[1292] Fix | Delete
}
[1293] Fix | Delete
}
[1294] Fix | Delete
[1295] Fix | Delete
// Some files didn't copy properly.
[1296] Fix | Delete
if ( ! empty( $failed ) ) {
[1297] Fix | Delete
$total_size = 0;
[1298] Fix | Delete
[1299] Fix | Delete
foreach ( $failed as $file ) {
[1300] Fix | Delete
if ( file_exists( $working_dir_local . $file ) ) {
[1301] Fix | Delete
$total_size += filesize( $working_dir_local . $file );
[1302] Fix | Delete
}
[1303] Fix | Delete
}
[1304] Fix | Delete
[1305] Fix | Delete
/*
[1306] Fix | Delete
* If we don't have enough free space, it isn't worth trying again.
[1307] Fix | Delete
* Unlikely to be hit due to the check in unzip_file().
[1308] Fix | Delete
*/
[1309] Fix | Delete
$available_space = function_exists( 'disk_free_space' ) ? @disk_free_space( ABSPATH ) : false;
[1310] Fix | Delete
[1311] Fix | Delete
if ( $available_space && $total_size >= $available_space ) {
[1312] Fix | Delete
$result = new WP_Error( 'disk_full', __( 'There is not enough free disk space to complete the update.' ) );
[1313] Fix | Delete
} else {
[1314] Fix | Delete
$result = copy_dir( $from . $distro, $to, $skip );
[1315] Fix | Delete
[1316] Fix | Delete
if ( is_wp_error( $result ) ) {
[1317] Fix | Delete
$result = new WP_Error(
[1318] Fix | Delete
$result->get_error_code() . '_retry',
[1319] Fix | Delete
$result->get_error_message(),
[1320] Fix | Delete
substr( $result->get_error_data(), strlen( $to ) )
[1321] Fix | Delete
);
[1322] Fix | Delete
}
[1323] Fix | Delete
}
[1324] Fix | Delete
}
[1325] Fix | Delete
[1326] Fix | Delete
/*
[1327] Fix | Delete
* Custom content directory needs updating now.
[1328] Fix | Delete
* Copy languages.
[1329] Fix | Delete
*/
[1330] Fix | Delete
if ( ! is_wp_error( $result ) && $wp_filesystem->is_dir( $from . $distro . 'wp-content/languages' ) ) {
[1331] Fix | Delete
if ( WP_LANG_DIR !== ABSPATH . WPINC . '/languages' || @is_dir( WP_LANG_DIR ) ) {
[1332] Fix | Delete
$lang_dir = WP_LANG_DIR;
[1333] Fix | Delete
} else {
[1334] Fix | Delete
$lang_dir = WP_CONTENT_DIR . '/languages';
[1335] Fix | Delete
}
[1336] Fix | Delete
/*
[1337] Fix | Delete
* Note: str_starts_with() is not used here, as this file is included
[1338] Fix | Delete
* when updating from older WordPress versions, in which case
[1339] Fix | Delete
* the polyfills from wp-includes/compat.php may not be available.
[1340] Fix | Delete
*/
[1341] Fix | Delete
// Check if the language directory exists first.
[1342] Fix | Delete
if ( ! @is_dir( $lang_dir ) && 0 === strpos( $lang_dir, ABSPATH ) ) {
[1343] Fix | Delete
// If it's within the ABSPATH we can handle it here, otherwise they're out of luck.
[1344] Fix | Delete
$wp_filesystem->mkdir( $to . str_replace( ABSPATH, '', $lang_dir ), FS_CHMOD_DIR );
[1345] Fix | Delete
clearstatcache(); // For FTP, need to clear the stat cache.
[1346] Fix | Delete
}
[1347] Fix | Delete
[1348] Fix | Delete
if ( @is_dir( $lang_dir ) ) {
[1349] Fix | Delete
$wp_lang_dir = $wp_filesystem->find_folder( $lang_dir );
[1350] Fix | Delete
[1351] Fix | Delete
if ( $wp_lang_dir ) {
[1352] Fix | Delete
$result = copy_dir( $from . $distro . 'wp-content/languages/', $wp_lang_dir );
[1353] Fix | Delete
[1354] Fix | Delete
if ( is_wp_error( $result ) ) {
[1355] Fix | Delete
$result = new WP_Error(
[1356] Fix | Delete
$result->get_error_code() . '_languages',
[1357] Fix | Delete
$result->get_error_message(),
[1358] Fix | Delete
substr( $result->get_error_data(), strlen( $wp_lang_dir ) )
[1359] Fix | Delete
);
[1360] Fix | Delete
}
[1361] Fix | Delete
}
[1362] Fix | Delete
}
[1363] Fix | Delete
}
[1364] Fix | Delete
[1365] Fix | Delete
/** This filter is documented in wp-admin/includes/update-core.php */
[1366] Fix | Delete
apply_filters( 'update_feedback', __( 'Disabling Maintenance mode&#8230;' ) );
[1367] Fix | Delete
[1368] Fix | Delete
// Remove maintenance file, we're done with potential site-breaking changes.
[1369] Fix | Delete
$wp_filesystem->delete( $maintenance_file );
[1370] Fix | Delete
[1371] Fix | Delete
/*
[1372] Fix | Delete
* 3.5 -> 3.5+ - an empty twentytwelve directory was created upon upgrade to 3.5 for some users,
[1373] Fix | Delete
* preventing installation of Twenty Twelve.
[1374] Fix | Delete
*/
[1375] Fix | Delete
if ( '3.5' === $old_wp_version ) {
[1376] Fix | Delete
if ( is_dir( WP_CONTENT_DIR . '/themes/twentytwelve' )
[1377] Fix | Delete
&& ! file_exists( WP_CONTENT_DIR . '/themes/twentytwelve/style.css' )
[1378] Fix | Delete
) {
[1379] Fix | Delete
$wp_filesystem->delete( $wp_filesystem->wp_themes_dir() . 'twentytwelve/' );
[1380] Fix | Delete
}
[1381] Fix | Delete
}
[1382] Fix | Delete
[1383] Fix | Delete
/*
[1384] Fix | Delete
* Copy new bundled plugins & themes.
[1385] Fix | Delete
* This gives us the ability to install new plugins & themes bundled with
[1386] Fix | Delete
* future versions of WordPress whilst avoiding the re-install upon upgrade issue.
[1387] Fix | Delete
* $development_build controls us overwriting bundled themes and plugins when a non-stable release is being updated.
[1388] Fix | Delete
*/
[1389] Fix | Delete
if ( ! is_wp_error( $result )
[1390] Fix | Delete
&& ( ! defined( 'CORE_UPGRADE_SKIP_NEW_BUNDLED' ) || ! CORE_UPGRADE_SKIP_NEW_BUNDLED )
[1391] Fix | Delete
) {
[1392] Fix | Delete
foreach ( (array) $_new_bundled_files as $file => $introduced_version ) {
[1393] Fix | Delete
// If a $development_build or if $introduced version is greater than what the site was previously running.
[1394] Fix | Delete
if ( $development_build || version_compare( $introduced_version, $old_wp_version, '>' ) ) {
[1395] Fix | Delete
$directory = ( '/' === $file[ strlen( $file ) - 1 ] );
[1396] Fix | Delete
[1397] Fix | Delete
list( $type, $filename ) = explode( '/', $file, 2 );
[1398] Fix | Delete
[1399] Fix | Delete
// Check to see if the bundled items exist before attempting to copy them.
[1400] Fix | Delete
if ( ! $wp_filesystem->exists( $from . $distro . 'wp-content/' . $file ) ) {
[1401] Fix | Delete
continue;
[1402] Fix | Delete
}
[1403] Fix | Delete
[1404] Fix | Delete
if ( 'plugins' === $type ) {
[1405] Fix | Delete
$dest = $wp_filesystem->wp_plugins_dir();
[1406] Fix | Delete
} elseif ( 'themes' === $type ) {
[1407] Fix | Delete
// Back-compat, ::wp_themes_dir() did not return trailingslash'd pre-3.2.
[1408] Fix | Delete
$dest = trailingslashit( $wp_filesystem->wp_themes_dir() );
[1409] Fix | Delete
} else {
[1410] Fix | Delete
continue;
[1411] Fix | Delete
}
[1412] Fix | Delete
[1413] Fix | Delete
if ( ! $directory ) {
[1414] Fix | Delete
if ( ! $development_build && $wp_filesystem->exists( $dest . $filename ) ) {
[1415] Fix | Delete
continue;
[1416] Fix | Delete
}
[1417] Fix | Delete
[1418] Fix | Delete
if ( ! $wp_filesystem->copy( $from . $distro . 'wp-content/' . $file, $dest . $filename, FS_CHMOD_FILE ) ) {
[1419] Fix | Delete
$result = new WP_Error( "copy_failed_for_new_bundled_$type", __( 'Could not copy file.' ), $dest . $filename );
[1420] Fix | Delete
}
[1421] Fix | Delete
} else {
[1422] Fix | Delete
if ( ! $development_build && $wp_filesystem->is_dir( $dest . $filename ) ) {
[1423] Fix | Delete
continue;
[1424] Fix | Delete
}
[1425] Fix | Delete
[1426] Fix | Delete
$wp_filesystem->mkdir( $dest . $filename, FS_CHMOD_DIR );
[1427] Fix | Delete
$_result = copy_dir( $from . $distro . 'wp-content/' . $file, $dest . $filename );
[1428] Fix | Delete
[1429] Fix | Delete
/*
[1430] Fix | Delete
* If an error occurs partway through this final step,
[1431] Fix | Delete
* keep the error flowing through, but keep the process going.
[1432] Fix | Delete
*/
[1433] Fix | Delete
if ( is_wp_error( $_result ) ) {
[1434] Fix | Delete
if ( ! is_wp_error( $result ) ) {
[1435] Fix | Delete
$result = new WP_Error();
[1436] Fix | Delete
}
[1437] Fix | Delete
[1438] Fix | Delete
$result->add(
[1439] Fix | Delete
$_result->get_error_code() . "_$type",
[1440] Fix | Delete
$_result->get_error_message(),
[1441] Fix | Delete
substr( $_result->get_error_data(), strlen( $dest ) )
[1442] Fix | Delete
);
[1443] Fix | Delete
}
[1444] Fix | Delete
}
[1445] Fix | Delete
}
[1446] Fix | Delete
} // End foreach.
[1447] Fix | Delete
}
[1448] Fix | Delete
[1449] Fix | Delete
// Handle $result error from the above blocks.
[1450] Fix | Delete
if ( is_wp_error( $result ) ) {
[1451] Fix | Delete
$wp_filesystem->delete( $from, true );
[1452] Fix | Delete
[1453] Fix | Delete
return $result;
[1454] Fix | Delete
}
[1455] Fix | Delete
[1456] Fix | Delete
// Remove old files.
[1457] Fix | Delete
foreach ( $_old_files as $old_file ) {
[1458] Fix | Delete
$old_file = $to . $old_file;
[1459] Fix | Delete
[1460] Fix | Delete
if ( ! $wp_filesystem->exists( $old_file ) ) {
[1461] Fix | Delete
continue;
[1462] Fix | Delete
}
[1463] Fix | Delete
[1464] Fix | Delete
// If the file isn't deleted, try writing an empty string to the file instead.
[1465] Fix | Delete
if ( ! $wp_filesystem->delete( $old_file, true ) && $wp_filesystem->is_file( $old_file ) ) {
[1466] Fix | Delete
$wp_filesystem->put_contents( $old_file, '' );
[1467] Fix | Delete
}
[1468] Fix | Delete
}
[1469] Fix | Delete
[1470] Fix | Delete
// Remove any Genericons example.html's from the filesystem.
[1471] Fix | Delete
_upgrade_422_remove_genericons();
[1472] Fix | Delete
[1473] Fix | Delete
// Deactivate the REST API plugin if its version is 2.0 Beta 4 or lower.
[1474] Fix | Delete
_upgrade_440_force_deactivate_incompatible_plugins();
[1475] Fix | Delete
[1476] Fix | Delete
// Deactivate incompatible plugins.
[1477] Fix | Delete
_upgrade_core_deactivate_incompatible_plugins();
[1478] Fix | Delete
[1479] Fix | Delete
// Upgrade DB with separate request.
[1480] Fix | Delete
/** This filter is documented in wp-admin/includes/update-core.php */
[1481] Fix | Delete
apply_filters( 'update_feedback', __( 'Upgrading database&#8230;' ) );
[1482] Fix | Delete
[1483] Fix | Delete
$db_upgrade_url = admin_url( 'upgrade.php?step=upgrade_db' );
[1484] Fix | Delete
wp_remote_post( $db_upgrade_url, array( 'timeout' => 60 ) );
[1485] Fix | Delete
[1486] Fix | Delete
// Clear the cache to prevent an update_option() from saving a stale db_version to the cache.
[1487] Fix | Delete
wp_cache_flush();
[1488] Fix | Delete
// Not all cache back ends listen to 'flush'.
[1489] Fix | Delete
wp_cache_delete( 'alloptions', 'options' );
[1490] Fix | Delete
[1491] Fix | Delete
// Remove working directory.
[1492] Fix | Delete
$wp_filesystem->delete( $from, true );
[1493] Fix | Delete
[1494] Fix | Delete
// Force refresh of update information.
[1495] Fix | Delete
if ( function_exists( 'delete_site_transient' ) ) {
[1496] Fix | Delete
delete_site_transient( 'update_core' );
[1497] Fix | Delete
} else {
[1498] Fix | Delete
delete_option( 'update_core' );
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function