Às vezes, você quer ter certeza de que um plugin essencial específico nunca seja excluído do seu site WordPress, ou pelo menos quer ser notificado sempre que isso acontecer.
Imagine que você tem um plugin de impostos que calcula o imposto no seu sistema de loja WooCommerce ou Easy Digital Downloads. Se este plugin for desativado por algum motivo, todos os seus preços de compra serão calculados incorretamente e pode levar um tempo até que você perceba.
Não existe proteção 100% para evitar que um plugin seja desativado no seu site WordPress, mas quando isso acontecer, você pode copiar o código a seguir em um mu-plugin como plugin-logger.php e adicioná-lo à pasta wp-content/mu-plugins.
<?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);Assim que qualquer um dos plugins instalados for desativado ou excluído pelos hooks do WordPress deleted_plugin ou deactivated_plugin, você receberá uma notificação por e-mail. Também registrará o relatório no arquivo wp-content//7263767234-deleted-plugins.log.
Recomendo ajustar o caminho e o nome do arquivo por motivos de segurança.