Falha adequada na ativação do plugin

Atualmente, estou desenvolvendo um plugin, que depende de outro plugin (json-api). Eu uso o seguinte código para verificar a presença durante a boot e no construtor, caso o plugin json-api seja desativado mais tarde:

require_once (ABSPATH . '/wp-admin/includes/plugin.php'); class MyPlugin { public function __construct() { // ... // register a check for dependency add_action('plugins_loaded', array( $this, 'dependency_check' )); } public function dependency_check() { if (!class_exists('DEP_CLASS')) $this->dependency_failed(); } protected function dependency_failed() { if (current_user_can( 'activate_plugins' )) deactivate_plugins( plugin_basename ( __FILE__ ) ); add_action('admin_notices', array ($this, 'notify_dependency_problem') ); } public static function notify_dependency_problem() { /* ... error message shown ... */ } public function activate() { if (!is_plugin_active('dep_plugin/start.php')) { $this->dependency_failed(); return false; } } } register_activation_hook(__FILE__, array('MyPlugin', 'activate')); new MyPlugin(); 

Isso funciona bem até agora – no entanto, o WordPress também mostra um aviso “Plugin Activated”, que é enganador para o usuário. Além disso, os botões (“Ativar”, “Editar”, “Excluir”) abaixo do plugin também estão faltando.

  1. Como é possível se livrar da mensagem “Plugin Activated” ( Nota : Graças a @toscho, isso foi resolvido através de unset($_GET['activate']) ) e
  2. Como recuperar os botões?

Solutions Collecting From Web of "Falha adequada na ativação do plugin"