Plugin Directory

Changeset 3771981


Ignore:
Timestamp:
10/29/2026 03:04:53 AM (8 days ago)
Author:
taketin
Message:

release ver.3.0.7-beta5

Location:
taketin-to-wp-membership
Files:
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • taketin-to-wp-membership/tags/3.0.7-beta5/taketin-to-wp-membership.php

    r3771963 r3771981  
    44Plugin URI: https://taketin.com/plugin/
    55Description: TAKETIN Marketing Platformと連携したメンバーサイトをWordpressで作成するプラグインです。
    6 Version: 3.0.7-beta4
     6Version: 3.0.7-beta5
    77Author: TAKETIN
    88Author URI:http://taketin.com/
    … …  
    4646
    4747// Initialize constants.
    48 define('TMP_MEM_VERSION', '3.0.7-beta4');
    49 define('TMP_MEM_DB_VERSION', '1.3');
     48define('TMP_MEM_VERSION', '3.0.7-beta5');
     49define('TMP_MEM_DB_VERSION', '1.4');
    5050define('TMP_MEM_DEBUG', false);
    5151define('TMP_MEM_PREFIX', 'taketin_mp_membership');
    … …  
    161161function update_database_tables()
    162162{
    163     $version = get_site_option('tmp-db-version');
    164 
    165163    global $wpdb;
    166     $sql = '';
    167     $charsetCollate = '';
    168 
    169     // テーブルを更新
    170     $tableName = $wpdb->prefix . 'tmp_members';
    171     if ($version == 1.0) {
    172         $sql = sprintf(
    173             "
    174                                 CREATE TABLE %s (
    175                                   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    176                                   `name` varchar(255) NOT NULL COMMENT '名前',
    177                                   `email` varchar(255) NOT NULL COMMENT 'メールアドレス',
    178                                   `unique_code` varchar(255) NOT NULL COMMENT 'ユニークコード',
    179                                   `ticket_list_serialized` text NOT NULL COMMENT '所持チケットID一覧',
    180                                   `progress` float NOT NULL COMMENT '',
    181                                   `memberships_id` int(11) DEFAULT 0 COMMENT '会員レベルID',
    182                                   `memberships_check_date` datetime NOT NULL COMMENT '会員レベル判定日時',
    183                                   `trusted_devices` longtext COMMENT '信頼済みデバイス一覧',
    184                                   `last_login` datetime NOT NULL COMMENT '最終ログイン',
    185                                   `last_login_ip` varchar(255) COMMENT '最終ログインIP',
    186                                   `login_token` varchar(255) COMMENT 'ログイントークン',
    187                                   `created` datetime NOT NULL COMMENT '作成日時',
    188                                   PRIMARY KEY (`id`)
    189                                 ) %s;
    190                                 ",
    191             $tableName,
    192             $charsetCollate
    193         );
    194     }
    195     if (!$version || $version == 1.1) {
    196         $sql = sprintf(
    197             "
    198                                 CREATE TABLE %s (
    199                                   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    200                                   `display_name` varchar(255) NOT NULL COMMENT '表示名',
    201                                   `name` varchar(255) NOT NULL COMMENT '名前',
    202                                   `email` varchar(255) NOT NULL COMMENT 'メールアドレス',
    203                                   `unique_code` varchar(255) NOT NULL COMMENT 'ユニークコード',
    204                                   `ticket_list_serialized` text NOT NULL COMMENT '所持チケットID一覧',
    205                                   `progress` float NOT NULL COMMENT '',
    206                                   `memberships_id` int(11) DEFAULT 0 COMMENT '会員レベルID',
    207                                   `memberships_check_date` datetime NOT NULL COMMENT '会員レベル判定日時',
    208                                   `trusted_devices` longtext COMMENT '信頼済みデバイス一覧',
    209                                   `last_login` datetime NOT NULL COMMENT '最終ログイン',
    210                                   `last_login_ip` varchar(255) COMMENT '最終ログインIP',
    211                                   `login_token` varchar(255) COMMENT 'ログイントークン',
    212                                   `created` datetime NOT NULL COMMENT '作成日時',
    213                                   PRIMARY KEY (`id`)
    214                                 ) %s;
    215                                 ",
    216             $tableName,
    217             $charsetCollate
    218         );
    219     }
     164
     165    // テーブルを更新(更新前のバージョンに関係なく最新の定義で dbDelta する。足りない列だけが追加される)
    220166    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    221     dbDelta($sql);
     167    dbDelta(tmp_members_table_sql());
    222168    $tableName = $wpdb->prefix . 'tmp_members';
    223169    $trusted_devices_column = $wpdb->get_row("SHOW COLUMNS FROM {$tableName} LIKE 'trusted_devices'", ARRAY_A);
    … …  
    232178function update_database_check()
    233179{
    234     if (get_site_option('tmp-db-version') != TMP_MEM_DB_VERSION) {
     180    // DBバージョンはサイトごとのオプション(マルチサイトではサイトごとにテーブルが分かれるため)
     181    if (get_option('tmp-db-version') != TMP_MEM_DB_VERSION) {
    235182        update_database_tables();
    236183    }
    … …  
    238185add_action('plugins_loaded', 'update_database_check');
    239186
    240 function create_database_tables()
    241 {
    242 
    243     $settings = TaketinMpSettings::get_instance();
    244 
     187/**
     188 * 会員テーブル({接頭辞}tmp_members)の定義。新規作成と更新で同じ定義を使う
     189 */
     190function tmp_members_table_sql()
     191{
    245192    global $wpdb;
    246     $sql = '';
    247     $charsetCollate = '';
    248 
    249     $tableName = $wpdb->prefix . 'tmp_memberships';
    250 
    251     // charset
    252     if (!empty($wpdb->charset)) {
    253         $charsetCollate = "DEFAULT CHARACTER SET " . $wpdb->charset;
    254     }
    255 
    256     if (!empty($wpdb->collate)) {
    257         $charsetCollate .= " COLLATE " . $wpdb->collate;
    258     }
    259 
    260     // テーブルを作成
    261     $sql = sprintf(
    262         "
    263 CREATE TABLE %s (
    264 `id` int(11) NOT NULL AUTO_INCREMENT,
    265   `name` varchar(100) NOT NULL,
    266   `levelclass` int(11) NOT NULL DEFAULT '0' COMMENT '階級',
    267   `category_list` longtext,
    268   `page_list` longtext,
    269   `post_list` longtext,
    270   `attachment_list` longtext,
    271   `custom_post_list` longtext,
    272   `comment_list` longtext,
    273 PRIMARY KEY (id)
    274 ) %s;
    275 ",
    276         $tableName,
    277         $charsetCollate
    278     );
    279     require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    280     dbDelta($sql);
    281 
    282     // テーブルを作成
    283     $tableName = $wpdb->prefix . 'tmp_memberships_tickets';
    284     $sql = sprintf(
    285         '
    286 CREATE TABLE %s (
    287 id int(11) AUTO_INCREMENT NOT NULL,
    288 membership_id int(11),
    289 ticket_id int(11),
    290 PRIMARY KEY (id)
    291 ) %s;
    292 ',
    293         $tableName,
    294         $charsetCollate
    295     );
    296 
    297     dbDelta($sql);
    298 
    299     // テーブルを作成
    300     $tableName = $wpdb->prefix . 'tmp_memberships_categories';
    301     $sql = sprintf(
    302         '
    303 CREATE TABLE %s (
    304 id int(11) AUTO_INCREMENT NOT NULL,
    305 membership_id int(11),
    306 category_id int(11),
    307 PRIMARY KEY (id)
    308 ) %s;
    309 ',
    310         $tableName,
    311         $charsetCollate
    312     );
    313 
    314     dbDelta($sql);
    315 
    316     // テーブルを作成
    317     $tableName = $wpdb->prefix . 'tmp_members';
    318     $sql = sprintf(
     193    return sprintf(
    319194        "
    320195                        CREATE TABLE %s (
    … …  
    336211                        ) %s;
    337212                        ",
     213        $wpdb->prefix . 'tmp_members',
     214        $wpdb->get_charset_collate()
     215    );
     216}
     217
     218function create_database_tables()
     219{
     220
     221    $settings = TaketinMpSettings::get_instance();
     222
     223    global $wpdb;
     224    $sql = '';
     225    $charsetCollate = '';
     226
     227    $tableName = $wpdb->prefix . 'tmp_memberships';
     228
     229    // charset
     230    if (!empty($wpdb->charset)) {
     231        $charsetCollate = "DEFAULT CHARACTER SET " . $wpdb->charset;
     232    }
     233
     234    if (!empty($wpdb->collate)) {
     235        $charsetCollate .= " COLLATE " . $wpdb->collate;
     236    }
     237
     238    // テーブルを作成
     239    $sql = sprintf(
     240        "
     241CREATE TABLE %s (
     242`id` int(11) NOT NULL AUTO_INCREMENT,
     243  `name` varchar(100) NOT NULL,
     244  `levelclass` int(11) NOT NULL DEFAULT '0' COMMENT '階級',
     245  `category_list` longtext,
     246  `page_list` longtext,
     247  `post_list` longtext,
     248  `attachment_list` longtext,
     249  `custom_post_list` longtext,
     250  `comment_list` longtext,
     251PRIMARY KEY (id)
     252) %s;
     253",
    338254        $tableName,
    339255        $charsetCollate
    340256    );
    341 
     257    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    342258    dbDelta($sql);
     259
     260    // テーブルを作成
     261    $tableName = $wpdb->prefix . 'tmp_memberships_tickets';
     262    $sql = sprintf(
     263        '
     264CREATE TABLE %s (
     265id int(11) AUTO_INCREMENT NOT NULL,
     266membership_id int(11),
     267ticket_id int(11),
     268PRIMARY KEY (id)
     269) %s;
     270',
     271        $tableName,
     272        $charsetCollate
     273    );
     274
     275    dbDelta($sql);
     276
     277    // テーブルを作成
     278    $tableName = $wpdb->prefix . 'tmp_memberships_categories';
     279    $sql = sprintf(
     280        '
     281CREATE TABLE %s (
     282id int(11) AUTO_INCREMENT NOT NULL,
     283membership_id int(11),
     284category_id int(11),
     285PRIMARY KEY (id)
     286) %s;
     287',
     288        $tableName,
     289        $charsetCollate
     290    );
     291
     292    dbDelta($sql);
     293
     294    // テーブルを作成
     295    dbDelta(tmp_members_table_sql());
    343296
    344297    //Create login page
  • taketin-to-wp-membership/trunk/taketin-to-wp-membership.php

    r3771963 r3771981  
    44Plugin URI: https://taketin.com/plugin/
    55Description: TAKETIN Marketing Platformと連携したメンバーサイトをWordpressで作成するプラグインです。
    6 Version: 3.0.7-beta4
     6Version: 3.0.7-beta5
    77Author: TAKETIN
    88Author URI:http://taketin.com/
    … …  
    4646
    4747// Initialize constants.
    48 define('TMP_MEM_VERSION', '3.0.7-beta4');
    49 define('TMP_MEM_DB_VERSION', '1.3');
     48define('TMP_MEM_VERSION', '3.0.7-beta5');
     49define('TMP_MEM_DB_VERSION', '1.4');
    5050define('TMP_MEM_DEBUG', false);
    5151define('TMP_MEM_PREFIX', 'taketin_mp_membership');
    … …  
    161161function update_database_tables()
    162162{
    163     $version = get_site_option('tmp-db-version');
    164 
    165163    global $wpdb;
    166     $sql = '';
    167     $charsetCollate = '';
    168 
    169     // テーブルを更新
    170     $tableName = $wpdb->prefix . 'tmp_members';
    171     if ($version == 1.0) {
    172         $sql = sprintf(
    173             "
    174                                 CREATE TABLE %s (
    175                                   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    176                                   `name` varchar(255) NOT NULL COMMENT '名前',
    177                                   `email` varchar(255) NOT NULL COMMENT 'メールアドレス',
    178                                   `unique_code` varchar(255) NOT NULL COMMENT 'ユニークコード',
    179                                   `ticket_list_serialized` text NOT NULL COMMENT '所持チケットID一覧',
    180                                   `progress` float NOT NULL COMMENT '',
    181                                   `memberships_id` int(11) DEFAULT 0 COMMENT '会員レベルID',
    182                                   `memberships_check_date` datetime NOT NULL COMMENT '会員レベル判定日時',
    183                                   `trusted_devices` longtext COMMENT '信頼済みデバイス一覧',
    184                                   `last_login` datetime NOT NULL COMMENT '最終ログイン',
    185                                   `last_login_ip` varchar(255) COMMENT '最終ログインIP',
    186                                   `login_token` varchar(255) COMMENT 'ログイントークン',
    187                                   `created` datetime NOT NULL COMMENT '作成日時',
    188                                   PRIMARY KEY (`id`)
    189                                 ) %s;
    190                                 ",
    191             $tableName,
    192             $charsetCollate
    193         );
    194     }
    195     if (!$version || $version == 1.1) {
    196         $sql = sprintf(
    197             "
    198                                 CREATE TABLE %s (
    199                                   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    200                                   `display_name` varchar(255) NOT NULL COMMENT '表示名',
    201                                   `name` varchar(255) NOT NULL COMMENT '名前',
    202                                   `email` varchar(255) NOT NULL COMMENT 'メールアドレス',
    203                                   `unique_code` varchar(255) NOT NULL COMMENT 'ユニークコード',
    204                                   `ticket_list_serialized` text NOT NULL COMMENT '所持チケットID一覧',
    205                                   `progress` float NOT NULL COMMENT '',
    206                                   `memberships_id` int(11) DEFAULT 0 COMMENT '会員レベルID',
    207                                   `memberships_check_date` datetime NOT NULL COMMENT '会員レベル判定日時',
    208                                   `trusted_devices` longtext COMMENT '信頼済みデバイス一覧',
    209                                   `last_login` datetime NOT NULL COMMENT '最終ログイン',
    210                                   `last_login_ip` varchar(255) COMMENT '最終ログインIP',
    211                                   `login_token` varchar(255) COMMENT 'ログイントークン',
    212                                   `created` datetime NOT NULL COMMENT '作成日時',
    213                                   PRIMARY KEY (`id`)
    214                                 ) %s;
    215                                 ",
    216             $tableName,
    217             $charsetCollate
    218         );
    219     }
     164
     165    // テーブルを更新(更新前のバージョンに関係なく最新の定義で dbDelta する。足りない列だけが追加される)
    220166    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    221     dbDelta($sql);
     167    dbDelta(tmp_members_table_sql());
    222168    $tableName = $wpdb->prefix . 'tmp_members';
    223169    $trusted_devices_column = $wpdb->get_row("SHOW COLUMNS FROM {$tableName} LIKE 'trusted_devices'", ARRAY_A);
    … …  
    232178function update_database_check()
    233179{
    234     if (get_site_option('tmp-db-version') != TMP_MEM_DB_VERSION) {
     180    // DBバージョンはサイトごとのオプション(マルチサイトではサイトごとにテーブルが分かれるため)
     181    if (get_option('tmp-db-version') != TMP_MEM_DB_VERSION) {
    235182        update_database_tables();
    236183    }
    … …  
    238185add_action('plugins_loaded', 'update_database_check');
    239186
    240 function create_database_tables()
    241 {
    242 
    243     $settings = TaketinMpSettings::get_instance();
    244 
     187/**
     188 * 会員テーブル({接頭辞}tmp_members)の定義。新規作成と更新で同じ定義を使う
     189 */
     190function tmp_members_table_sql()
     191{
    245192    global $wpdb;
    246     $sql = '';
    247     $charsetCollate = '';
    248 
    249     $tableName = $wpdb->prefix . 'tmp_memberships';
    250 
    251     // charset
    252     if (!empty($wpdb->charset)) {
    253         $charsetCollate = "DEFAULT CHARACTER SET " . $wpdb->charset;
    254     }
    255 
    256     if (!empty($wpdb->collate)) {
    257         $charsetCollate .= " COLLATE " . $wpdb->collate;
    258     }
    259 
    260     // テーブルを作成
    261     $sql = sprintf(
    262         "
    263 CREATE TABLE %s (
    264 `id` int(11) NOT NULL AUTO_INCREMENT,
    265   `name` varchar(100) NOT NULL,
    266   `levelclass` int(11) NOT NULL DEFAULT '0' COMMENT '階級',
    267   `category_list` longtext,
    268   `page_list` longtext,
    269   `post_list` longtext,
    270   `attachment_list` longtext,
    271   `custom_post_list` longtext,
    272   `comment_list` longtext,
    273 PRIMARY KEY (id)
    274 ) %s;
    275 ",
    276         $tableName,
    277         $charsetCollate
    278     );
    279     require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    280     dbDelta($sql);
    281 
    282     // テーブルを作成
    283     $tableName = $wpdb->prefix . 'tmp_memberships_tickets';
    284     $sql = sprintf(
    285         '
    286 CREATE TABLE %s (
    287 id int(11) AUTO_INCREMENT NOT NULL,
    288 membership_id int(11),
    289 ticket_id int(11),
    290 PRIMARY KEY (id)
    291 ) %s;
    292 ',
    293         $tableName,
    294         $charsetCollate
    295     );
    296 
    297     dbDelta($sql);
    298 
    299     // テーブルを作成
    300     $tableName = $wpdb->prefix . 'tmp_memberships_categories';
    301     $sql = sprintf(
    302         '
    303 CREATE TABLE %s (
    304 id int(11) AUTO_INCREMENT NOT NULL,
    305 membership_id int(11),
    306 category_id int(11),
    307 PRIMARY KEY (id)
    308 ) %s;
    309 ',
    310         $tableName,
    311         $charsetCollate
    312     );
    313 
    314     dbDelta($sql);
    315 
    316     // テーブルを作成
    317     $tableName = $wpdb->prefix . 'tmp_members';
    318     $sql = sprintf(
     193    return sprintf(
    319194        "
    320195                        CREATE TABLE %s (
    … …  
    336211                        ) %s;
    337212                        ",
     213        $wpdb->prefix . 'tmp_members',
     214        $wpdb->get_charset_collate()
     215    );
     216}
     217
     218function create_database_tables()
     219{
     220
     221    $settings = TaketinMpSettings::get_instance();
     222
     223    global $wpdb;
     224    $sql = '';
     225    $charsetCollate = '';
     226
     227    $tableName = $wpdb->prefix . 'tmp_memberships';
     228
     229    // charset
     230    if (!empty($wpdb->charset)) {
     231        $charsetCollate = "DEFAULT CHARACTER SET " . $wpdb->charset;
     232    }
     233
     234    if (!empty($wpdb->collate)) {
     235        $charsetCollate .= " COLLATE " . $wpdb->collate;
     236    }
     237
     238    // テーブルを作成
     239    $sql = sprintf(
     240        "
     241CREATE TABLE %s (
     242`id` int(11) NOT NULL AUTO_INCREMENT,
     243  `name` varchar(100) NOT NULL,
     244  `levelclass` int(11) NOT NULL DEFAULT '0' COMMENT '階級',
     245  `category_list` longtext,
     246  `page_list` longtext,
     247  `post_list` longtext,
     248  `attachment_list` longtext,
     249  `custom_post_list` longtext,
     250  `comment_list` longtext,
     251PRIMARY KEY (id)
     252) %s;
     253",
    338254        $tableName,
    339255        $charsetCollate
    340256    );
    341 
     257    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    342258    dbDelta($sql);
     259
     260    // テーブルを作成
     261    $tableName = $wpdb->prefix . 'tmp_memberships_tickets';
     262    $sql = sprintf(
     263        '
     264CREATE TABLE %s (
     265id int(11) AUTO_INCREMENT NOT NULL,
     266membership_id int(11),
     267ticket_id int(11),
     268PRIMARY KEY (id)
     269) %s;
     270',
     271        $tableName,
     272        $charsetCollate
     273    );
     274
     275    dbDelta($sql);
     276
     277    // テーブルを作成
     278    $tableName = $wpdb->prefix . 'tmp_memberships_categories';
     279    $sql = sprintf(
     280        '
     281CREATE TABLE %s (
     282id int(11) AUTO_INCREMENT NOT NULL,
     283membership_id int(11),
     284category_id int(11),
     285PRIMARY KEY (id)
     286) %s;
     287',
     288        $tableName,
     289        $charsetCollate
     290    );
     291
     292    dbDelta($sql);
     293
     294    // テーブルを作成
     295    dbDelta(tmp_members_table_sql());
    343296
    344297    //Create login page
Note: See TracChangeset for help on using the changeset viewer.