得意先テーブルの初期設定で、プラグイン有効化時に何度もレコードを作ってしまうバグを修正しました。カンタン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で。
まとめ
最近は開発作業もこなれてきましたね。今、どの辺にいるんでしょうか。。。
とりあえず、得意先のデーター初期設定ができました。次は、このデーターを得意先タブで表示してみたいと思います。
[temp id=1]