CreateDBTables.php
65 lines
| 1 | <?php |
| 2 | |
| 3 | namespace ProfilePress\Core\RegisterActivation; |
| 4 | |
| 5 | use ProfilePress\Core\Base as CoreBase; |
| 6 | |
| 7 | class CreateDBTables |
| 8 | { |
| 9 | public static function make() |
| 10 | { |
| 11 | global $wpdb; |
| 12 | |
| 13 | $collate = ''; |
| 14 | if ($wpdb->has_cap('collation')) { |
| 15 | $collate = $wpdb->get_charset_collate(); |
| 16 | } |
| 17 | |
| 18 | $forms_table = CoreBase::form_db_table(); |
| 19 | $forms_meta_table = CoreBase::form_meta_db_table(); |
| 20 | $meta_data_table = CoreBase::meta_data_db_table(); |
| 21 | |
| 22 | $sqls[] = "CREATE TABLE IF NOT EXISTS $forms_table ( |
| 23 | id bigint(20) NOT NULL AUTO_INCREMENT, |
| 24 | name varchar(100) NOT NULL, |
| 25 | form_id bigint(20) NOT NULL, |
| 26 | form_type varchar(20) NOT NULL DEFAULT '', |
| 27 | builder_type varchar(20) NOT NULL DEFAULT '', |
| 28 | date datetime NOT NULL DEFAULT '1000-01-01 00:00:00', |
| 29 | PRIMARY KEY (id), |
| 30 | UNIQUE KEY name (name), |
| 31 | KEY form_id (form_id) |
| 32 | ) $collate; |
| 33 | "; |
| 34 | $sqls[] = "CREATE TABLE IF NOT EXISTS $forms_meta_table ( |
| 35 | meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT, |
| 36 | form_id bigint(20) NOT NULL, |
| 37 | form_type varchar(20) DEFAULT NULL, |
| 38 | meta_key varchar(255) DEFAULT NULL, |
| 39 | meta_value longtext, |
| 40 | PRIMARY KEY (meta_id), |
| 41 | KEY form_id (form_id), |
| 42 | KEY form_type (form_type), |
| 43 | KEY meta_key (meta_key) |
| 44 | ) $collate; |
| 45 | "; |
| 46 | $sqls[] = "CREATE TABLE IF NOT EXISTS $meta_data_table ( |
| 47 | id bigint(20) NOT NULL AUTO_INCREMENT, |
| 48 | meta_key varchar(50) DEFAULT NULL, |
| 49 | meta_value longtext, |
| 50 | flag varchar(20) DEFAULT NULL, |
| 51 | PRIMARY KEY (id), |
| 52 | KEY meta_key (meta_key), |
| 53 | KEY flag (flag) |
| 54 | ) $collate; |
| 55 | "; |
| 56 | |
| 57 | $sqls = apply_filters('ppress_create_database_tables', $sqls, $collate); |
| 58 | |
| 59 | require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); |
| 60 | |
| 61 | foreach ($sqls as $sql) { |
| 62 | dbDelta($sql); |
| 63 | } |
| 64 | } |
| 65 | } |