Skip to content

Commit 6f5d207

Browse files
committed
Account for classes written with incorrect cases
1 parent b842a10 commit 6f5d207

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

src/wp-includes/class-wp-autoload.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,13 @@ final class WP_Autoload {
346346
'WP_Privacy_Data_Removal_Requests_Table' => 'wp-admin/includes/deprecated.php',
347347
);
348348

349+
/**
350+
* An array of lowercased WP classes to accomodate scenarios where the class name is written with wrong cases.
351+
*
352+
* @var array
353+
*/
354+
private static $lowercased_wp_classes = array();
355+
349356
/**
350357
* Additional autoloaders for bundled libraries.
351358
*
@@ -404,6 +411,13 @@ public static function register() {
404411
spl_autoload_register( $autoloader['callback'], true, true );
405412
}
406413
}
414+
415+
foreach ( static::$classes_paths as $class => $path ) {
416+
static::$lowercased_wp_classes[ strtolower( $class ) ] = array(
417+
'name' => $class,
418+
'path' => $path,
419+
);
420+
}
407421
static::$registered = true;
408422
}
409423

@@ -416,6 +430,15 @@ public static function register() {
416430
public static function autoload( $class ) {
417431
if ( isset( static::$classes_paths[ $class ] ) ) {
418432
require_once ABSPATH . static::$classes_paths[ $class ];
433+
return;
434+
}
435+
436+
// Account for classes written with incorrect cases.
437+
if ( isset( static::$lowercased_wp_classes[ strtolower( $class ) ] ) ) {
438+
$class_details = static::$lowercased_wp_classes[ strtolower( $class ) ];
439+
trigger_error( sprintf( 'Class name "%s" is invalid. Use "%s" instead.', $class, $class_details['name'] ), E_USER_NOTICE );
440+
require_once ABSPATH . $class_details['path'];
441+
return;
419442
}
420443
}
421444
}

0 commit comments

Comments
 (0)