SafeCore PRO
Documentation
Guide complet pour installer, configurer et maîtriser SafeCore PRO.
Démarrage rapide
Qu'est-ce que SafeCore PRO ?
SafeCore PRO est un plugin WordPress qui protège votre site contre les mises à jour catastrophiques. Avant chaque mise à jour de plugin ou de thème, SafeCore crée automatiquement un snapshot complet (archive ZIP du dossier + export des options WordPress). Si la mise à jour provoque un crash ou une erreur fatale, SafeCore détecte le problème et effectue un rollback automatique — sans aucune intervention de votre part.
Prérequis
- WordPress 5.6 ou supérieur
- PHP 7.4 ou supérieur
- Extension PHP
ZipArchiveactivée - Droits d'écriture sur
wp-content/plugins/safecore/data/ - cURL activé (pour les notifications Slack) Optionnel
Installation
- 1Téléchargez le fichier
safecore.zipdepuis votre espace client. - 2Dans votre back-office WordPress, allez dans Extensions → Ajouter une extension.
- 3Cliquez sur Téléverser une extension, sélectionnez le fichier ZIP et installez.
- 4Activez l'extension. SafeCore s'installe aussi automatiquement comme MU-Plugin pour garantir un chargement prioritaire.
Conseil
SafeCore se déploie aussi comme MU-plugin (wp-content/mu-plugins/safecore-boot.php) pour s'assurer qu'il se charge avant tous les autres plugins, même si WordPress est partiellement cassé.
Activation de la licence
- 1Une fois activé, rendez-vous dans SafeCore → Paramètres dans le menu d'administration.
- 2Collez votre clé de licence (disponible dans votre tableau de bord client) dans le champ Clé de licence.
- 3Cliquez sur Activer. SafeCore contacte le serveur de licences et confirme l'activation.
Note
Votre licence est liée à votre domaine. Pour migrer SafeCore vers un autre site, désactivez d'abord la licence depuis les Paramètres.
Comment ça marche
Le pipeline de mise à jour
Lorsque vous cliquez sur "Mettre à jour" pour un plugin ou un thème, SafeCore intercepte l'action avant que WordPress n'exécute la mise à jour native. Voici les 4 étapes :
Étape 1
Snapshot — SafeCore compresse le dossier du plugin/thème en un fichier ZIP et exporte les options WordPress concernées.
Étape 2
Mise à jour — WordPress effectue la mise à jour normalement via son système natif.
Étape 3
Health Check — SafeCore interroge une URL de santé (votre homepage par défaut) et vérifie que le site répond correctement (HTTP 200).
Étape 4
Rollback ou Succès — Si le health check échoue, SafeCore restaure automatiquement le snapshot. Sinon, la mise à jour est validée.
Interception JavaScript
SafeCore injecte un script JavaScript sur les pages d'administration des extensions et des thèmes. Ce script écoute en capture tous les clics sur les boutons de mise à jour. Lorsqu'un clic est détecté, SafeCore affiche son modal Sentinel, empêche WordPress d'exécuter la mise à jour directement, et lance son propre pipeline AJAX.
Mises à jour groupées natives
Pour les mises à jour groupées lancées depuis le tableau de bord WordPress (sans passer par le modal SafeCore), le plugin se connecte aux hooks natifs upgrader_pre_install et upgrader_process_complete pour créer les snapshots et effectuer les vérifications.
Snapshots
Contenu d'un snapshot
Un snapshot SafeCore contient deux éléments :
- Archive ZIP du dossier complet du plugin ou du thème mis à jour.
- Export JSON des options WordPress (
wp_options) liées au plugin.
Les snapshots sont stockés dans plugins/safecore/data/, protégés par un fichier .htaccess qui bloque tout accès HTTP direct.
Limite et rotation
SafeCore conserve un maximum de 5 snapshots. Au-delà, le plus ancien est automatiquement supprimé pour libérer de l'espace. La taille d'un snapshot dépend du plugin ou thème sauvegardé.
Télécharger un snapshot
Depuis l'onglet Historique du tableau de bord SafeCore, chaque entrée de snapshot affiche un bouton de téléchargement. Le fichier ZIP est servi via un handler AJAX sécurisé (nonce + vérification de capacité administrateur).
Snapshot manuel
Vous pouvez créer un snapshot manuel à tout moment depuis l'onglet Historique, sans déclencher de mise à jour.
Paramètres
Accédez aux paramètres depuis SafeCore → Paramètres dans le menu WordPress.
Mode de récupération
Définit l'action automatique de SafeCore lorsqu'une mise à jour provoque un crash.
- Rollback — SafeCore restaure automatiquement la version précédente du plugin ou du thème à partir du snapshot. Mode recommandé.
- Isolation — SafeCore désactive le composant défaillant en le renommant temporairement, sans toucher la base de données. Mécanisme de dernier recours si aucun snapshot n'est disponible.
URL de santé
URL que SafeCore interroge après chaque mise à jour pour vérifier que le site fonctionne. Par défaut : la page d'accueil du site. Vous pouvez définir une URL personnalisée (ex : une page de test dédiée retournant HTTP 200).
Notifications email
En cas de crash détecté, SafeCore envoie un email d'alerte à l'adresse administrateur du site. L'email contient : le nom du plugin/thème concerné, le message d'erreur, et l'action de récupération effectuée (rollback ou isolation).
Webhook Slack
Collez l'URL de votre Incoming Webhook Slack pour recevoir des alertes instantanées. SafeCore envoie un payload au format Slack Block Kit incluant le site, le plugin, l'erreur et le statut de récupération.
White-label
Disponible sur le plan Agence. Permet de personnaliser le nom et l'icône du menu SafeCore dans l'administration WordPress — utile pour les agences qui revendent le service à leurs clients.
Récupération & Rollback
Rollback automatique
Lorsqu'une mise à jour provoque un health check échoué (HTTP non-200, timeout, ou erreur fatale PHP), SafeCore déclenche immédiatement la restauration du snapshot. La mise à jour défaillante est écrasée par l'archive sauvegardée. L'opération est quasi instantanée.
Rollback manuel
Depuis l'onglet Historique, chaque snapshot est accompagné d'un bouton Restaurer. Ce bouton effectue le même processus de rollback que l'automatique, mais déclenché manuellement à tout moment.
Isolation de plugin
Lorsque SafeCore détecte un plugin défaillant mais ne peut pas effectuer un rollback propre (ex : le plugin est nouveau, pas encore en snapshot), il peut isoler le plugin en le renommant temporairement pour le désactiver sans passer par la base de données — un mécanisme de dernier recours qui fonctionne même si WordPress ne démarre plus.
Script de récupération standalone
SafeCore déploie un script PHP autonome à l'adresse wp-content/safecore/recovery-{hash}.php. Ce script fonctionne sans WordPress — il peut restaurer un snapshot même si votre site est complètement cassé et affiche une page blanche. L'URL exacte est affichée dans votre tableau de bord SafeCore.
wp-content/safecore/recovery-{hash}.phpAttention
Conservez l'URL du script de récupération dans un endroit sûr. Elle constitue votre dernière ligne de défense en cas de crash total.
Fatal Error Handler
SafeCore installe un handler d'erreurs fatales PHP personnalisé (wp-content/fatal-error-handler.php) qui intercepte les erreurs fatales avant que WordPress ne les traite. Cela permet à SafeCore de déclencher un rollback même si PHP crashe avant de terminer le chargement de WordPress.
wp-content/fatal-error-handler.php
Historique & Journal d'audit
L'onglet Historique du tableau de bord SafeCore affiche un journal complet de toutes les opérations effectuées.
Contenu d'une entrée
- Plugin / Thème — Nom et slug de l'élément mis à jour.
- Action — Type d'opération : snapshot, update, rollback, isolation.
- Statut — Succès, Rollback effectué, ou Isolé.
- Date & Heure — Horodatage précis de l'opération.
- Taille — Taille du snapshot en Mo.
Stockage
L'historique est stocké au format JSON dans plugins/safecore/data/history.json. Il n'est pas écrit en base de données pour éviter les conflits avec les opérations de restauration.
plugins/safecore/data/history.json
Notifications
Alertes email
Un email est automatiquement envoyé à l'administrateur WordPress lors d'un crash détecté. Le contenu inclut :
- Nom et URL du site
- Nom et version du plugin/thème défaillant
- Message d'erreur ou code HTTP retourné
- Action effectuée (rollback automatique, isolation)
- Horodatage
Slack / Webhook
SafeCore envoie un payload au format Slack Block Kit vers l'URL webhook configurée. Conçu pour Slack. Tout service acceptant du HTTP POST JSON recevra la notification via le champ text, mais le formatage riche (blocs, champs) est natif Slack uniquement.
Exemple de payload Slack :
{
"site": "https://yoursite.com",
"plugin": "woocommerce/woocommerce.php",
"version_new": "8.4.0",
"version_old": "8.3.0",
"status": "rollback",
"error": "HTTP 500 — Fatal error in class-wc-cart.php",
"timestamp": "2026-03-13T14:22:05Z"
}Résolution de problèmes
Erreur 500 lors de la mise à jour
Vérifiez le log PHP de votre serveur. Les causes les plus fréquentes sont : l'extension ZipArchive non installée, des droits d'écriture insuffisants sur plugins/safecore/data/, ou un timeout PHP trop court. Augmentez max_execution_time à 120 secondes minimum.
Le snapshot n'est pas créé
Assurez-vous que le dossier plugins/safecore/data/ est accessible en écriture par le processus PHP (permissions 755 ou 775). Si le dossier n'existe pas, SafeCore tente de le créer automatiquement.
SafeCore n'intercepte pas les clics
Vérifiez que le MU-Plugin est bien présent dans wp-content/mu-plugins/safecore-boot.php. Si le fichier est absent, désactivez et réactivez SafeCore pour le re-déployer. Vérifiez aussi qu'aucun autre plugin ne bloque le script JavaScript de SafeCore.
Réinitialiser l'état de SafeCore
Si SafeCore est bloqué dans un état de récupération ou affiche des données incohérentes, vous pouvez réinitialiser en supprimant le fichier plugins/safecore/data/state.json. Attention : cela efface l'état courant mais pas l'historique ni les snapshots.
Contacter le support
Si le problème persiste, ouvrez un ticket depuis l'onglet Support de votre tableau de bord SafeCore. Incluez le contenu de votre log PHP et le fichier state.json pour un diagnostic rapide.
Changelog
13 mars 2026
- Moteur de snapshot : compression ZIP + export wp_options
- Modal Sentinel avec pipeline AJAX en temps réel
- Health check post-mise à jour avec rollback automatique
- Isolation de plugin (mode dernier recours)
- Script de récupération standalone (sans WordPress)
- Fatal error handler dropin PHP
- Notifications email et Slack
- Historique JSON avec téléchargement de snapshots
- Support multi-langue : Anglais, Français, Arabe
- White-label pour les agences (plan Agence)
- Protection des mises à jour groupées natives WordPress