PluginProbe
Floating Button – Easily Create Sticky, Fixed & Floating Buttons / 6.0
Floating Button – Easily Create Sticky, Fixed & Floating Buttons v6.0
trunk 2.0.2 3.0 4.0 4.1.2 4.3 5.0 5.0.1 5.1 5.1.1 5.2 5.3 5.3.1 6.0 6.0.1 6.0.10 6.0.11 6.0.12 6.0.13 6.0.2 6.0.3 6.0.4 6.0.5 6.0.6 6.0.7 All 31 releases
floating-button / classes / Update / UpdateDB.php

UpdateDB.php in Floating Button – Easily Create Sticky, Fixed & Floating Buttons 6.0, at classes/Update/UpdateDB.php

276 lines 7.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FloatingButton\Update;
4
5 defined( 'ABSPATH' ) || exit;
6
7 use FloatingButton\Dashboard\DBManager;
8 use FloatingButton\WOW_Plugin;
9
10 class UpdateDB {
11
12 public static function init(): void {
13 $current_db_version = get_option( WOW_Plugin::PREFIX . '_db_version' );
14
15 if ( $current_db_version && version_compare( $current_db_version, '6.0', '>=' ) ) {
16 return;
17 }
18
19 self::updateDB();
20 self::updateDBFields();
21 self::updateOption();
22
23 update_option( WOW_Plugin::PREFIX . '_db_version', '6.0' );
24
25 }
26
27 private static function updateDB(): void {
28 global $wpdb;
29 $table = $wpdb->prefix . WOW_Plugin::PREFIX;
30
31 $columns = "
32 id mediumint(9) NOT NULL AUTO_INCREMENT,
33 title VARCHAR(200) NOT NULL,
34 param LONGTEXT,
35 status BOOLEAN,
36 mode BOOLEAN,
37 tag TEXT,
38 UNIQUE KEY id (id)
39 ";
40 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
41
42 $sql = "CREATE TABLE $table ($columns) DEFAULT CHARACTER SET {$wpdb->charset} COLLATE {$wpdb->collate};";
43 dbDelta( $sql );
44 }
45
46 private static function updateOption(): void {
47 $license = get_option( 'wow_license_key_fbtnp' );
48 $status = get_option( 'wow_license_status_fbtnp' );
49 if($license !== false) {
50 update_option( 'wow_license_key_' . WOW_Plugin::PREFIX, $license );
51 }
52
53 if($status !== false ) {
54 update_option( 'wow_license_status_' . WOW_Plugin::PREFIX, $status );
55 }
56 }
57
58 private static function updateDBFields(): void {
59 $results = DBManager::get_all_data();
60
61 if ( ! empty( $results ) ) {
62 foreach ( $results as $key => $val ) {
63 $param = maybe_unserialize( $val->param );
64 $status = ! empty( $param['menu_status'] ) ? 0 : 1;
65 $test_mode = ! empty( $param['test_mode'] ) ? 1 : 0;
66
67 $param = self::updateShow( $param );
68 $param = self::updateBrowsers( $param );
69 $param = self::updateSchedule( $param );
70 $param = self::updateImgType( $param );
71 $param = self::updateImgColor( $param );
72 $param = self::updateUsers( $param );
73 $param = self::updateStyles( $param );
74
75
76 $data = [
77 'status' => absint( $status ),
78 'mode' => absint( $test_mode ),
79 'tag' => '',
80 'param' => maybe_serialize( $param ),
81 ];
82
83 $where = [ 'id' => $val->id ];
84
85 $data_formats = [ '%d', '%d', '%s', '%s' ];
86
87 DBManager::update( $data, $where, $data_formats );
88 }
89 }
90 }
91
92 private static function updateStyles( $param ) {
93
94 return $param;
95 }
96
97 private static function updateUsers( $param ) {
98 $old_user = $param['user_role'];
99 $param['user_role'] = [
100 $old_user => 1
101 ];
102
103 return $param;
104 }
105
106 private static function updateImgType( $param ) {
107
108 $param['button_icon_type'] = 'default';
109
110 if ( ! empty( $param['custom_icon'] ) ) {
111 $param['button_icon_type'] = 'img';
112 }
113
114 if ( ! empty( $param['menu_1']['custom_icon'] ) && is_array( $param['menu_1']['custom_icon'] ) ) {
115 $param['menu_1']['icon_type'] = [];
116 foreach ( $param['menu_1']['custom_icon'] as $key => $val ) {
117 if ( ! empty( $param['menu_1']['custom_icon'][ $key ] ) ) {
118 $param['menu_1']['icon_type'][ $key ] = 'img';
119 } else {
120 $param['menu_1']['icon_type'][ $key ] = 'default';
121 }
122
123 }
124 }
125
126 if ( ! empty( $param['menu_2']['custom_icon'] ) && is_array( $param['menu_2']['custom_icon'] ) ) {
127 $param['menu_2']['icon_type'] = [];
128 foreach ( $param['menu_2']['custom_icon'] as $key => $val ) {
129 if ( ! empty( $param['menu_2']['custom_icon'][ $key ] ) ) {
130 $param['menu_2']['icon_type'][ $key ] = 'img';
131 } else {
132 $param['menu_2']['icon_type'][ $key ] = 'default';
133 }
134 }
135 }
136
137 return $param;
138 }
139
140 private static function updateImgColor($param) {
141 $param['icon_hcolor'] = $param['icon_color'];
142
143 if ( ! empty( $param['menu_1']['icon_color'] ) && is_array( $param['menu_1']['icon_color'] ) ) {
144 foreach ( $param['menu_1']['icon_color'] as $key => $val ) {
145 $param['menu_1']['icon_hcolor'][ $key ] = $val;
146 }
147 }
148
149 if ( ! empty( $param['menu_2']['icon_color'] ) && is_array( $param['menu_2']['icon_color'] ) ) {
150 foreach ( $param['menu_2']['icon_color'] as $key => $val ) {
151 $param['menu_2']['icon_hcolor'][ $key ] = $val;
152 }
153 }
154
155 return $param;
156
157 }
158
159 private static function updateSchedule( $param ) {
160
161 $week_old = $param['weekday'] ?? '';
162 $time_start_old = $param['time_start'] ?? '';
163 $time_end_old = $param['time_end'] ?? '';
164 $dates_old = ! empty( $param['set_dates'] ) ? 1 : 0;
165 $date_start_old = $param['date_start'] ?? '';
166 $date_end_old = $param['date_end'] ?? '';
167
168 $param['weekday'] = [];
169 $param['time_start'] = [];
170 $param['time_end'] = [];
171 $param['dates'] = [];
172 $param['date_start'] = [];
173 $param['date_end'] = [];
174
175 $param['weekday'][0] = $week_old;
176 $param['time_start'][0] = $time_start_old;
177 $param['time_end'][0] = $time_end_old;
178 $param['dates'][0] = $dates_old;
179 $param['date_start'][0] = $date_start_old;
180 $param['date_end'][0] = $date_end_old;
181
182
183 return $param;
184 }
185
186 private static function updateBrowsers( $param ) {
187
188 if ( empty( $param['all_browser'] ) ) {
189 return $param;
190 }
191 $param['browsers'] = [];
192 $param['browsers']['opera'] = ! empty( $param['br_opera'] ) ? 1 : 0;
193 $param['browsers']['edge'] = ! empty( $param['br_edge'] ) ? 1 : 0;
194 $param['browsers']['chrome'] = ! empty( $param['br_chrome'] ) ? 1 : 0;
195 $param['browsers']['safari'] = ! empty( $param['br_safari'] ) ? 1 : 0;
196 $param['browsers']['firefox'] = ! empty( $param['br_firefox'] ) ? 1 : 0;
197 $param['browsers']['ie'] = ! empty( $param['br_ie'] ) ? 1 : 0;
198 $param['browsers']['other'] = ! empty( $param['br_other'] ) ? 1 : 0;
199
200 return $param;
201 }
202
203 private static function updateShow( $param ): array {
204 $show_old = ! empty( $param['show'] ) ? $param['show'] : 'shortcode';
205
206 $param['show'] = [];
207 $param['operator'] = [];
208 $param['page_type'] = [];
209 $param['ids'] = [];
210
211 $param['show'][0] = 'shortcode';
212 $param['operator'][0] = '1';
213 $param['page_type'][0] = 'is_front_page';
214 $param['ids'][0] = '';
215
216
217 switch ( $show_old ) {
218 case 'all':
219 $param['show'][0] = 'everywhere';
220 break;
221 case 'onlypost':
222 $param['show'][0] = 'post_all';
223 break;
224 case 'posts':
225 $param['show'][0] = 'post_selected';
226 $param['ids'][0] = ! empty( $param['id_post'] ) ? $param['id_post'] : '';
227 break;
228 case 'postsincat':
229 $param['show'][0] = 'post_category';
230 $param['ids'][0] = ! empty( $param['id_post'] ) ? $param['id_post'] : '';
231 break;
232 case 'expost':
233 $param['show'][0] = 'post_selected';
234 $param['operator'][0] = 0;
235 $param['ids'][0] = ! empty( $param['id_post'] ) ? $param['id_post'] : '';
236 break;
237 case 'onlypage':
238 $param['show'][0] = 'page_all';
239 break;
240 case 'pages':
241 $param['show'][0] = 'page_selected';
242 $param['ids'][0] = ! empty( $param['id_post'] ) ? $param['id_post'] : '';
243 break;
244 case 'expage':
245 $param['show'][0] = 'page_selected';
246 $param['operator'][0] = 0;
247 $param['ids'][0] = ! empty( $param['id_post'] ) ? $param['id_post'] : '';
248 break;
249 case 'homepage':
250 $param['show'][0] = 'page_type';
251 $param['page_type'][0] = 'is_front_page';
252 break;
253 case 'searchpage':
254 $param['show'][0] = 'page_type';
255 $param['page_type'][0] = 'is_search';
256 break;
257 case 'archivepage':
258 $param['show'][0] = 'page_type';
259 $param['page_type'][0] = 'is_archive';
260 break;
261 case 'error_page':
262 $param['show'][0] = 'page_type';
263 $param['page_type'][0] = 'is_404';
264 break;
265 case 'post-page':
266 $param['show'][0] = 'page_type';
267 $param['page_type'][0] = 'is_home';
268 break;
269 }
270
271 return $param;
272
273 }
274
275
276 }