Wordpressでプラグイン有効時に、依存プラグインのチェックを行う方法

Wordpressプラグインを開発してる時に、ある特定のプラグインが動作してる時にのみ処理を行いたい時があります。

もっと正確に言うと、「ある特定のプラグインが保持してる情報を使いたい」という時でしょうか。

そんなときは、そもそもそのプラグインが使われていない(有効化されていない)ときは、今自分が作ってるプラグインは有効化できないという実装にするのが一番スマートだと思います。

自作のプラグインを有効化して、その後に◯◯のプラグインが必要だから有効化してくれというのはあまりスマートとは言えません。
自分だったら「なら最初から有効化させんじゃねーよ」と思います。

ググってもそれらしい記事が出なかったので難しいのかと思ってたら、わりと簡単に実装できました。

プラグインを有効化する時に実行する register_activation_hook フィルターでプラグインのチェックをするだけです。

register_activation_hook(__FILE__, function() {
  // 依存プラグインが有効化されていない時は、エラーで処理を中断する
  if( is_bool(array_search('usc-e-shop/usc-e-shop.php', get_option('active_plugins'))) ) {
    echo '◯◯プラグインの動作には、Welcart e-Commerce プラグインが必要です。';
    exit();
  }
});

array_search はエラーの場合 FALSE が返ってくるらしいのですが、== FALSE とかしてもうまく if 分岐しくれませんでした。
gettype で型を調べると、エラーの時は boolean型で返ってきたので is_bool でチェックするようにするとうまくいきました。

チェックしたいプラグインのファイル名は、WordPressをインストールしたDBの wp_otions というテーブルに active_plugins という項目があり、有効化されているプラグインはここに保存されるので、その値を見ながらチェックしたいプラグインのファイル名を探しましょう。

MySQLの中身を見るときは、Windowsだと HeidiSQL、Macだと Navicat を使うとGUIでサクッと確認できます。