Jak zapisać i powiadomić przez e-mail, gdy wtyczka WordPress jest wyłączona lub usunięta?

Czasami chcesz mieć pewność, że konkretna niezbędna wtyczka nigdy nie zostanie usunięta z Twojej strony WordPress, lub przynajmniej chcesz być powiadamiany za każdym razem, gdy to nastąpi.

Wyobraź sobie, że masz wtyczkę podatkową, która oblicza podatek w Twoim systemie sklepowym WooCommerce lub Easy Digital Downloads. Jeśli ta wtyczka zostanie z jakiegoś powodu wyłączona, wszystkie Twoje ceny zakupu zostaną źle obliczone i może minąć trochę czasu, zanim to zauważysz.

Nie ma 100% ochrony zapobiegającej wyłączeniu wtyczki na Twojej stronie WordPress, ale gdy to się stanie, możesz skopiować poniższy kod do mu-wtyczki takiej jak plugin-logger.php i dodać ją do folderu 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);

Gdy którakolwiek z zainstalowanych wtyczek zostanie wyłączona lub usunięta przez hooki WordPress deleted_plugin lub deactivated_plugin, otrzymasz powiadomienie e-mail. Raport zostanie również zapisany w pliku wp-content//7263767234-deleted-plugins.log.

Ze względów bezpieczeństwa zalecam dostosowanie ścieżki i nazwy pliku.

Powiązane artykuły

Rene Hermenau

Autor: Rene Hermenau

O autorze: René Hermenau jest założycielem WP STAGING. Zajmuje się kopiami zapasowymi WordPressa, środowiskami stagingowymi, migracjami, obsługą baz danych oraz bezpiecznymi procesami wdrażania.