PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.13
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.13
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/controllers/FrmOnboardingWizardController.php +124 -189 6.356.13 View file →
@@ -45,9 +45,8 @@
45 45 const TRANSIENT_NAME = 'frm_activation_redirect';
46 46
47 47 /**
48 48 * Transient value associated with the redirection to the Onboarding Wizard page.
49 - * Used when activating a single plugin.
50 49 *
51 50 * @var string
52 51 */
53 52 const TRANSIENT_VALUE = 'formidable-welcome';
@@ -52,16 +51,8 @@
52 51 */
53 52 const TRANSIENT_VALUE = 'formidable-welcome';
54 53
55 54 /**
56 - * Transient value associated with the redirection to the Onboarding Wizard page.
57 - * Used when activating multiple plugins at once.
58 - *
59 - * @var string
60 - */
61 - const TRANSIENT_MULTI_VALUE = 'formidable-welcome-multi';
62 -
63 - /**
64 55 * Option name for storing the redirect status for the Onboarding Wizard page.
65 56 *
66 57 * @var string
67 58 */
@@ -78,9 +69,9 @@
78 69 * Defines the initial step for redirection within the application flow.
79 70 *
80 71 * @var string
81 72 */
82 - const INITIAL_STEP = 'consent-tracking';
73 + const INITIAL_STEP = 'welcome';
83 74
84 75 /**
85 76 * Option name to store usage data.
86 77 *
@@ -119,32 +110,23 @@
119 110 /**
120 111 * Initialize hooks for template page only.
121 112 *
122 113 * @since 6.9
123 - *
124 - * @return void
125 114 */
126 115 public static function load_admin_hooks() {
127 116 self::set_page_url();
128 - add_action( 'admin_init', self::class . '::do_admin_redirects' );
117 + add_action( 'admin_init', __CLASS__ . '::do_admin_redirects' );
129 118
130 119 if ( self::has_onboarding_been_skipped() ) {
131 - add_filter( 'option_frm_inbox', self::class . '::add_wizard_to_floating_links' );
120 + add_filter( 'option_frm_inbox', __CLASS__ . '::add_wizard_to_floating_links' );
132 121 }
133 122
134 - /**
135 - * Load page if admin page is Onboarding Wizard.
136 - * This waits for init because it reads the inbox option, and the filter above translates
137 - * when it does. Translating before the text domain is loaded triggers a
138 - * _load_textdomain_just_in_time notice in WordPress 6.7+.
139 - */
140 - add_action( 'init', self::class . '::maybe_load_page' );
123 + // Load page if admin page is Onboarding Wizard.
124 + self::maybe_load_page();
141 125 }
142 126
143 127 /**
144 128 * Performs a safe redirect to the welcome screen when the plugin is activated.
145 - * On single activation, we will redirect immediately.
146 - * When activating multiple plugins, the redirect is delayed until a Formidable page is loaded.
147 129 *
148 130 * @return void
149 131 */
150 132 public static function do_admin_redirects() {
@@ -160,32 +142,13 @@
160 142 self::mark_onboarding_as_skipped();
161 143 return;
162 144 }
163 145
164 - if ( self::has_onboarding_been_skipped() || FrmAppHelper::pro_is_connected() ) {
146 + // Check if we should consider redirection.
147 + if ( ! FrmAppHelper::is_formidable_admin() || ! self::is_onboarding_wizard_displayed() || self::has_onboarding_been_skipped() || FrmAppHelper::pro_is_connected() ) {
165 148 return;
166 149 }
167 150
168 - $transient_value = get_transient( self::TRANSIENT_NAME );
169 -
170 - if ( ! in_array( $transient_value, array( self::TRANSIENT_VALUE, self::TRANSIENT_MULTI_VALUE ), true ) ) {
171 - return;
172 - }
173 -
174 - if ( isset( $_GET['activate-multi'] ) ) {
175 - /**
176 - * $_GET['activate-multi'] is set after activating multiple plugins.
177 - * In this case, change the transient value so we know for future checks.
178 - */
179 - set_transient( self::TRANSIENT_NAME, self::TRANSIENT_MULTI_VALUE, 60 );
180 - return;
181 - }
182 -
183 - if ( self::TRANSIENT_MULTI_VALUE === $transient_value && ! FrmAppHelper::is_formidable_admin() ) {
184 - // For multi-activations we want to only redirect when a user loads a Formidable page.
185 - return;
186 - }
187 -
188 151 set_transient( self::TRANSIENT_NAME, 'no', 60 );
189 152
190 153 // Prevent redirect with every activation.
191 154 if ( self::has_already_redirected() ) {
@@ -193,9 +156,8 @@
193 156 }
194 157
195 158 // Redirect to the onboarding wizard's initial step.
196 159 $page_url = add_query_arg( 'step', self::INITIAL_STEP, self::$page_url );
197 -
198 160 if ( wp_safe_redirect( esc_url_raw( $page_url ) ) ) {
199 161 exit;
200 162 }
201 163 }
@@ -207,23 +169,17 @@
207 169 *
208 170 * @return void
209 171 */
210 172 public static function maybe_load_page() {
211 - if ( ! self::is_onboarding_wizard_page() ) {
212 - return;
173 + if ( self::is_onboarding_wizard_page() ) {
174 + add_action( 'admin_menu', __CLASS__ . '::menu', 99 );
175 + add_action( 'admin_init', __CLASS__ . '::assign_properties' );
176 + add_action( 'admin_enqueue_scripts', __CLASS__ . '::enqueue_assets', 15 );
177 + add_action( 'admin_head', __CLASS__ . '::remove_menu' );
178 +
179 + add_filter( 'admin_body_class', __CLASS__ . '::add_admin_body_classes', 999 );
180 + add_filter( 'frm_show_footer_links', '__return_false' );
213 181 }
214 -
215 - // Dismiss the onboarding wizard message so it stops appearing after it is clicked.
216 - $message = new FrmInbox();
217 - $message->dismiss( 'onboarding_wizard' );
218 -
219 - add_action( 'admin_menu', self::class . '::menu', 99 );
220 - add_action( 'admin_init', self::class . '::assign_properties' );
221 - add_action( 'admin_enqueue_scripts', self::class . '::enqueue_assets', 15 );
222 - add_action( 'admin_head', self::class . '::remove_menu' );
223 -
224 - add_filter( 'admin_body_class', self::class . '::add_admin_body_classes', 999 );
225 - add_filter( 'frm_show_footer_links', '__return_false' );
226 182 }
227 183
228 184 /**
229 185 * Initializes class properties with essential values for operation.
@@ -264,9 +220,9 @@
264 220 'Formidable | ' . $label,
265 221 $label,
266 222 self::REQUIRED_CAPABILITY,
267 223 self::PAGE_SLUG,
268 - array( self::class, 'render' )
224 + array( __CLASS__, 'render' )
269 225 );
270 226 }
271 227
272 228 /**
@@ -293,12 +249,14 @@
293 249 $pro_is_installed = FrmAppHelper::pro_is_installed();
294 250
295 251 // Note: Add step parts in order.
296 252 $step_parts = array(
297 - 'consent-tracking' => 'steps/consent-tracking-step.php',
298 - 'install-addons' => 'steps/install-addons-step.php',
299 - 'success' => 'steps/success-step.php',
300 - 'unsuccessful' => 'steps/unsuccessful-step.php',
253 + 'welcome' => 'steps/welcome-step.php',
254 + 'install-formidable-pro' => 'steps/install-formidable-pro-step.php',
255 + 'license-management' => 'steps/license-management-step.php',
256 + 'default-email-address' => 'steps/default-email-address-step.php',
257 + 'install-addons' => 'steps/install-addons-step.php',
258 + 'success' => 'steps/success-step.php',
301 259 );
302 260
303 261 include $view_path . 'index.php';
304 262 }
@@ -303,29 +261,33 @@
303 261 include $view_path . 'index.php';
304 262 }
305 263
306 264 /**
307 - * Handle AJAX request to setup the "Never miss an important update" step.
265 + * Handle AJAX request to setup the "Default Email Address" step.
308 266 *
309 267 * @since 6.9
310 268 *
311 269 * @return void
312 270 */
313 - public static function ajax_consent_tracking() {
271 + public static function ajax_setup_email_step() {
314 272 // Check permission and nonce.
315 273 FrmAppHelper::permission_check( self::REQUIRED_CAPABILITY );
316 274 check_ajax_referer( 'frm_ajax', 'nonce' );
317 275
276 + // Get posted data.
277 + $default_email = FrmAppHelper::get_post_param( 'default_email', '', 'sanitize_text_field' );
278 + $allows_tracking = FrmAppHelper::get_post_param( 'allows_tracking', '', 'rest_sanitize_boolean' );
279 + $summary_emails = FrmAppHelper::get_post_param( 'summary_emails', '', 'rest_sanitize_boolean' );
280 +
318 281 // Update Settings.
319 282 $frm_settings = FrmAppHelper::get_settings();
320 - $frm_settings->update_setting( 'tracking', true, 'rest_sanitize_boolean' );
321 -
283 + $frm_settings->update_setting( 'default_email', $default_email, 'sanitize_text_field' );
284 + $frm_settings->update_setting( 'tracking', $allows_tracking, 'rest_sanitize_boolean' );
285 + $frm_settings->update_setting( 'summary_emails', $summary_emails, 'rest_sanitize_boolean' );
322 286 // Remove the 'FrmProSettingsController::store' action to avoid PHP errors during AJAX call.
323 287 remove_action( 'frm_store_settings', 'FrmProSettingsController::store' );
324 288 $frm_settings->store();
325 289
326 - FrmEmailCollectionHelper::subscribe_to_active_campaign();
327 -
328 290 // Send response.
329 291 wp_send_json_success();
330 292 }
331 293
@@ -344,9 +306,12 @@
344 306 // Retrieve the current usage data.
345 307 $usage_data = self::get_usage_data();
346 308
347 309 $fields_to_update = array(
310 + 'default_email' => 'sanitize_email',
311 + 'is_subscribed' => 'rest_sanitize_boolean',
348 312 'allows_tracking' => 'rest_sanitize_boolean',
313 + 'summary_emails' => 'rest_sanitize_boolean',
349 314 'installed_addons' => 'sanitize_text_field',
350 315 'processed_steps' => 'sanitize_text_field',
351 316 'completed_steps' => 'rest_sanitize_boolean',
352 317 );
@@ -409,9 +374,10 @@
409 374 * @return array
410 375 */
411 376 private static function get_js_variables() {
412 377 return array(
413 - 'INITIAL_STEP' => self::INITIAL_STEP,
378 + 'INITIAL_STEP' => self::INITIAL_STEP,
379 + 'proIsIncluded' => FrmAppHelper::pro_is_included(),
414 380 );
415 381 }
416 382
417 383 /**
@@ -433,9 +399,8 @@
433 399 *
434 400 * @since 6.9
435 401 *
436 402 * @param string $classes Existing body classes.
437 - *
438 403 * @return string Updated list of body classes, including the newly added classes.
439 404 */
440 405 public static function add_admin_body_classes( $classes ) {
441 406 return $classes . ' frm-admin-full-screen';
@@ -444,9 +409,8 @@
444 409 /**
445 410 * Checks if the Onboarding Wizard was skipped during the plugin's installation.
446 411 *
447 412 * @since 6.9
448 - *
449 413 * @return bool True if the Onboarding Wizard was skipped, false otherwise.
450 414 */
451 415 public static function has_onboarding_been_skipped() {
452 416 return get_option( self::ONBOARDING_SKIPPED_OPTION, false );
@@ -455,13 +419,12 @@
455 419 /**
456 420 * Marks the Onboarding Wizard as skipped to prevent automatic redirects to the wizard.
457 421 *
458 422 * @since 6.9
459 - *
460 423 * @return void
461 424 */
462 425 public static function mark_onboarding_as_skipped() {
463 - update_option( self::ONBOARDING_SKIPPED_OPTION, true, false );
426 + update_option( self::ONBOARDING_SKIPPED_OPTION, true, 'no' );
464 427 }
465 428
466 429 /**
467 430 * Adds an Onboarding Wizard welcome message to the floating notifications.
@@ -467,29 +430,24 @@
467 430 * Adds an Onboarding Wizard welcome message to the floating notifications.
468 431 *
469 432 * @since 6.9
470 433 *
471 - * @param mixed $inbox_messages The inbox option data. An array of existing inbox messages if there is valid data set in the option.
472 - *
434 + * @param array $inbox_messages The array of existing inbox messages.
473 435 * @return array Configuration for the onboarding wizard slide-in notification.
474 436 */
475 437 public static function add_wizard_to_floating_links( $inbox_messages ) {
476 - $message = __( 'Welcome to Formidable Forms! Click here to run the Onboarding Wizard and it will guide you through the basic settings and get you started in 2 minutes.', 'formidable' ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
438 + $message = __( 'Welcome to Formidable Forms! Click here to run the Onboarding Wizard and it will guide you through the basic settings and get you started in 2 minutes.', 'formidable' );
477 439
478 - if ( ! is_array( $inbox_messages ) ) {
479 - $inbox_messages = array();
480 - }
481 -
482 - $inbox_messages['onboarding_wizard'] = array(
483 - 'subject' => esc_html__( 'Begin With Ease!', 'formidable' ),
484 - 'message' => esc_html( $message ),
485 - 'slidein' => esc_html( $message ),
486 - 'cta' => '<a href="' . esc_url( self::$page_url ) . '" class="button-primary frm-button-primary" target="_blank" rel="noopener noreferrer">' . esc_html__( 'Begin Setup', 'formidable' ) . '</a>', // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
487 - 'created' => time(),
488 - 'key' => 'onboarding_wizard',
440 + return array(
441 + 'onboarding_wizard' => array(
442 + 'subject' => esc_html__( 'Begin With Ease!', 'formidable' ),
443 + 'message' => esc_html( $message ),
444 + 'slidein' => esc_html( $message ),
445 + 'cta' => '<a href="' . esc_url( self::$page_url ) . '" class="button-primary frm-button-primary" target="_blank" rel="noopener noreferrer">' . esc_html__( 'Begin Setup', 'formidable' ) . '</a>',
446 + 'created' => time(),
447 + 'key' => 'onboarding_wizard',
448 + ),
489 449 );
490 -
491 - return $inbox_messages;
492 450 }
493 451
494 452 /**
495 453 * Check if the current page is the Onboarding Wizard page.
@@ -502,8 +460,19 @@
502 460 return FrmAppHelper::is_admin_page( self::PAGE_SLUG );
503 461 }
504 462
505 463 /**
464 + * Validates if the Onboarding Wizard page is being displayed.
465 + *
466 + * @since 6.9
467 + *
468 + * @return bool True if the Onboarding Wizard page is displayed, false otherwise.
469 + */
470 + public static function is_onboarding_wizard_displayed() {
471 + return get_transient( self::TRANSIENT_NAME ) === self::TRANSIENT_VALUE;
472 + }
473 +
474 + /**
506 475 * Checks if the plugin has already performed a redirect to avoid repeated redirections.
507 476 *
508 477 * @return bool Returns true if already redirected, otherwise false.
509 478 */
@@ -511,9 +480,9 @@
511 480 if ( get_option( self::REDIRECT_STATUS_OPTION ) ) {
512 481 return true;
513 482 }
514 483
515 - update_option( self::REDIRECT_STATUS_OPTION, FrmAppHelper::plugin_version(), false );
484 + update_option( self::REDIRECT_STATUS_OPTION, FrmAppHelper::plugin_version(), 'no' );
516 485 return false;
517 486 }
518 487
519 488 /**
@@ -555,11 +524,9 @@
555 524 * @return void
556 525 */
557 526 private static function set_available_addons() {
558 527 $pro_is_installed = FrmAppHelper::pro_is_installed();
559 - $plugins = get_plugins();
560 528
561 - // Base add-ons always included.
562 529 self::$available_addons['spam-protection'] = array(
563 530 'title' => esc_html__( 'Spam Protection', 'formidable' ),
564 531 'is-checked' => true,
565 532 'is-disabled' => true,
@@ -570,10 +537,8 @@
570 537 'is-checked' => true,
571 538 'is-disabled' => true,
572 539 'help-text' => esc_html__( 'Collect donations and payments with your forms. Offer physical products, digital goods, services, and more.', 'formidable' ),
573 540 );
574 -
575 - // Add-ons included when Pro is not installed.
576 541 if ( ! $pro_is_installed ) {
577 542 self::$available_addons['visual-styler'] = array(
578 543 'title' => esc_html__( 'Visual Styler', 'formidable' ),
579 544 'is-checked' => true,
@@ -586,100 +551,83 @@
586 551 'is-disabled' => true,
587 552 'help-text' => esc_html__( 'Save form submissions to your database for future reference and analysis.', 'formidable' ),
588 553 );
589 554 }
590 -
591 - // SMTP add-on if wp_mail_smtp is not installed.
592 555 if ( ! function_exists( 'wp_mail_smtp' ) ) {
593 - $wp_mail_smtp_plugin = 'wp-mail-smtp/wp_mail_smtp.php';
594 - $is_installed_wp_mail_smtp = array_key_exists( $wp_mail_smtp_plugin, $plugins );
595 -
596 556 self::$available_addons['wp-mail-smtp'] = array(
597 - 'title' => esc_html__( 'SMTP', 'formidable' ),
598 - 'rel' => $is_installed_wp_mail_smtp ? $wp_mail_smtp_plugin : 'wp-mail-smtp',
599 - 'is-checked' => false,
600 - 'is-vendor' => true,
601 - 'is-installed' => $is_installed_wp_mail_smtp,
602 - 'help-text' => esc_html__( 'Improve email deliverability by routing WordPress emails through SMTP.', 'formidable' ),
557 + 'title' => esc_html__( 'SMTP', 'formidable' ),
558 + 'rel' => 'wp-mail-smtp',
559 + 'is-checked' => false,
560 + 'is-vendor' => true,
561 + 'help-text' => esc_html__( 'Improve email deliverability by routing WordPress emails through SMTP.', 'formidable' ),
603 562 );
604 563 }
605 -
606 - // Add-ons available when Pro is installed.
607 564 if ( $pro_is_installed ) {
608 - $available_pro_addons = array(
609 - 'formidable-views' => array(
610 - 'addon_key' => 'views',
611 - 'title' => __( 'Views', 'formidable' ),
612 - 'plugin_file' => 'formidable-views/formidable-views.php',
613 - ),
614 - 'formidable-mailchimp' => array(
615 - 'addon_key' => 'mailchimp',
616 - 'title' => __( 'Mailchimp', 'formidable' ),
617 - 'plugin_file' => 'formidable-mailchimp/formidable-mailchimp.php',
618 - ),
619 - 'formidable-registration' => array(
620 - 'addon_key' => 'registration',
621 - 'title' => __( 'User Registration', 'formidable' ),
622 - 'plugin_file' => 'formidable-registration/formidable-registration.php',
623 - ),
624 - 'formidable-api' => array(
625 - 'addon_key' => 'api',
626 - 'title' => __( 'Form Rest API', 'formidable' ),
627 - 'plugin_file' => 'formidable-api/formidable-api.php',
628 - ),
629 - 'formidable-signature' => array(
630 - 'addon_key' => 'signature',
631 - 'title' => __( 'Signature Forms', 'formidable' ),
632 - 'plugin_file' => 'formidable-signature/signature.php',
633 - ),
634 - );
565 + $views_addon = FrmAddonsController::get_addon( 'views' );
566 + $mailchimp_addon = FrmAddonsController::get_addon( 'mailchimp' );
567 + $registration_addon = FrmAddonsController::get_addon( 'registration' );
568 + $api_addon = FrmAddonsController::get_addon( 'api' );
569 + $acf_addon = FrmAddonsController::get_addon( 'acf' );
570 + $signature_addon = FrmAddonsController::get_addon( 'signature' );
635 571
636 - // Include ACF Forms add-on if ACF is installed.
637 - if ( class_exists( 'ACF' ) ) {
638 - $available_pro_addons['formidable-acf'] = array(
639 - 'addon_key' => 'acf',
640 - 'title' => __( 'ACF Forms', 'formidable' ),
641 - 'plugin_file' => 'formidable-acf/formidable-acf.php',
572 + if ( ! is_plugin_active( 'formidable-views/formidable-views.php' ) && isset( $views_addon['url'] ) ) {
573 + self::$available_addons['formidable-views'] = array(
574 + 'title' => esc_html__( 'Views', 'formidable' ),
575 + 'rel' => $views_addon['url'],
576 + 'is-checked' => false,
577 + 'help-text' => $views_addon['excerpt'],
642 578 );
643 579 }
644 -
645 - foreach ( $available_pro_addons as $key => $data ) {
646 - $addon = FrmAddonsController::get_addon( $data['addon_key'] );
647 - $plugin_file = $data['plugin_file'];
648 -
649 - if ( is_plugin_active( $plugin_file ) || ! isset( $addon['url'] ) ) {
650 - continue;
651 - }
652 -
653 - $is_installed = array_key_exists( $plugin_file, $plugins );
654 -
655 - self::$available_addons[ $key ] = array(
656 - 'title' => $data['title'],
657 - 'rel' => $is_installed ? $plugin_file : $addon['url'],
658 - 'is-checked' => false,
659 - 'is-installed' => $is_installed,
660 - 'help-text' => $addon['excerpt'],
580 + if ( ! is_plugin_active( 'formidable-mailchimp/formidable-mailchimp.php' ) && isset( $mailchimp_addon['url'] ) ) {
581 + self::$available_addons['formidable-mailchimp'] = array(
582 + 'title' => esc_html__( 'Mailchimp', 'formidable' ),
583 + 'rel' => $mailchimp_addon['url'],
584 + 'is-checked' => false,
585 + 'help-text' => $mailchimp_addon['excerpt'],
661 586 );
662 587 }
588 + if ( ! is_plugin_active( 'formidable-registration/formidable-registration.php' ) && isset( $registration_addon['url'] ) ) {
589 + self::$available_addons['formidable-registration'] = array(
590 + 'title' => esc_html__( 'User Registration', 'formidable' ),
591 + 'rel' => $registration_addon['url'],
592 + 'is-checked' => false,
593 + 'help-text' => $registration_addon['excerpt'],
594 + );
595 + }
596 + if ( ! is_plugin_active( 'formidable-api/formidable-api.php' ) && isset( $api_addon['url'] ) ) {
597 + self::$available_addons['formidable-api'] = array(
598 + 'title' => esc_html__( 'Form Rest API', 'formidable' ),
599 + 'rel' => $api_addon['url'],
600 + 'is-checked' => false,
601 + 'help-text' => $api_addon['excerpt'],
602 + );
603 + }
604 + if ( class_exists( 'ACF' ) && ! is_plugin_active( 'formidable-acf/formidable-acf.php' ) && isset( $acf_addon['url'] ) ) {
605 + self::$available_addons['formidable-acf'] = array(
606 + 'title' => esc_html__( 'ACF Forms', 'formidable' ),
607 + 'rel' => $acf_addon['url'],
608 + 'is-checked' => false,
609 + 'help-text' => $acf_addon['excerpt'],
610 + );
611 + }
612 + if ( ! is_plugin_active( 'formidable-signature/signature.php' ) && isset( $signature_addon['url'] ) ) {
613 + self::$available_addons['formidable-signature'] = array(
614 + 'title' => esc_html__( 'Signature Forms', 'formidable' ),
615 + 'rel' => $signature_addon['url'],
616 + 'is-checked' => false,
617 + 'help-text' => $signature_addon['excerpt'],
618 + );
619 + }
663 620 }//end if
664 -
665 - // Gravity Forms Migrator add-on.
666 - $gravity_forms_plugin = 'formidable-gravity-forms-importer/formidable-gravity-forms-importer.php';
667 -
668 - if ( ! class_exists( 'GFForms' ) || is_plugin_active( $gravity_forms_plugin ) ) {
669 - return;
621 + if ( class_exists( 'GFForms' ) && ! is_plugin_active( 'formidable-gravity-forms-importer/formidable-gravity-forms-importer.php' ) ) {
622 + self::$available_addons['formidable-gravity-forms-importer'] = array(
623 + 'title' => esc_html__( 'Gravity Forms Migrator', 'formidable' ),
624 + 'rel' => 'formidable-gravity-forms-importer',
625 + 'is-checked' => false,
626 + 'is-vendor' => true,
627 + 'help-text' => esc_html__( 'Easily migrate your forms from Gravity Forms to Formidable.', 'formidable' ),
628 + );
670 629 }
671 -
672 - $is_installed_gravity_forms = array_key_exists( $gravity_forms_plugin, $plugins );
673 -
674 - self::$available_addons['formidable-gravity-forms-importer'] = array(
675 - 'title' => esc_html__( 'Gravity Forms Migrator', 'formidable' ),
676 - 'rel' => $is_installed_gravity_forms ? $gravity_forms_plugin : 'formidable-gravity-forms-importer',
677 - 'is-checked' => false,
678 - 'is-vendor' => true,
679 - 'is-installed' => $is_installed_gravity_forms,
680 - 'help-text' => esc_html__( 'Easily migrate your forms from Gravity Forms to Formidable.', 'formidable' ),
681 - );
682 630 }
683 631
684 632 /**
685 633 * Get the path to the Onboarding Wizard views.
@@ -711,19 +659,6 @@
711 659 * @return array Current usage data.
712 660 */
713 661 public static function get_usage_data() {
714 662 return get_option( self::USAGE_DATA_OPTION, array() );
715 - }
716 -
717 - /**
718 - * Validates if the Onboarding Wizard page is being displayed.
719 - *
720 - * @since 6.9
721 - * @deprecated 6.16
722 - *
723 - * @return bool True if the Onboarding Wizard page is displayed, false otherwise.
724 - */
725 - public static function is_onboarding_wizard_displayed() {
726 - _deprecated_function( __METHOD__, '6.16' );
727 - return get_transient( self::TRANSIENT_NAME ) === self::TRANSIENT_VALUE;
728 663 }
729 664 }