« Class not found » : classe PHP introuvable sur votre site WordPress

Fiche du décodeur d'erreurs, mise à jour le 12 octobre 2026

BloquantErreurs PHP
Le message affiché
Fatal error: Uncaught Error: Class "Elementor\Widget_Base" not found
Autres formulations du même message 3
  • Fatal error: Uncaught Error: Class 'Elementor\Widget_Base' not found
  • Fatal error: Class 'WC_Payment_Gateway' not found
  • PHP Fatal error: Uncaught Error: Interface "Psr\Log\LoggerInterface" not found

PHP doit utiliser une classe, un modèle d’objet défini dans le code, qu’il ne trouve dans aucun fichier chargé. Soit l’extension qui la fournit est désactivée ou incomplète, soit c’est une classe de PHP lui-même dont l’extension n’est pas activée sur le serveur, comme ZipArchive ou SoapClient. Le nom entre guillemets indique laquelle manque.

Pourquoi cette erreur apparaît

  • Un module complémentaire est actif alors que l’extension principale dont il dépend (WooCommerce, Elementor…) est désactivée.
  • Des fichiers manquent après une mise à jour interrompue ou un transfert incomplet, notamment le dossier vendor d’une extension.
  • Une extension de PHP n’est pas activée : zip pour ZipArchive, soap pour SoapClient, intl pour NumberFormatter, imagick pour Imagick.
  • Après un déménagement vers un serveur Linux, un nom de fichier n’a plus les majuscules attendues par le code.
  • Un code personnalisé utilise la classe d’une extension avant que celle-ci soit chargée.

Comment corriger le problème

Repérer d’où vient la classe

Le nom entre guillemets est la clé. Dans ElementorWidget_Base, la partie avant la barre oblique inversée nomme souvent l’éditeur ; WC_ renvoie à WooCommerce. ZipArchive, SoapClient, DOMDocument, NumberFormatter ou Imagick sont des classes de PHP, fournies par des extensions du serveur.

Réactiver l’extension principale

Si un module complémentaire réclame une classe de WooCommerce ou d’Elementor, vérifiez que l’extension principale est installée, active et à jour. Si l’administration est bloquée, renommez par FTP le dossier du module, réactivez l’extension principale, puis rendez son nom au dossier.

Réinstaller une extension incomplète

Si la classe appartient à l’extension citée dans le chemin, ses fichiers sont sans doute incomplets. Téléchargez une copie neuve depuis sa source officielle, renommez l’ancien dossier, puis envoyez le nouveau par FTP. Les réglages, enregistrés dans la base, sont conservés.

Activer l’extension PHP manquante

Pour une classe de PHP, cochez l’extension correspondante (zip, soap, intl, xml, imagick) dans le sélecteur de version PHP de l’hébergement, ou demandez-la au support. Sur un VPS sous Debian ou Ubuntu, installez le paquet adapté à votre version de PHP puis redémarrez PHP.

sudo apt install php8.3-zip php8.3-soap php8.3-intl
sudo systemctl restart php8.3-fpm

Vérifier majuscules et ordre de chargement

Après une migration depuis Windows ou macOS, comparez les noms de fichiers avec ceux attendus par le code : Linux distingue Class-Loader.php de class-loader.php. Dans un mu-plugin, le code s’exécute avant les extensions classiques : attendez le hook plugins_loaded et testez la présence de la classe.

add_action( 'plugins_loaded', function () {
	if ( class_exists( 'WooCommerce' ) ) {
		// votre code
	}
} );

Sauvegardez le site et gardez l’ancien dossier de l’extension, simplement renommé, jusqu’à ce que la nouvelle copie fonctionne.

Le guide completErreur critique WordPress : la méthode pour sortir de l’écran blanc sans paniquer 💥

Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.

Ouvrir le décodeur