Come registrare e notificare via email quando un plugin WordPress viene disattivato o eliminato?

A volte, vuoi assicurarti che uno specifico plugin essenziale non venga mai eliminato dal tuo sito WordPress, o almeno vuoi essere notificato ogni volta che ciò accade.

Immagina di avere un plugin per le tasse che calcola le imposte nel tuo sistema di negozio WooCommerce o Easy Digital Downloads. Se questo plugin viene disabilitato per qualche motivo, tutti i tuoi prezzi di acquisto saranno calcolati in modo errato e potrebbe volerci un po’ di tempo prima che tu te ne accorga.

Non esiste una protezione al 100% per impedire che un plugin venga disabilitato sul tuo sito WordPress, ma quando accade, puoi copiare il seguente codice in un mu-plugin come plugin-logger.php e aggiungerlo alla cartella wp-content/mu-plugins.

PHP
<?php

/*
 * Plugin Name: Log deleted plugins by WP Staging
 * Plugin URI: https://wp-staging.com
 * Description: Write a log file whenever a plugin is deleted or deactivated plugins.
 *
 * This is a must-use standalone plugin.
 *
 * Author: WP Staging
 * Version: 1.0
 * Author URI: https://wp-staging.com
 */

add_action('deactivated_plugin', function ($plugin_file) {

    $datetime = date('d-m-Y H:i:s');

    $message = "[{$datetime}] Deactivated plugin {$plugin_file}";

    error_log(
        "$messagen",
        3,
        WP_CONTENT_DIR . "/7263767234-deleted-plugins.log"
    );

    wp_mail('youremailaddress@example.com', 'Plugin deactivated on example.com', $message);

}, 20, 2);

add_action('deleted_plugin', function ($plugin_file, $deleted) {

    if ($deleted) {

        $datetime = date('d-m-Y H:i:s');

        $message = "[{$datetime}] Deleted plugin {$plugin_file}";

        error_log(
            "[{$datetime}] Deleted plugin {$plugin_file}n",
            3,
            WP_CONTENT_DIR . "/7263767234-deleted-plugins.log"
        );

        wp_mail('youremailaddress@example.com', 'Plugin deleted on example.com', $message);
    }

}, 20, 2);

Una volta che uno qualsiasi dei plugin installati viene disabilitato o eliminato tramite gli hook di WordPress deleted_plugin o deactivated_plugin, riceverai una notifica via e-mail. Il report verrà anche registrato nel file wp-content//7263767234-deleted-plugins.log.

Consiglio di modificare il percorso e il nome del file per motivi di sicurezza.

Articoli correlati

Rene Hermenau

Autore: Rene Hermenau

Informazioni sull'autore: René Hermenau è il fondatore di WP STAGING. Si occupa di backup WordPress, staging, migrazioni, gestione dei database e flussi di deployment sicuri.