WordPressプラグインが無効化または削除された場合にメールでログ記録し通知する方法

特定の重要なプラグインがWordPressウェブサイトから決して削除されないようにしたい、または少なくともそれが発生したときに通知を受け取りたい場合があります。

WooCommerceまたはEasy Digital Downloadsのショップシステムで税金を計算する税金プラグインを使用しているとします。何らかの理由でこのプラグインが無効化されると、すべての購入価格が誤って計算され、それに気付くまでに時間がかかる可能性があります。

WordPressウェブサイトでプラグインが無効化されるのを防ぐ100%の保護策はありませんが、それが発生したときに、以下のコードをplugin-logger.phpのようなmu-pluginにコピーして、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);

インストールされているプラグインのいずれかがWordPressフックdeleted_pluginまたはdeactivated_pluginによって無効化または削除されると、メール通知を受け取ります。また、レポートはwp-content//7263767234-deleted-plugins.logファイルにログとして記録されます。

セキュリティ上の理由から、パスとファイル名を調整することをお勧めします。

関連記事

Rene Hermenau

著者: Rene Hermenau

著者について: René Hermenau は WP STAGING の創設者です。WordPress のバックアップ、ステージング、移行、データベース処理、安全なデプロイメントワークフローに取り組んでいます。