PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.9.1
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.9.1
2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 All 80 releases
ablocks / includes / migration.php

migration.php in aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder 2.9.1, at includes/migration.php

416 lines 16.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ABlocks;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 use ABlocks\Admin\Settings;
9
10 class Migration {
11
12 public static function init() {
13 $self = new self();
14 $self->run_migration();
15 add_filter( 'render_block_data', array( $self, 'update_attributes_backward_compatibility' ) );
16 }
17
18 public function run_migration() {
19 $ablocks_version = get_option( 'ablocks_version' );
20 // Save Version Number, flash role management and save permalink
21 if ( ABLOCKS_VERSION !== $ablocks_version ) {
22 Settings::save_settings();
23 $this->migrate_1_6_3( $ablocks_version );
24 $this->migrate_1_8_0( $ablocks_version );
25 $this->migrate_1_9_0( $ablocks_version );
26 update_option( 'ablocks_version', ABLOCKS_VERSION );
27 }
28 }
29
30 public function migrate_1_6_3( $version ) {
31 if ( version_compare( $version, '1.6.3', '<=' ) ) {
32 add_option( 'ablocks_has_required_block_attribute_migration', '1.6.3' );
33 // Delete Old Table
34 global $wpdb;
35 $prefix = $wpdb->prefix;
36 Database\CreateFormTable::down( $prefix );
37 // Crate New database table
38 Database::create_initial_custom_table();
39 }
40 }
41 public function migrate_1_8_0( $version ) {
42 if ( version_compare( $version, '1.8.0', '<=' ) ) {
43 global $wpdb;
44 $table_name = $wpdb->prefix . ABLOCKS_PLUGIN_SLUG . '_form_entries';
45 $wpdb->query( "ALTER TABLE {$table_name} MODIFY post_id VARCHAR(100) NULL" );
46 }
47 }
48
49 public function migrate_1_9_0( $version ) {
50 if ( version_compare( $version, '1.9.0', '<=' ) ) {
51 $saved_addons = (array) json_decode( get_option( ABLOCKS_ADDONS_SETTINGS_NAME ), true );
52 $saved_addons[ 'theme-builder' ] = true;
53 update_option( ABLOCKS_ADDONS_SETTINGS_NAME, wp_json_encode( $saved_addons ) );
54 }
55 }
56
57 public function update_attributes_backward_compatibility( $block ) {
58 if ( get_option( 'ablocks_has_required_block_attribute_migration' ) === '1.6.3' ) {
59
60 $attributes = ! empty( $block['attrs'] ) ? $block['attrs'] : [];
61 switch ( $block['blockName'] ) {
62 case 'ablocks/container':
63 $has_old_direction_value = ! empty( $block['attrs']['direction'] );
64 if ( empty( $block['attrs']['dir']['value'] ) || $has_old_direction_value ) {
65 $block['attrs']['dir']['value'] = $has_old_direction_value ? $attributes['direction'] : 'column';
66 $block['attrs']['direction'] = '';
67 }
68
69 if ( ! empty( $attributes['directionTablet'] ) ) {
70 $block['attrs']['dir']['valueTablet'] = $attributes['directionTablet'];
71 $block['attrs']['directionTablet'] = '';
72 }
73
74 if ( ! empty( $attributes['directionMobile'] ) ) {
75 $block['attrs']['dir']['valueMobile'] = $attributes['directionMobile'];
76 $block['attrs']['directionMobile'] = '';
77 }
78
79 if ( ! empty( $attributes['justify'] ) ) {
80 $block['attrs']['justification']['value'] = $attributes['justify'];
81 $block['attrs']['justify'] = '';
82 }
83
84 if ( ! empty( $attributes['justifyTablet'] ) ) {
85 $block['attrs']['justification']['valueTablet'] = $attributes['justifyTablet'];
86 $block['attrs']['justifyTablet'] = '';
87 }
88
89 if ( ! empty( $attributes['justifyMobile'] ) ) {
90 $block['attrs']['justification']['valueMobile'] = $attributes['justifyMobile'];
91 $block['attrs']['justifyMobile'] = '';
92 }
93
94 if ( ! empty( $attributes['align'] ) ) {
95 $block['attrs']['alignment']['value'] = $attributes['align'];
96 $block['attrs']['align'] = '';
97 }
98
99 if ( ! empty( $attributes['alignTablet'] ) ) {
100 $block['attrs']['alignment']['valueTablet'] = $attributes['alignTablet'];
101 $block['attrs']['alignTablet'] = '';
102 }
103
104 if ( ! empty( $attributes['alignMobile'] ) ) {
105 $block['attrs']['alignment']['valueMobile'] = $attributes['alignMobile'];
106 $block['attrs']['alignMobile'] = '';
107 }
108
109 if ( ! empty( $attributes['wrap'] ) ) {
110 $block['attrs']['wrapping']['value'] = $attributes['wrap'];
111 $block['attrs']['wrap'] = '';
112 }
113
114 if ( ! empty( $attributes['wrapTablet'] ) ) {
115 $block['attrs']['wrapping']['valueTablet'] = $attributes['wrapTablet'];
116 $block['attrs']['wrapTablet'] = '';
117 }
118
119 if ( ! empty( $attributes['wrapMobile'] ) ) {
120 $block['attrs']['wrapping']['valueMobile'] = $attributes['wrapMobile'];
121 $block['attrs']['wrapMobile'] = '';
122 }
123 break;
124 case 'ablocks/counter':
125 case 'ablocks/coupon':
126 case 'ablocks/icon':
127 case 'ablocks/notice':
128 case 'ablocks/paypal-button':
129 case 'ablocks/price-menu-item':
130 case 'ablocks/star-ratings':
131 case 'ablocks/stripe-button':
132 case 'ablocks/svg-draw':
133 case 'ablocks/tabs':
134 if ( ! empty( $attributes['iconSize'] ) ) {
135 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
136 }
137 if ( ! empty( $attributes['iconRotate'] ) ) {
138 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
139 }
140 // button-group control migration start
141 $has_old_tabsMenuPosition_value = ! empty( $block['attrs']['tabsMenuPosition'] );
142 if ( empty( $block['attrs']['tabsMenuPositioning']['value'] ) || $has_old_tabsMenuPosition_value ) {
143 $block['attrs']['tabsMenuPositioning']['value'] = $has_old_tabsMenuPosition_value ? $attributes['tabsMenuPosition'] : 'left';
144 $block['attrs']['tabsMenuPosition'] = '';
145 }
146 if ( ! empty( $attributes['tabsMenuPositionTablet'] ) ) {
147 $block['attrs']['tabsMenuPositioning']['valueTablet'] = $attributes['tabsMenuPositionTablet'];
148 $block['attrs']['tabsMenuPositionTablet'] = '';
149 }
150 if ( ! empty( $attributes['tabsMenuPositionMobile'] ) ) {
151 $block['attrs']['tabsMenuPositioning']['valueMobile'] = $attributes['tabsMenuPositionMobile'];
152 $block['attrs']['tabsMenuPositionMobile'] = '';
153 }
154 if ( ! empty( $attributes['tabMenuAlign'] ) ) {
155 $block['attrs']['tabMenuAlignment']['value'] = $attributes['tabMenuAlign'];
156 $block['attrs']['tabMenuAlign'] = '';
157 }
158 if ( ! empty( $attributes['tabMenuAlignTablet'] ) ) {
159 $block['attrs']['tabMenuAlignment']['valueTablet'] = $attributes['tabMenuAlignTablet'];
160 $block['attrs']['tabMenuAlignTablet'] = '';
161 }
162 if ( ! empty( $attributes['tabMenuAlignMobile'] ) ) {
163 $block['attrs']['tabMenuAlignment']['valueMobile'] = $attributes['tabMenuAlignMobile'];
164 $block['attrs']['tabMenuAlignMobile'] = '';
165 }
166 $has_old_menuContentAlign_value = ! empty( $block['attrs']['menuContentAlign'] );
167 if ( empty( $block['attrs']['menuContentAlignment']['value'] ) || $has_old_menuContentAlign_value ) {
168 $block['attrs']['menuContentAlignment']['value'] = $has_old_menuContentAlign_value ? $attributes['menuContentAlign'] : 'center';
169 $block['attrs']['menuContentAlign'] = '';
170 }
171 if ( ! empty( $attributes['menuContentAlignTablet'] ) ) {
172 $block['attrs']['menuContentAlignment']['valueTablet'] = $attributes['menuContentAlignTablet'];
173 $block['attrs']['menuContentAlignTablet'] = '';
174 }
175 if ( ! empty( $attributes['menuContentAlignMobile'] ) ) {
176 $block['attrs']['menuContentAlignment']['valueMobile'] = $attributes['menuContentAlignMobile'];
177 $block['attrs']['menuContentAlignMobile'] = '';
178 }
179
180 // button-group control migration end
181
182 break;
183
184 case 'ablocks/button':
185 if ( ! empty( $attributes['iconSize'] ) ) {
186 $iconSize = intval( $attributes['iconSize'] );
187 if ( $iconSize !== 16 ) {
188 $block['attrs']['iconSizing']['value'] = $iconSize;
189 }
190 }
191 if ( ! empty( $attributes['iconRotate'] ) ) {
192 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
193 }
194 break;
195
196 case 'ablocks/form-input':
197 if ( ! empty( $attributes['iconSize'] ) ) {
198 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
199 }
200 if ( ! empty( $attributes['iconRotate'] ) ) {
201 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
202 }
203 break;
204
205 case 'ablocks/form-password':
206 if ( ! empty( $attributes['iconSize'] ) ) {
207 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
208 }
209 if ( ! empty( $attributes['iconRotate'] ) ) {
210 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
211 }
212
213 if ( ! empty( $attributes['passwordShowSize'] ) ) {
214 $block['attrs']['passwordShowSizing']['value'] = $attributes['passwordShowSize'];
215 }
216 if ( ! empty( $attributes['passwordShowRotate'] ) ) {
217 $block['attrs']['passwordShowRotated']['value'] = $attributes['passwordShowRotate'];
218 }
219 if ( ! empty( $attributes['passwordHideSize'] ) ) {
220 $block['attrs']['passwordHideSizing']['value'] = $attributes['passwordHideSize'];
221 }
222 if ( ! empty( $attributes['passwordHideRotate'] ) ) {
223 $block['attrs']['passwordHideRotated']['value'] = $attributes['passwordHideRotate'];
224 }
225
226 break;
227
228 case 'ablocks/carousel':
229 if ( ! empty( $attributes['leftIconSize'] ) ) {
230 $block['attrs']['leftIconSizing']['value'] = $attributes['leftIconSize'];
231 }
232 if ( ! empty( $attributes['leftIconRotate'] ) ) {
233 $block['attrs']['leftIconRotated']['value'] = $attributes['leftIconRotate'];
234 }
235 if ( ! empty( $attributes['rightIconSize'] ) ) {
236 $block['attrs']['rightIconSizing']['value'] = $attributes['rightIconSize'];
237 }
238 if ( ! empty( $attributes['rightIconRotate'] ) ) {
239 $block['attrs']['rightIconRotated']['value'] = $attributes['rightIconRotate'];
240 }
241 break;
242 case 'ablocks/content-timeline':
243 break;
244 case 'ablocks/content-timeline-child':
245 if ( ! empty( $attributes['iconSize'] ) ) {
246 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
247 }
248 if ( ! empty( $attributes['iconRotate'] ) ) {
249 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
250 }
251
252 if ( ! empty( $attributes['contentTimeLineIconSize'] ) ) {
253 $block['attrs']['contentTimeLineIconSizing']['value'] = $attributes['contentTimeLineIconSize'];
254 }
255 if ( ! empty( $attributes['contentTimeLineIconRotate'] ) ) {
256 $block['attrs']['contentTimeLineIconRotated']['value'] = $attributes['contentTimeLineIconRotate'];
257 }
258 break;
259
260 case 'ablocks/divider':
261 if ( ! empty( $attributes['iconSize'] ) ) {
262 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
263 }
264 if ( ! empty( $attributes['iconRotate'] ) ) {
265 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
266 }
267 break;
268
269 case 'ablocks/single-accordion':
270 if ( ! empty( $attributes['leftActiveIconSize'] ) ) {
271 $block['attrs']['leftActiveIconSizing']['value'] = $attributes['leftActiveIconSize'];
272 }
273 if ( ! empty( $attributes['leftActiveIconRotate'] ) ) {
274 $block['attrs']['leftActiveIconRotated']['value'] = $attributes['leftActiveIconRotate'];
275 }
276 if ( ! empty( $attributes['leftCloseIconSize'] ) ) {
277 $block['attrs']['leftCloseIconSizing']['value'] = $attributes['leftCloseIconSize'];
278 }
279 if ( ! empty( $attributes['leftCloseIconRotate'] ) ) {
280 $block['attrs']['leftCloseIconRotated']['value'] = $attributes['leftCloseIconRotate'];
281 }
282 if ( ! empty( $attributes['rightActiveIconSize'] ) ) {
283 $block['attrs']['rightActiveIconSizing']['value'] = $attributes['rightActiveIconSize'];
284 }
285 if ( ! empty( $attributes['rightActiveIconRotate'] ) ) {
286 $block['attrs']['rightActiveIconRotated']['value'] = $attributes['rightActiveIconRotate'];
287 }
288 if ( ! empty( $attributes['rightCloseIconSize'] ) ) {
289 $block['attrs']['rightCloseIconSizing']['value'] = $attributes['rightCloseIconSize'];
290 }
291 if ( ! empty( $attributes['rightCloseIconRotate'] ) ) {
292 $block['attrs']['rightCloseIconRotated']['value'] = $attributes['rightCloseIconRotate'];
293 }
294 break;
295
296 case 'ablocks/table-of-content':
297 if ( ! empty( $attributes['iconSize'] ) ) {
298 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
299 }
300 if ( ! empty( $attributes['iconRotate'] ) ) {
301 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
302 }
303
304 if ( ! empty( $attributes['closeIconSize'] ) ) {
305 $block['attrs']['closeIconSizing']['value'] = $attributes['closeIconSize'];
306 }
307 if ( ! empty( $attributes['closeIconRotate'] ) ) {
308 $block['attrs']['closeIconRotated']['value'] = $attributes['closeIconRotate'];
309 }
310 if ( ! empty( $attributes['openIconSize'] ) ) {
311 $block['attrs']['openIconSizing']['value'] = $attributes['openIconSize'];
312 }
313 if ( ! empty( $attributes['openIconRotate'] ) ) {
314 $block['attrs']['openIconRotated']['value'] = $attributes['openIconRotate'];
315 }
316 break;
317
318 case 'ablocks/info-box':
319 if ( ! empty( $attributes['iconSize'] ) ) {
320 $block['attrs']['iconSizing']['value'] = $attributes['iconSize'];
321 }
322 if ( ! empty( $attributes['iconRotate'] ) ) {
323 $block['attrs']['iconRotated']['value'] = $attributes['iconRotate'];
324 }
325 if ( ! empty( $attributes['btnIconSize'] ) ) {
326 $block['attrs']['btnIconSizing']['value'] = $attributes['btnIconSize'];
327 }
328 if ( ! empty( $attributes['btnIconRotate'] ) ) {
329 $block['attrs']['btnIconRotated']['value'] = $attributes['btnIconRotate'];
330 }
331 if ( ! empty( $attributes['starIconSize'] ) ) {
332 $block['attrs']['starIconSizing']['value'] = $attributes['starIconSize'];
333 }
334 if ( ! empty( $attributes['starIconRotate'] ) ) {
335 $block['attrs']['starIconRotated']['value'] = $attributes['starIconRotate'];
336 }
337 break;
338
339 case 'ablocks/lists':
340 break;
341
342 case 'ablocks/modal':
343 break;
344 case 'ablocks/progress-tracker':
345 break;
346 case 'ablocks/social-shares':
347 break;
348 case 'ablocks/toggle':
349 break;
350 case 'ablocks/flip-box':
351 break;
352
353 case 'ablocks/countdown':
354 // button-group control migration start
355 $has_old_direction_value = ! empty( $block['attrs']['direction'] );
356 if ( empty( $attributes['orient'] ) || $has_old_direction_value ) {
357 $block['attrs']['orient']['value'] = $has_old_direction_value ? $attributes['direction'] : 'row';
358 $block['attrs']['direction'] = '';
359 }
360 if ( ! empty( $attributes['directionTablet'] ) ) {
361 $block['attrs']['orient']['valueTablet'] = $attributes['directionTablet'];
362 $block['attrs']['directionTablet'] = '';
363 }
364 if ( ! empty( $attributes['directionMobile'] ) ) {
365 $block['attrs']['orient']['valueMobile'] = $attributes['directionMobile'];
366 $block['attrs']['directionMobile'] = '';
367 }
368 $has_old_justifyAlign_value = ! empty( $block['attrs']['justifyAlign'] );
369 if ( empty( $attributes['justificationAlign'] ) || $has_old_justifyAlign_value ) {
370 $block['attrs']['justificationAlign']['value'] = $has_old_justifyAlign_value ? $attributes['justifyAlign'] : 'center';
371 $block['attrs']['justifyAlign'] = '';
372 }
373 if ( ! empty( $attributes['justifyAlignTablet'] ) ) {
374 $block['attrs']['justificationAlign']['valueTablet'] = $attributes['justifyAlignTablet'];
375 $block['attrs']['justifyAlignTablet'] = '';
376 }
377 if ( ! empty( $attributes['justifyAlignMobile'] ) ) {
378 $block['attrs']['justificationAlign']['valueMobile'] = $attributes['justifyAlignMobile'];
379 $block['attrs']['justifyAlignMobile'] = '';
380 }
381 $has_old_align_value = ! empty( $block['attrs']['align'] );
382 if ( empty( $attributes['alignment'] ) || $has_old_align_value ) {
383 $block['attrs']['alignment']['value'] = $has_old_align_value ? $attributes['align'] : 'stretch';
384 $block['attrs']['align'] = '';
385 }
386 if ( ! empty( $attributes['alignTablet'] ) ) {
387 $block['attrs']['alignment']['valueTablet'] = $attributes['alignTablet'];
388 $block['attrs']['alignTablet'] = '';
389 }
390 if ( ! empty( $attributes['alignMobile'] ) ) {
391 $block['attrs']['alignment']['valueMobile'] = $attributes['alignMobile'];
392 $block['attrs']['alignMobile'] = '';
393 }
394 $has_old_wrap_value = ! empty( $block['attrs']['wrap'] );
395 if ( empty( $attributes['wrapping'] ) || $has_old_wrap_value ) {
396 $block['attrs']['wrapping']['value'] = $has_old_wrap_value ? $attributes['wrap'] : 'wrap';
397 $block['attrs']['wrap'] = '';
398 }
399 if ( ! empty( $attributes['wrapTablet'] ) ) {
400 $block['attrs']['wrapping']['valueTablet'] = $attributes['wrapTablet'];
401 $block['attrs']['wrapTablet'] = '';
402 }
403 if ( ! empty( $attributes['wrapMobile'] ) ) {
404 $block['attrs']['wrapping']['valueMobile'] = $attributes['wrapMobile'];
405 $block['attrs']['wrapMobile'] = '';
406 }
407 // button-group control migration end
408 break;
409 }//end switch
410 }//end if
411 return $block;
412 }
413
414
415 }
416