CodeCorn™ Must-Use Plugin
Blocca completamente gli aggiornamenti del core WordPress , sia automatici che manuali .
Pensato per ambienti gestiti , enterprise , Docker , CI/CD dove gli update devono essere controllati centralmente e non lasciati alla UI WordPress .
- ❌ Disabilita il check degli aggiornamenti core
- ❌ Disabilita gli aggiornamenti automatici
- ❌ Nasconde la pagina Bacheca → Aggiornamenti
- ❌ Blocca l’accesso diretto a
update-core.php - ✅ Zero configurazione
- ✅ Zero overhead
- ✅ MU-Plugin ( non disattivabile da admin )
- ✅ Zero overhead
- ✅ Kill-switch centralizzato via ENV / wp-config
- ✅ WP-CLI sempre consentito
Il comportamento del plugin può essere abilitato / disabilitato centralmente senza toccare il file.
CC_LCU_ENABLED=truedefine('CC_LCU_ENABLED', false);define('CC_LCU_LOCK_CORE', false);define('CC_LCU_LOCK_PLUGINS', false);// nessuna define
⚠️ Usane SOLO UNO, in base alla versione di PHP in uso.
add_filter('cc_lcu_blocked_plugin_update_ui', function ($plugins) { $plugins = array_merge($plugins, [ 'altro-plugin/altro-plugin.php', 'secondo-plugin/secondo-plugin.php', 'terzo-plugin/terzo-plugin.php', ]); return array_unique($plugins); });add_filter('cc_lcu_blocked_plugin_update_ui', function ($plugins) { return array_unique([ ...$plugins, 'altro-plugin/altro-plugin.php', 'secondo-plugin/secondo-plugin.php', 'terzo-plugin/terzo-plugin.php', ]); });- ❌ NON usare entrambi i filtri
- ✅ La logica è identica, cambia solo la sintassi
- 📌 Il MU-plugin dichiara
Requires PHP: 7.2 - 🔧 Ambienti Docker / Enterprise possono usare tranquillamente PHP ≥ 7.4
- Produzione conservativa → versione PHP < 7.4
- Ambienti moderni / CI-CD → versione PHP ≥ 7.4
- Futuro v1.5.0 → possibile bump requisito PHP
add_filter('cc_lcu_allowed_emails', function ($emails, $user) { $emails[] = 'admin@codecorn.it'; return $emails; }, 10, 2);add_filter('cc_lcu_allowed_emails', function ($emails, $user) { if (in_array('administrator', (array) $user->roles, true)) { $emails[] = $user->user_email; } return array_unique($emails); }, 10, 2);CC_LCU_ENABLED| Valore | Effetto |
|---|---|
true | MU attivo |
false | MU completamente bypassato |
defined('CC_LCU_ENABLED') || define( 'CC_LCU_ENABLED', filter_var( getenv('CC_LCU_ENABLED') ?: true, FILTER_VALIDATE_BOOLEAN ) );CC_LCU_ENABLED=trueif (! apply_filters('cc_lcu_enabled', CC_LCU_ENABLED)) { return; }Uso :
add_filter('cc_lcu_enabled', '__return_false');do_action( 'cc_lcu_blocked_access', $user, $pagenow );if ( defined('WP_ENVIRONMENT_TYPE') && WP_ENVIRONMENT_TYPE !== 'production' ) { return; }mkdir -p wp-content/mu-plugins || exit 1 cd wp-content/mu-plugins || exit 1 curl -O https://raw.githubusercontent.com/CodeCornTech/mu-cc-lock-core-updates/main/mu-cc-lock-core-updates.phpOppure copia manualmente :
wp-content/mu-plugins/mu-cc-lock-core-updates.php I MU-plugin vengono caricati automaticamente da WordPress. Non è necessario attivarli dalla UI admin.
Per aggiornare il plugin all’ultima versione disponibile senza rimuovere il file :
cd wp-content/mu-plugins || exit 1 curl -L -o mu-cc-lock-core-updates.php \ https://github.com/CodeCornTech/mu-cc-lock-core-updates/releases/latest/download/mu-cc-lock-core-updates.php✔ sovrascrive il file esistente ✔ mantiene permessi e path ✔ compatibile con Docker / CI-CD ✔ zero downtime
curl -fsSL \ https://github.com/CodeCornTech/mu-cc-lock-core-updates/releases/latest/download/mu-cc-lock-core-updates.php \ -o /var/www/html/wp-content/mu-plugins/mu-cc-lock-core-updates.php- usare sempre
releases/latest( nonmain) - versionamento controllato
- update idempotente
- rollback immediato possibile
Questo plugin è consigliato se :
- usi Docker / Kubernetes
- deployi via CI/CD
- hai update gestiti esternamente
- lavori su hosting enterprise
- vuoi evitare update accidentali in produzione
❌ Non consigliato su siti entry-level o hosting condivisi senza controllo versioni .
Una volta attivo :
- WordPress non rileva aggiornamenti core
- WordPress non esegue aggiornamenti automatici
- Gli admin non vedono la pagina aggiornamenti
- L’accesso diretto viene bloccato con HTTP 403
- WordPress ≥ 5.8
- Testato fino a WordPress 6.9
- PHP ≥ 7.4
- Multisite ✅
Seguendo Semantic Versioning :
MAJOR.MINOR.PATCH Se si vuole essere ancora più paranoico ( staging , plugin terzi aggressivi ) :
static $ran = false; if ($ran) { return; } $ran = true;Usabile insieme o al posto di did_action.
CodeCorn™ 👉 https://github.com/CodeCornTech