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

[temp id=2]

得意先テーブルの初期設定で、プラグイン有効化時に何度もレコードを作ってしまうバグを修正しました。カンタン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]
シェアする
購入する
購入する