//有効
register_activation_hook(__FILE__, 'my_activation');
//停止
register_deactivation_hook(__FILE__, 'my_deactivation');
//アンインストール
register_uninstall_hook(__FILE__,'my_uninstall');
・関数リファレンス/register activation hook - WordPress Codex 日本語版・関数リファレンス/register deactivation hook - WordPress Codex 日本語版
・register_uninstall_hook() | Function | WordPress Developer Resources
フックの仕方は上記のようにします。
//有効
register_activation_hook(__FILE__, array($this, 'activation'));
//停止
register_deactivation_hook(__FILE__, array($this, 'deactivation'));
//アンインストール
register_uninstall_hook(__FILE__, array('クラス名::uninstall'));
クラス化してるときは、上記のように書きます。
register_uninstall_hookに指定するコールバック関数は、staticなクラスメソッド(関数)でないとエラーになるようです。
もちろん、register_uninstall_hookの時だけ普通の関数を呼び出すようにしてもよいかと思います。
class Sample_Plugin {
function __construct() {
register_activation_hook( __FILE__, array($this, 'activation') );
register_deactivation_hook( __FILE__, array($this, 'deactivation') );
register_uninstall_hook( __FILE__, array('Sample_Plugin::uninstall') );
}
public function activation(){
//有効時の処理
}
public function deactivation(){
//停止時の処理
}
public static function uninstall(){
//アンインストールの処理
}
}
new Sample_Plugin();
実際に書くのならこんな感じのクラスになるかと思う。
参考:
・【Wordpress】【プラグイン開発】プラグインの有効、停止、アンイストールの時に処理をかます方法 – 紐付けな日々
register_uninstall_hook()の第2引数は「クラス名::メソッド名」の形式となっていますが、これは、uninstallのフック関数がstaticメソッドのためです。
WordPressプラグインの開発(3) | 合同会社 緑IT事務所
$callback
(callable) (Required) The callback to run when the hook is called. Must be a static method or function.
register_uninstall_hook() | Function | WordPress Developer Resources
ちゃんと、statcメソッドか関数でって明記されてますね。
スポンサーリンク
コメントを残す