WordPressプラグイン開発 – プラグイン無効化でもデーターは残すぞ

このブログは初心者がPHPを独習する過程で備忘録的に書いています。内容に不理解による誤りがあるかもしれません。もし、誤りがありましたらご指摘頂けば幸いです。

得意先テーブルの初期設定で、プラグイン有効化時に何度もレコードを作ってしまうバグを修正しました。カンタンProWPは、仕事の重要なデーターを保存するのでプラグイン無効化時にデーターを削除してしまうと、ユーザーが再び有効化した時に初期化されてしまっては困ります。

なので、プラグインを削除するまではデーターを残すことにしました。さすがにプラグインを削除するのであれば、よほどカンタンProWPが嫌われたのでしょうから。

プラグイン無効化でもデーターは残すぞ

一時の気の迷いでカンタンProWPを無効化することもあるでしょう。しかし、やっぱ戻そうとなったとき以前のデーターが全部初期化されていたら。。。

カンタンProWPは無効化ぐらいではデーターを削除しない! ありがた迷惑と言われるかもしれませんが、必要ないなら削除してください。

//テーブルデーターの初期設定は有効化時のみ行う。(ただし、すでにあれば何もしない)
private static function add_user_setting() {
global $wpdb;
$table_name = $wpdb->prefix . 'kpw_client_table';
$kpw_user_setting = get_option('kpw_user_setting');

//一応テーブルデーター行はできるが有効家事に毎回行を作成してしまう!
if ( ! $kpw_user_setting ) {
$welcome_name = 'Wordpress さん';
$welcome_text = 'おめでとうございます、インストールに成功しました!';

$wpdb->insert(
$table_name,
$kpw_user_setting = array(
'time' => current_time( 'mysql' ),
'name' => $welcome_name,
'text' => $welcome_text,
)
);
update_option( 'kpw_user_setting', $kpw_user_setting );
}
}

//プラグイン無効化時には何もしない
private static function remove_user_setting() {
return; ← これで解決!
}

//プラグイン削除時の処理
function uninstall() {
global $wpdb;
$table_name = $wpdb->prefix . 'kpw_client_table';
$wpdb->query("DROP TABLE IF EXISTS $table_name");
delete_option( "kpw_db_version" );
delete_option( 'kpw_user_setting' );
}

詳しいコードはGitHubで。

まとめ

最近は開発作業もこなれてきましたね。今、どの辺にいるんでしょうか。。。

とりあえず、得意先のデーター初期設定ができました。次は、このデーターを得意先タブで表示してみたいと思います。

2019/9/11 WordPressプラグイン開発は一旦終了しLaravelでの開発に切り替えました。

カンタンProWPとは
ファイルメーカーProを使用しないでWEB上でカンタンProの機能を実現するWordPressのプラグインです。2019年7月4日から開発を始めています。

だれでも手軽に、どこでも、安価にカンタンProを利用できるようにすることが開発の目的です。PHP(プログラミング言語)を使った開発になります。PHPについて一から勉強して開発を進めていきます。

コメント