PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.16.3
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.16.3
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/models/FrmMigrate.php +40 -245 6.31 → 6.16.3 View file →
@@ -3,27 +3,11 @@
3 3 die( 'You are not allowed to call this page directly.' );
4 4 }
5 5
6 6 class FrmMigrate {
7 -
8 - /**
9 - * @var string
10 - */
11 7 public $fields;
12 -
13 - /**
14 - * @var string
15 - */
16 8 public $forms;
17 -
18 - /**
19 - * @var string
20 - */
21 9 public $entries;
22 -
23 - /**
24 - * @var string
25 - */
26 10 public $entry_metas;
27 11
28 12 public function __construct() {
29 13 global $wpdb;
@@ -32,11 +16,8 @@
32 16 $this->entries = $wpdb->prefix . 'frm_items';
33 17 $this->entry_metas = $wpdb->prefix . 'frm_item_metas';
34 18 }
35 19
36 - /**
37 - * @return void
38 - */
39 20 public function upgrade() {
40 21 do_action( 'frm_before_install' );
41 22
42 23 global $wpdb, $frm_vars;
@@ -51,11 +32,9 @@
51 32 )
52 33 );
53 34
54 35 if ( $needs_upgrade ) {
55 - $this->maybe_delete_htaccess_file();
56 -
57 - // Update rewrite rules for views and other custom post types
36 + // update rewrite rules for views and other custom post types
58 37 flush_rewrite_rules();
59 38
60 39 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
61 40
@@ -62,9 +41,8 @@
62 41 $old_db_version = get_option( 'frm_db_version' );
63 42
64 43 $this->create_tables();
65 44 $this->migrate_data( $old_db_version );
66 - $this->check_that_tables_exist();
67 45
68 46 // SAVE DB VERSION.
69 47 update_option( 'frm_db_version', FrmAppHelper::plugin_version() . '-' . FrmAppHelper::$db_version );
70 48
@@ -73,10 +51,8 @@
73 51
74 52 if ( false === get_option( 'frm_first_activation' ) ) {
75 53 update_option( 'frm_first_activation', time(), false );
76 54 }
77 -
78 - $this->update_settings_for_new_install();
79 55 }
80 56 }//end if
81 57
82 58 do_action( 'frm_after_install' );
@@ -84,97 +60,24 @@
84 60 $frm_vars['doing_upgrade'] = false;
85 61
86 62 FrmAppHelper::save_combined_js();
87 63
88 - // Update the styling settings
89 - if ( ! function_exists( 'get_filesystem_method' ) ) {
90 - return;
64 + // update the styling settings
65 + if ( function_exists( 'get_filesystem_method' ) ) {
66 + $frm_style = new FrmStyle();
67 + $frm_style->update( 'default' );
91 68 }
92 -
93 - $frm_style = new FrmStyle();
94 - $frm_style->update( 'default' );
95 69 }
96 70
97 - /**
98 - * Check if the .htaccess file should be deleted based on server response.
99 - * If a server has AllowOverride FileInfo but not AllowOverride AuthConfig, JS and CSS files
100 - * will result in a 500 error.
101 - *
102 - * @since 6.27
103 - *
104 - * @return void
105 - */
106 - private function maybe_delete_htaccess_file() {
107 - $css_file_request = wp_remote_get( FrmAppHelper::plugin_url() . '/css/frm_fonts.css' );
108 -
109 - if ( 200 === wp_remote_retrieve_response_code( $css_file_request ) ) {
110 - return;
111 - }
112 -
113 - $htaccess_path = FrmAppHelper::plugin_path() . '/.htaccess';
114 -
115 - if ( file_exists( $htaccess_path ) ) {
116 - wp_delete_file( $htaccess_path );
117 - }
118 - }
119 -
120 - /**
121 - * Updates some settings for new installs.
122 - *
123 - * @since 6.23
124 - *
125 - * @return void
126 - */
127 - private function update_settings_for_new_install() {
128 - $settings = FrmAppHelper::get_settings();
129 -
130 - $settings->denylist_check = 1;
131 - $settings->installed_after_welcome_tour_update = 1;
132 - $settings->store();
133 - }
134 -
135 - /**
136 - * If we fail to create the database tables, add an inbox notice.
137 - * This informs the user that they need to correct the issue and try again.
138 - *
139 - * @since 6.19
140 - *
141 - * @return void
142 - */
143 - private function check_that_tables_exist() {
144 - // Check the DB that the table $this->forms exists.
71 + public function collation() {
145 72 global $wpdb;
146 - $exists = $wpdb->get_results( $wpdb->prepare( 'SHOW TABLES LIKE %s', $this->forms ) );
147 -
148 - if ( $exists ) {
149 - $inbox = new FrmInbox();
150 - $inbox->dismiss( 'failed-to-create-tables' );
151 - return;
73 + if ( ! $wpdb->has_cap( 'collation' ) ) {
74 + return '';
152 75 }
153 76
154 - $message = array(
155 - 'key' => 'failed-to-create-tables',
156 - 'subject' => 'Something went wrong setting up the database',
157 - 'message' => 'For steps to continue, see our <a href="https://formidableforms.com/knowledgebase/install-formidable-forms/#kb-missing-database-tables">documentation</a>. If you need assistance, we recommend that you reach out to your hosting provider. Then <a href="' . esc_url( admin_url( 'admin.php?page=formidable&frm_add_tables=1' ) ) . '">click here</a> to try again.', // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
158 - 'cta' => '<a href="https://formidableforms.com/knowledgebase/install-formidable-forms/#kb-missing-database-tables">Learn More</a>',
159 - 'type' => 'error',
160 - );
161 -
162 - $inbox = new FrmInbox();
163 - $inbox->add_message( $message );
77 + return $wpdb->get_charset_collate();
164 78 }
165 79
166 - /**
167 - * @return string
168 - */
169 - public function collation() {
170 - global $wpdb;
171 - return $wpdb->has_cap( 'collation' ) ? $wpdb->get_charset_collate() : '';
172 - }
173 -
174 - /**
175 - * @return void
176 - */
177 80 private function create_tables() {
178 81 $charset_collate = $this->collation();
179 82 $sql = array();
180 83
@@ -267,9 +170,8 @@
267 170 * These indexes help optimize database queries for entries.
268 171 *
269 172 * @since 6.6
270 173 * @since 6.16.3 idx_form_id_is_draft was also added to frm_items.
271 - * @since 6.17 idx_form_id_type was also added to frm_fields.
272 174 *
273 175 * @return void
274 176 */
275 177 private function add_composite_indexes_for_entries() {
@@ -294,15 +196,8 @@
294 196
295 197 if ( ! self::index_exists( $table_name, $index_name ) ) {
296 198 $wpdb->query( "CREATE INDEX idx_form_id_is_draft ON `{$wpdb->prefix}frm_items` (form_id, is_draft)" );
297 199 }
298 -
299 - $table_name = "{$wpdb->prefix}frm_fields";
300 - $index_name = 'idx_form_id_type';
301 -
302 - if ( ! self::index_exists( $table_name, $index_name ) ) {
303 - $wpdb->query( "CREATE INDEX idx_form_id_type ON `{$wpdb->prefix}frm_fields` (form_id, type(30))" );
304 - }
305 200 }
306 201
307 202 /**
308 203 * Check that an index exists in a database table before trying to add it (which results in an error).
@@ -310,9 +205,8 @@
310 205 * @since 6.6
311 206 *
312 207 * @param string $table_name
313 208 * @param string $index_name
314 - *
315 209 * @return bool
316 210 */
317 211 private static function index_exists( $table_name, $index_name ) {
318 212 global $wpdb;
@@ -328,14 +222,10 @@
328 222 );
329 223 return (bool) $row;
330 224 }
331 225
332 - /**
333 - * @return void
334 - */
335 226 private function maybe_create_contact_form() {
336 227 $form_exists = FrmForm::get_id_by_key( 'contact-form' );
337 -
338 228 if ( ! $form_exists ) {
339 229 $this->add_default_template();
340 230 }
341 231 }
@@ -343,10 +233,8 @@
343 233 /**
344 234 * Create the default contact form
345 235 *
346 236 * @since 3.06
347 - *
348 - * @return void
349 237 */
350 238 private function add_default_template() {
351 239 if ( FrmXMLHelper::check_if_libxml_disable_entity_loader_exists() ) {
352 240 // XML import is not enabled on your server.
@@ -354,9 +242,10 @@
354 242 }
355 243
356 244 $set_err = libxml_use_internal_errors( true );
357 245 $loader = FrmXMLHelper::maybe_libxml_disable_entity_loader( true );
358 - $file = FrmAppHelper::plugin_path() . '/classes/views/xml/default-templates.xml';
246 +
247 + $file = FrmAppHelper::plugin_path() . '/classes/views/xml/default-templates.xml';
359 248 FrmXMLHelper::import_xml( $file );
360 249
361 250 libxml_use_internal_errors( $set_err );
362 251 FrmXMLHelper::maybe_libxml_disable_entity_loader( $loader );
@@ -363,41 +252,32 @@
363 252 }
364 253
365 254 /**
366 255 * @param int|string $old_db_version
367 - *
368 - * @return void
369 256 */
370 257 private function migrate_data( $old_db_version ) {
371 258 if ( ! $old_db_version ) {
372 259 $old_db_version = get_option( 'frm_db_version' );
373 260 }
374 -
375 - if ( str_contains( $old_db_version, '-' ) ) {
261 + if ( strpos( $old_db_version, '-' ) ) {
376 262 $last_upgrade = explode( '-', $old_db_version );
377 - $old_db_version = intval( end( $last_upgrade ) );
263 + $old_db_version = (int) $last_upgrade[1];
378 264 }
379 265
380 266 if ( ! is_numeric( $old_db_version ) ) {
381 - // Bail if we don't know the previous version
267 + // bail if we don't know the previous version
382 268 return;
383 269 }
384 270
385 - $migrations = array( 16, 11, 16, 17, 23, 25, 86, 90, 97, 98, 101, 104, 105 );
386 -
271 + $migrations = array( 16, 11, 16, 17, 23, 25, 86, 90, 97, 98, 101 );
387 272 foreach ( $migrations as $migration ) {
388 - if ( FrmAppHelper::$db_version < $migration || $old_db_version >= $migration ) {
389 - continue;
273 + if ( FrmAppHelper::$db_version >= $migration && $old_db_version < $migration ) {
274 + $function_name = 'migrate_to_' . $migration;
275 + $this->$function_name();
390 276 }
391 -
392 - $function_name = 'migrate_to_' . $migration;
393 - $this->$function_name();
394 277 }
395 278 }
396 279
397 - /**
398 - * @return bool
399 - */
400 280 public function uninstall() {
401 281 if ( ! current_user_can( 'administrator' ) ) {
402 282 $frm_settings = FrmAppHelper::get_settings();
403 283 wp_die( esc_html( $frm_settings->admin_permission ) );
@@ -422,9 +302,8 @@
422 302
423 303 // Delete roles.
424 304 $frm_roles = FrmAppHelper::frm_capabilities();
425 305 $roles = get_editable_roles();
426 -
427 306 foreach ( $frm_roles as $frm_role => $frm_role_description ) {
428 307 foreach ( $roles as $role => $details ) {
429 308 $wp_roles->remove_cap( $role, $frm_role );
430 309 unset( $role, $details );
@@ -432,16 +311,15 @@
432 311 unset( $frm_role, $frm_role_description );
433 312 }
434 313 unset( $roles, $frm_roles );
435 314
436 - // Delete actions, views, and styles
315 + // delete actions, views, and styles
437 316
438 - // Prevent the post deletion from triggering entries to be deleted
317 + // prevent the post deletion from triggering entries to be deleted
439 318 remove_action( 'before_delete_post', 'FrmProDisplaysController::before_delete_post' );
440 319 remove_action( 'deleted_post', 'FrmProEntriesController::delete_entry' );
441 320
442 - $post_ids = $wpdb->get_col( $wpdb->prepare( 'SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type in (%s, %s, %s)', FrmFormActionsController::$action_post_type, FrmStylesController::$post_type, 'frm_display' ) ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
443 -
321 + $post_ids = $wpdb->get_col( $wpdb->prepare( 'SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type in (%s, %s, %s)', FrmFormActionsController::$action_post_type, FrmStylesController::$post_type, 'frm_display' ) );
444 322 foreach ( $post_ids as $post_id ) {
445 323 // Delete's each post.
446 324 wp_delete_post( $post_id, true );
447 325 }
@@ -446,15 +324,15 @@
446 324 wp_delete_post( $post_id, true );
447 325 }
448 326 unset( $post_ids );
449 327
450 - // Delete transients
328 + // delete transients
451 329 delete_transient( 'frmpro_css' );
452 330 delete_transient( 'frm_options' );
453 331 delete_transient( 'frmpro_options' );
454 332 delete_transient( FrmOnboardingWizardController::TRANSIENT_NAME );
455 333
456 - $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_timeout_frm_form_fields_%', '_transient_frm_form_fields_%' ) ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
334 + $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->options . ' WHERE option_name LIKE %s OR option_name LIKE %s', '_transient_timeout_frm_form_fields_%', '_transient_frm_form_fields_%' ) );
457 335
458 336 do_action( 'frm_after_uninstall' );
459 337
460 338 return true;
@@ -460,44 +338,11 @@
460 338 return true;
461 339 }
462 340
463 341 /**
464 - * In older versions of Lite, it's possible we've saved the wrong location ID.
465 - * So force it to get valid values again.
466 - *
467 - * @since 6.25
468 - *
469 - * @return void
470 - */
471 - private function migrate_to_104() {
472 - if ( FrmSquareLiteConnectHelper::get_merchant_id( 'test' ) ) {
473 - FrmSquareLiteConnectHelper::get_location_id( true, 'test' );
474 - }
475 -
476 - if ( FrmSquareLiteConnectHelper::get_merchant_id( 'live' ) ) {
477 - FrmSquareLiteConnectHelper::get_location_id( true, 'live' );
478 - }
479 - }
480 -
481 - /**
482 - * Add new wp_options row for custom setting.
483 - *
484 - * @since 6.26
485 - *
486 - * @return void
487 - */
488 - private function migrate_to_105() {
489 - if ( ! FrmAppHelper::pro_is_installed() ) {
490 - update_option( 'frm_show_pricing_fields_modal', 1, false );
491 - }
492 - }
493 -
494 - /**
495 342 * Disables summary email for multisite (not the main site) if recipient setting isn't changed.
496 343 *
497 344 * @since 6.8
498 - *
499 - * @return void
500 345 */
501 346 private function migrate_to_101() {
502 347 if ( ! is_multisite() || get_main_site_id() === get_current_blog_id() ) {
503 348 return;
@@ -503,9 +348,8 @@
503 348 return;
504 349 }
505 350
506 351 $frm_settings = FrmAppHelper::get_settings();
507 -
508 352 if ( empty( $frm_settings->summary_emails ) || '[admin_email]' !== $frm_settings->summary_emails_recipients ) {
509 353 // User changed it.
510 354 return;
511 355 }
@@ -517,10 +361,8 @@
517 361 /**
518 362 * Clear frmpro_css transient.
519 363 *
520 364 * @since 4.10.02
521 - *
522 - * @return void
523 365 */
524 366 private function migrate_to_98() {
525 367 delete_transient( 'frmpro_css' );
526 368 }
@@ -528,10 +370,8 @@
528 370 /**
529 371 * Move default_blank and clear_on_focus to placeholder.
530 372 *
531 373 * @since 4.0
532 - *
533 - * @return void
534 374 */
535 375 private function migrate_to_97() {
536 376 $this->migrate_to_placeholder( 'clear_on_focus' );
537 377 $this->migrate_to_placeholder( 'default_blank' );
@@ -540,12 +380,8 @@
540 380 /**
541 381 * Move clear_on_focus or default_blank to placeholder.
542 382 *
543 383 * @since 4.0
544 - *
545 - * @param string $type Field option key to migrate.
546 - *
547 - * @return void
548 384 */
549 385 private function migrate_to_placeholder( $type = 'clear_on_focus' ) {
550 386 $query = array(
551 387 'field_options like' => '"' . $type . '";s:1:"1";',
@@ -556,10 +392,9 @@
556 392 foreach ( $fields as $field ) {
557 393 FrmAppHelper::unserialize_or_decode( $field->field_options );
558 394 FrmAppHelper::unserialize_or_decode( $field->options );
559 395 $update_values = FrmXMLHelper::migrate_field_placeholder( $field, $type );
560 -
561 - if ( ! $update_values ) {
396 + if ( empty( $update_values ) ) {
562 397 continue;
563 398 }
564 399
565 400 FrmField::update( $field->id, $update_values );
@@ -570,15 +405,11 @@
570 405 /**
571 406 * Delete unneeded default templates
572 407 *
573 408 * @since 3.06
574 - *
575 - * @return void
576 409 */
577 410 private function migrate_to_90() {
578 411 $form = FrmForm::getOne( 'contact' );
579 -
580 - // phpcs:ignore Universal.Operators.StrictComparisons
581 412 if ( $form && $form->default_template == 1 ) {
582 413 FrmForm::destroy( 'contact' );
583 414 }
584 415 }
@@ -586,15 +417,14 @@
586 417 /**
587 418 * Reverse migration 17 -- Divide by 9
588 419 *
589 420 * @since 3.0.05
590 - *
591 - * @return void
592 421 */
593 422 private function migrate_to_86() {
423 +
594 424 $fields = $this->get_fields_with_size();
595 425
596 - foreach ( $fields as $f ) {
426 + foreach ( (array) $fields as $f ) {
597 427 FrmAppHelper::unserialize_or_decode( $f->field_options );
598 428 $size = $f->field_options['size'];
599 429 $this->maybe_convert_migrated_size( $size );
600 430
@@ -606,12 +436,11 @@
606 436 FrmField::update( $f->id, array( 'field_options' => $f->field_options ) );
607 437 unset( $f );
608 438 }
609 439
610 - // Reverse the extra size changes in widgets
440 + // reverse the extra size changes in widgets
611 441 $widgets = get_option( 'widget_frm_show_form' );
612 -
613 - if ( ! $widgets ) {
442 + if ( empty( $widgets ) ) {
614 443 return;
615 444 }
616 445
617 446 $this->revert_widget_field_size();
@@ -616,11 +445,8 @@
616 445
617 446 $this->revert_widget_field_size();
618 447 }
619 448
620 - /**
621 - * @return array
622 - */
623 449 private function get_fields_with_size() {
624 450 $field_types = array(
625 451 'textarea',
626 452 'text',
@@ -648,20 +474,16 @@
648 474 /**
649 475 * Reverse the extra size changes in widgets
650 476 *
651 477 * @since 3.0.05
652 - *
653 - * @return void
654 478 */
655 479 private function revert_widget_field_size() {
656 480 $widgets = get_option( 'widget_frm_show_form' );
657 -
658 - if ( ! $widgets ) {
481 + if ( empty( $widgets ) ) {
659 482 return;
660 483 }
661 484
662 485 FrmAppHelper::unserialize_or_decode( $widgets );
663 -
664 486 foreach ( $widgets as $k => $widget ) {
665 487 if ( ! is_array( $widget ) || ! isset( $widget['size'] ) ) {
666 488 continue;
667 489 }
@@ -667,9 +489,8 @@
667 489 }
668 490
669 491 $this->maybe_convert_migrated_size( $widgets[ $k ]['size'] );
670 492 }
671 -
672 493 update_option( 'widget_frm_show_form', $widgets );
673 494 }
674 495
675 496 /**
@@ -675,28 +496,23 @@
675 496 /**
676 497 * Divide by 9 to reverse the multiplication
677 498 *
678 499 * @since 3.0.05
679 - *
680 - * @param string $size Size string to maybe convert, passed by reference.
681 - *
682 - * @return void
683 500 */
684 501 private function maybe_convert_migrated_size( &$size ) {
685 - $has_px_size = $size && str_contains( $size, 'px' );
686 -
502 + $has_px_size = ! empty( $size ) && strpos( $size, 'px' );
687 503 if ( ! $has_px_size ) {
688 504 return;
689 505 }
690 506
691 507 $int_size = str_replace( 'px', '', $size );
692 -
693 508 if ( ! is_numeric( $int_size ) || (int) $int_size < 900 ) {
694 509 return;
695 510 }
696 511
697 512 $pixel_conversion = 9;
698 - $size = round( (int) $int_size / $pixel_conversion );
513 +
514 + $size = round( (int) $int_size / $pixel_conversion );
699 515 }
700 516
701 517 /**
702 518 * Migrate old styling settings. If sites are using the old
@@ -702,17 +518,14 @@
702 518 * Migrate old styling settings. If sites are using the old
703 519 * default 400px field width, switch it to 100%
704 520 *
705 521 * @since 2.0.4
706 - *
707 - * @return void
708 522 */
709 523 private function migrate_to_25() {
710 - // Get the style that was created with the style migration
524 + // get the style that was created with the style migration
711 525 $frm_style = new FrmStyle();
712 526 $styles = $frm_style->get_all( 'post_date', 'ASC', 1 );
713 -
714 - if ( ! $styles ) {
527 + if ( empty( $styles ) ) {
715 528 return;
716 529 }
717 530
718 531 foreach ( $styles as $style ) {
@@ -729,16 +542,13 @@
729 542 * Check if the parent_form_id columns exists.
730 543 * If not, try and add it again
731 544 *
732 545 * @since 2.0.2
733 - *
734 - * @return void
735 546 */
736 547 private function migrate_to_23() {
737 548 global $wpdb;
738 549 $exists = $wpdb->get_row( 'SHOW COLUMNS FROM ' . $this->forms . ' LIKE "parent_form_id"' ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
739 -
740 - if ( ! $exists ) {
550 + if ( empty( $exists ) ) {
741 551 $wpdb->query( 'ALTER TABLE ' . $this->forms . ' ADD parent_form_id int(11) default 0' ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
742 552 }
743 553 }
744 554
@@ -743,10 +553,8 @@
743 553 }
744 554
745 555 /**
746 556 * Change field size from character to pixel -- Multiply by 9
747 - *
748 - * @return void
749 557 */
750 558 private function migrate_to_17() {
751 559 $fields = $this->get_fields_with_size();
752 560
@@ -751,9 +559,8 @@
751 559 $fields = $this->get_fields_with_size();
752 560
753 561 foreach ( $fields as $f ) {
754 562 FrmAppHelper::unserialize_or_decode( $f->field_options );
755 -
756 563 if ( empty( $f->field_options['size'] ) || ! is_numeric( $f->field_options['size'] ) ) {
757 564 continue;
758 565 }
759 566
@@ -767,20 +574,16 @@
767 574 }
768 575
769 576 /**
770 577 * Change the characters in widgets to pixels
771 - *
772 - * @return void
773 578 */
774 579 private function adjust_widget_size() {
775 580 $widgets = get_option( 'widget_frm_show_form' );
776 -
777 - if ( ! $widgets ) {
581 + if ( empty( $widgets ) ) {
778 582 return;
779 583 }
780 584
781 585 FrmAppHelper::unserialize_or_decode( $widgets );
782 -
783 586 foreach ( $widgets as $k => $widget ) {
784 587 if ( ! is_array( $widget ) || ! isset( $widget['size'] ) ) {
785 588 continue;
786 589 }
@@ -785,17 +588,11 @@
785 588 continue;
786 589 }
787 590 $this->convert_character_to_px( $widgets[ $k ]['size'] );
788 591 }
789 -
790 592 update_option( 'widget_frm_show_form', $widgets );
791 593 }
792 594
793 - /**
794 - * @param string $size
795 - *
796 - * @return void
797 - */
798 595 private function convert_character_to_px( &$size ) {
799 596 $pixel_conversion = 9;
800 597
801 598 $size = round( $pixel_conversion * (int) $size );
@@ -838,9 +635,9 @@
838 635 * post_excerpt: message
839 636 */
840 637 foreach ( $forms as $form ) {
841 638 if ( $form->is_template && $form->default_template ) {
842 - // Don't migrate the default templates since the email will be added anyway
639 + // don't migrate the default templates since the email will be added anyway
843 640 continue;
844 641 }
845 642
846 643 // Format form options
@@ -854,9 +651,10 @@
854 651
855 652 private function migrate_to_11() {
856 653 global $wpdb;
857 654
858 - $forms = FrmDb::get_results( $this->forms, array(), 'id, options' );
655 + $forms = FrmDb::get_results( $this->forms, array(), 'id, options' );
656 +
859 657 $sending = __( 'Sending', 'formidable' );
860 658 $img = FrmAppHelper::plugin_url() . '/images/ajax_loader.gif';
861 659 $old_default_html = <<<DEFAULT_HTML
862 660 <div class="frm_submit">
@@ -868,21 +666,18 @@
868 666 unset( $sending, $img );
869 667
870 668 $new_default_html = FrmFormsHelper::get_default_html( 'submit' );
871 669 $draft_link = FrmFormsHelper::get_draft_link();
872 -
873 670 foreach ( $forms as $form ) {
874 671 FrmAppHelper::unserialize_or_decode( $form->options );
875 -
876 672 if ( empty( $form->options['submit_html'] ) ) {
877 673 continue;
878 674 }
879 675
880 - // phpcs:ignore Universal.Operators.StrictComparisons
881 676 if ( $form->options['submit_html'] != $new_default_html && $form->options['submit_html'] == $old_default_html ) {
882 677 $form->options['submit_html'] = $new_default_html;
883 678 $wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) );
884 - } elseif ( ! str_contains( $form->options['submit_html'], 'save_draft' ) ) {
679 + } elseif ( ! strpos( $form->options['submit_html'], 'save_draft' ) ) {
885 680 $form->options['submit_html'] = preg_replace( '~\<\/div\>(?!.*\<\/div\>)~', $draft_link . "\r\n</div>", $form->options['submit_html'] );
886 681 $wpdb->update( $this->forms, array( 'options' => serialize( $form->options ) ), array( 'id' => $form->id ) );
887 682 }
888 683 unset( $form );