PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 2.15.3
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v2.15.3
3.3.1 V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 All 138 releases
← All changes | includes/Core/Database/DB.php +89 -54 1.22.15.3 View file →
@@ -13,31 +13,33 @@
13 13 * Database Migration
14 14 */
15 15 final class DB
16 16 {
17 - /**
18 - * Undocumented function
19 - *
20 - * @return void
21 - */
22 - public static function migrate()
23 - {
24 - global $wpdb;
25 - global $bitforms_db_version;
26 - $collate = '';
17 + /**
18 + * Undocumented function
19 + *
20 + * @return void
21 + */
22 + public static function migrate()
23 + {
24 + global $wpdb;
25 + global $bitforms_db_version;
26 + $collate = '';
27 27
28 - if ($wpdb->has_cap('collation')) {
29 - if (!empty($wpdb->charset)) {
30 - $collate .= "DEFAULT CHARACTER SET $wpdb->charset";
31 - }
28 + if ($wpdb->has_cap('collation')) {
29 + if (!empty($wpdb->charset)) {
30 + $collate .= "DEFAULT CHARACTER SET $wpdb->charset";
31 + }
32 32
33 - if (!empty($wpdb->collate)) {
34 - $collate .= " COLLATE $wpdb->collate";
35 - }
36 - }
33 + if (!empty($wpdb->collate)) {
34 + $collate .= " COLLATE $wpdb->collate";
35 + }
36 + }
37 37
38 - $table_schema = array(
39 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_reports` (
38 + $max_index_length = 191;
39 +
40 + $table_schema = [
41 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_reports` (
40 42 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
41 43 `category` varchar(50) NOT NULL,
42 44 `type` varchar(20) NOT NULL,
43 45 `context` varchar(20) NOT NULL,
@@ -50,12 +52,15 @@
50 52 `updated_at` datetime DEFAULT NULL,
51 53 PRIMARY KEY (`id`)
52 54 ) $collate;",
53 55
54 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form` (
56 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form` (
55 57 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
56 58 `form_name` varchar(255) DEFAULT NULL,
57 59 `form_content` longtext DEFAULT NULL,
60 + `builder_helper_state` longtext DEFAULT NULL,
61 + `atomic_class_map` longtext DEFAULT NULL,
62 + `generated_script_page_ids` longtext DEFAULT NULL,
58 63 `user_id` bigint(20) unsigned DEFAULT NULL,
59 64 `user_ip` int(11) unsigned DEFAULT NULL,
60 65 `views` int(11) unsigned DEFAULT 0,
61 66 `entries` int(11) unsigned DEFAULT 0,
@@ -65,9 +70,9 @@
65 70 `updated_at` datetime DEFAULT NULL,
66 71 PRIMARY KEY (`id`)
67 72 ) $collate;",
68 73
69 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_workflows` (
74 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_workflows` (
70 75 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
71 76 `workflow_name` varchar(255) NOT NULL,
72 77 `workflow_type` varchar(50) NOT NULL,
73 78 `workflow_run` varchar(50) NOT NULL,
@@ -72,9 +77,9 @@
72 77 `workflow_type` varchar(50) NOT NULL,
73 78 `workflow_run` varchar(50) NOT NULL,
74 79 `workflow_behaviour` varchar(25) NOT NULL,
75 80 `workflow_condition` longtext DEFAULT NULL,
76 - `workflow_action` longtext DEFAULT NULL,
81 + `workflow_order` int(11) unsigned DEFAULT NULL,
77 82 `form_id` bigint(20) unsigned DEFAULT NULL,
78 83 `user_id` bigint(20) unsigned DEFAULT NULL,
79 84 `user_ip` int(11) unsigned DEFAULT NULL,
80 85 `user_location` text DEFAULT NULL,
@@ -84,12 +89,13 @@
84 89 PRIMARY KEY (`id`),
85 90 KEY `form_id` (`form_id`)
86 91 ) $collate;",
87 92
88 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_success_messages` (
93 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_success_messages` (
89 94 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
90 95 `message_title` varchar(255) DEFAULT NULL,
91 96 `message_content` longtext DEFAULT NULL,
97 + `message_config` longtext DEFAULT NULL,
92 98 `form_id` bigint(20) unsigned DEFAULT NULL,
93 99 `user_id` bigint(20) unsigned DEFAULT NULL,
94 100 `user_ip` int(11) unsigned DEFAULT NULL,
95 101 `created_at` datetime DEFAULT NULL,
@@ -96,9 +102,9 @@
96 102 `updated_at` datetime DEFAULT NULL,
97 103 PRIMARY KEY (`id`)
98 104 ) $collate;",
99 105
100 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_email_template` (
106 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_email_template` (
101 107 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
102 108 `title` text DEFAULT NULL,
103 109 `sub` text DEFAULT NULL,
104 110 `body` longtext DEFAULT NULL,
@@ -109,9 +115,9 @@
109 115 `updated_at` datetime DEFAULT NULL,
110 116 PRIMARY KEY (`id`)
111 117 ) $collate;",
112 118
113 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_integration` (
119 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_integration` (
114 120 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
115 121 `category` varchar(50) NOT NULL,
116 122 `integration_name` varchar(255) DEFAULT NULL,
117 123 `integration_type` varchar(50) NOT NULL,
@@ -124,16 +130,16 @@
124 130 `updated_at` datetime DEFAULT NULL,
125 131 PRIMARY KEY (`id`)
126 132 ) $collate;",
127 133
128 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entries` (
134 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entries` (
129 135 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
130 136 `form_id` bigint(20) unsigned DEFAULT NULL,
131 137 `user_id` bigint(20) unsigned DEFAULT NULL,
132 - `user_ip` int(11) unsigned DEFAULT NULL,
138 + `user_ip` varchar(255) DEFAULT NULL,
133 139 `user_location` text DEFAULT NULL,
134 140 `user_device` varchar(50) DEFAULT NULL,
135 - `referer` varchar(255) DEFAULT NULL,
141 + `referer` TEXT DEFAULT NULL,
136 142 `status` tinyint(1) DEFAULT 0,/* 0 not viewed, 1 viewed, 2 trashed */
137 143 `created_at` datetime DEFAULT NULL,
138 144 `updated_at` datetime DEFAULT NULL,
139 145 PRIMARY KEY (`id`),
@@ -139,19 +145,19 @@
139 145 PRIMARY KEY (`id`),
140 146 KEY `form_id` (`form_id`)
141 147 ) $collate;",
142 148
143 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entrymeta` (
149 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entrymeta` (
144 150 `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
145 151 `bitforms_form_entry_id` bigint(20) unsigned DEFAULT NULL,
146 152 `meta_key` varchar(255) DEFAULT NULL,
147 153 `meta_value` longtext,
148 154 PRIMARY KEY (`meta_id`),
149 - KEY `meta_key` (`meta_key`),
155 + KEY `meta_key` (`meta_key`({$max_index_length})),
150 156 KEY `entry_id` (`bitforms_form_entry_id`)
151 157 ) $collate;",
152 158
153 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entry_log` (
159 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entry_log` (
154 160 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
155 161 `user_id` int(11) NOT NULL,
156 162 `log_type` varchar(50) DEFAULT NULL,
157 163 `ip` int(11) DEFAULT NULL,
@@ -164,9 +170,9 @@
164 170 KEY `form_id` (`form_id`),
165 171 KEY `form_entry_id` (`form_entry_id`)
166 172 ) $collate;",
167 173
168 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_log_details` (
174 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_log_details` (
169 175 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
170 176 `log_id` bigint(20) NOT NULL,
171 177 `integration_id` bigint(20) DEFAULT NULL,
172 178 `api_type` varchar(255) DEFAULT NULL,
@@ -176,9 +182,9 @@
176 182 PRIMARY KEY (`id`),
177 183 KEY `log_id` (`log_id`),
178 184 KEY `integration_id` (`integration_id`)
179 185 ) $collate;",
180 - "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entry_relatedinfo` (
186 + "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}bitforms_form_entry_relatedinfo` (
181 187 `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
182 188 `info_type` VARCHAR(50) NOT NULL,
183 189 `info_details` LONGTEXT NULL,
184 190 `form_id` BIGINT(20) UNSIGNED NOT NULL,
@@ -191,35 +197,64 @@
191 197 PRIMARY KEY (`id`),
192 198 KEY `form_id` (`form_id`),
193 199 KEY `entry_id` (`entry_id`)
194 200 ) $collate;"
195 - );
201 + ];
196 202
197 - $table_schema_update = array(
198 - "ALTER TABLE `{$wpdb->prefix}bitforms_form_entry_log`
203 + $table_schema_update = [
204 + "ALTER TABLE `{$wpdb->prefix}bitforms_form_entry_log`
199 205 CHANGE COLUMN `log_type` `log_type` VARCHAR(50) NULL DEFAULT NULL,
200 206 ADD COLUMN `action_type` VARCHAR(50) NULL DEFAULT NULL,
201 207 CHANGE COLUMN `meta_key` `content` LONGTEXT NULL,
202 208 CHANGE COLUMN `created_at` `created_at` DATETIME NOT NULL",
203 - "ALTER TABLE `{$wpdb->prefix}bitforms_form_log_details`
209 + "ALTER TABLE `{$wpdb->prefix}bitforms_form_log_details`
204 210 CHANGE COLUMN `api_type` `api_type` VARCHAR(255) NULL DEFAULT NULL,
205 211 CHANGE COLUMN `response_obj` `response_obj` LONGTEXT NULL,
206 212 CHANGE COLUMN `created_at` `created_at` DATETIME NOT NULL",
207 - );
213 + ];
208 214
209 - include_once ABSPATH . 'wp-admin/includes/upgrade.php';
210 - foreach ($table_schema as $table) {
211 - dbDelta($table);
212 - }
213 - $installed_db_version = get_site_option("bitforms_db_version");
214 - if ($installed_db_version && version_compare('1.1', $installed_db_version, '<=')) {
215 - // if new db version is equal or higher than 1.1
216 - foreach ($table_schema_update as $table) {
217 - $wpdb->query($table);
218 - }
219 - }
220 - update_site_option(
221 - 'bitforms_db_version',
222 - $bitforms_db_version
223 - );
215 + include_once ABSPATH . 'wp-admin/includes/upgrade.php';
216 + foreach ($table_schema as $table) {
217 + dbDelta($table);
224 218 }
219 + $installed_db_version = get_site_option('bitforms_db_version');
220 + if ($installed_db_version && version_compare('1.1', $installed_db_version, '>=')) {
221 + // if new db version is equal or higher than 1.1
222 + foreach ($table_schema_update as $table) {
223 + $wpdb->query($table);
224 + }
225 + }
226 + if ($installed_db_version && version_compare('1.3', $installed_db_version, '>=')) {
227 + // if new db version is equal or higher than 1.3
228 + $wpdb->query("ALTER TABLE `{$wpdb->prefix}bitforms_form_entries` CHANGE `user_ip` `user_ip` VARCHAR(255) NULL DEFAULT NULL");
229 + }
230 +
231 + if ($installed_db_version && version_compare('2.0', $installed_db_version, '>=')) {
232 + $wpdb->query(
233 + "ALTER TABLE `{$wpdb->prefix}bitforms_success_messages`
234 + ADD `message_config` LONGTEXT NULL AFTER `message_content`"
235 + );
236 + $wpdb->query(
237 + "ALTER TABLE `{$wpdb->prefix}bitforms_form`
238 + ADD `builder_helper_state` LONGTEXT NULL AFTER `form_content`,
239 + ADD `atomic_class_map` LONGTEXT NULL AFTER `builder_helper_state`,
240 + ADD `generated_script_page_ids` LONGTEXT NULL AFTER `atomic_class_map`"
241 + );
242 + $wpdb->query(
243 + "ALTER TABLE `{$wpdb->prefix}bitforms_workflows`
244 + ADD `workflow_order` INT(11) DEFAULT NULL AFTER `workflow_condition`"
245 + );
246 + }
247 +
248 + if ($installed_db_version && version_compare('2.2', $installed_db_version, '>=')) {
249 + $wpdb->query(
250 + "ALTER TABLE `{$wpdb->prefix}bitforms_form_entries`
251 + MODIFY `referer` TEXT DEFAULT NULL"
252 + );
253 + }
254 +
255 + update_site_option(
256 + 'bitforms_db_version',
257 + $bitforms_db_version
258 + );
259 + }
225 260 }