PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 4.09.08
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v4.09.08
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
formidable / classes / controllers / FrmAppController.php

FrmAppController.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 4.09.08, at classes/controllers/FrmAppController.php

714 lines 20.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5
6 class FrmAppController {
7
8 public static function menu() {
9 FrmAppHelper::maybe_add_permissions();
10 if ( ! current_user_can( 'frm_view_forms' ) ) {
11 return;
12 }
13
14 $menu_name = FrmAppHelper::get_menu_name();
15 add_menu_page( 'Formidable', $menu_name, 'frm_view_forms', 'formidable', 'FrmFormsController::route', self::menu_icon(), self::get_menu_position() );
16 }
17
18 private static function get_menu_position() {
19 return apply_filters( 'frm_menu_position', '29.3' );
20 }
21
22 /**
23 * @since 3.05
24 */
25 private static function menu_icon() {
26 $icon = FrmAppHelper::svg_logo(
27 array(
28 'fill' => '#a0a5aa',
29 'orange' => '#a0a5aa',
30 )
31 );
32 $icon = 'data:image/svg+xml;base64,' . base64_encode( $icon );
33
34 return apply_filters( 'frm_icon', $icon );
35 }
36
37 /**
38 * @since 3.0
39 */
40 public static function add_admin_class( $classes ) {
41 if ( self::is_white_page() ) {
42 $classes .= ' frm-white-body ';
43 $classes .= self::get_os();
44
45 $page = str_replace( 'formidable-', '', FrmAppHelper::simple_get( 'page', 'sanitize_title' ) );
46 if ( empty( $page ) || $page === 'formidable' ) {
47 $action = FrmAppHelper::simple_get( 'frm_action', 'sanitize_title' );
48 if ( in_array( $action, array( 'settings', 'edit', 'list' ) ) ) {
49 $page .= $action;
50 } else {
51 $page = $action;
52 }
53 }
54 if ( ! empty( $page ) ) {
55 $classes .= ' frm-admin-page-' . $page;
56 }
57 }
58
59 if ( FrmAppHelper::is_full_screen() ) {
60 $classes .= apply_filters( 'frm_admin_full_screen_class', ' frm-full-screen folded' );
61 }
62
63 return $classes;
64 }
65
66 /**
67 * @since 4.0
68 */
69 private static function get_os() {
70 $agent = strtolower( FrmAppHelper::get_server_value( 'HTTP_USER_AGENT' ) );
71 $os = '';
72 if ( strpos( $agent, 'mac' ) !== false ) {
73 $os = ' osx';
74 } elseif ( strpos( $agent, 'linux' ) !== false ) {
75 $os = ' linux';
76 } elseif ( strpos( $agent, 'windows' ) !== false ) {
77 $os = ' windows';
78 }
79 return $os;
80 }
81
82 /**
83 * @since 3.0
84 */
85 private static function is_white_page() {
86 $white_pages = array(
87 'formidable',
88 'formidable-entries',
89 'formidable-views',
90 'formidable-pro-upgrade',
91 'formidable-addons',
92 'formidable-import',
93 'formidable-settings',
94 'formidable-styles',
95 'formidable-styles2',
96 'formidable-inbox',
97 'formidable-welcome',
98 );
99
100 $get_page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
101 $is_white_page = in_array( $get_page, $white_pages );
102
103 if ( ! $is_white_page ) {
104 $screen = get_current_screen();
105 $is_white_page = ( $screen && strpos( $screen->id, 'frm_display' ) !== false );
106 }
107
108 return $is_white_page;
109 }
110
111 public static function load_wp_admin_style() {
112 FrmAppHelper::load_font_style();
113 }
114
115 public static function get_form_nav( $form, $show_nav = false, $title = 'show' ) {
116 $show_nav = FrmAppHelper::get_param( 'show_nav', $show_nav, 'get', 'absint' );
117 if ( empty( $show_nav ) || ! $form ) {
118 return;
119 }
120
121 FrmForm::maybe_get_form( $form );
122 if ( ! is_object( $form ) ) {
123 return;
124 }
125
126 $id = $form->id;
127 $current_page = self::get_current_page();
128 $nav_items = self::get_form_nav_items( $form );
129
130 include( FrmAppHelper::plugin_path() . '/classes/views/shared/form-nav.php' );
131 }
132
133 private static function get_current_page() {
134 $page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
135 $post_type = FrmAppHelper::simple_get( 'post_type', 'sanitize_title', 'None' );
136 $current_page = isset( $_GET['page'] ) ? $page : $post_type;
137
138 if ( FrmAppHelper::is_view_builder_page() ) {
139 $current_page = 'frm_display';
140 }
141
142 return $current_page;
143 }
144
145 private static function get_form_nav_items( $form ) {
146 $id = $form->parent_form_id ? $form->parent_form_id : $form->id;
147
148 $nav_items = array(
149 array(
150 'link' => FrmForm::get_edit_link( $id ),
151 'label' => __( 'Build', 'formidable' ),
152 'current' => array( 'edit', 'new', 'duplicate' ),
153 'page' => 'formidable',
154 'permission' => 'frm_edit_forms',
155 ),
156 array(
157 'link' => admin_url( 'admin.php?page=formidable&frm_action=settings&id=' . absint( $id ) ),
158 'label' => __( 'Settings', 'formidable' ),
159 'current' => array( 'settings' ),
160 'page' => 'formidable',
161 'permission' => 'frm_edit_forms',
162 ),
163 array(
164 'link' => admin_url( 'admin.php?page=formidable-entries&frm-full=1&frm_action=list&form=' . absint( $id ) ),
165 'label' => __( 'Entries', 'formidable' ),
166 'current' => array(),
167 'page' => 'formidable-entries',
168 'permission' => 'frm_view_entries',
169 ),
170 );
171
172 $views_installed = is_callable( 'FrmProAppHelper::views_is_installed' ) ? FrmProAppHelper::views_is_installed() : FrmAppHelper::pro_is_installed();
173
174 if ( ! $views_installed ) {
175 $nav_items[] = array(
176 'link' => admin_url( 'admin.php?page=formidable-views&frm-full=1&form=' . absint( $id ) ),
177 'label' => __( 'Views', 'formidable' ),
178 'current' => array(),
179 'page' => 'formidable-views',
180 'permission' => 'frm_view_entries',
181 'atts' => array(
182 'class' => 'frm_noallow',
183 ),
184 );
185 }
186
187 // Let people know reports and views exist.
188 if ( ! FrmAppHelper::pro_is_installed() ) {
189 $nav_items[] = array(
190 'link' => admin_url( 'admin.php?page=formidable&frm_action=lite-reports&frm-full=1&form=' . absint( $id ) ),
191 'label' => __( 'Reports', 'formidable' ),
192 'current' => array( 'reports' ),
193 'page' => 'formidable',
194 'permission' => 'frm_view_entries',
195 'atts' => array(
196 'class' => 'frm_noallow',
197 ),
198 );
199 }
200
201 $nav_args = array(
202 'form_id' => $id,
203 'form' => $form,
204 );
205
206 return apply_filters( 'frm_form_nav_list', $nav_items, $nav_args );
207 }
208
209 // Adds a settings link to the plugins page
210 public static function settings_link( $links ) {
211 $settings = '<a href="' . esc_url( admin_url( 'admin.php?page=formidable' ) ) . '">' . __( 'Build a Form', 'formidable' ) . '</a>';
212 array_unshift( $links, $settings );
213
214 return $links;
215 }
216
217 public static function pro_get_started_headline() {
218 self::review_request();
219 FrmAppHelper::min_pro_version_notice( '4.0' );
220 }
221
222 /**
223 * Add admin notices as needed for reviews
224 *
225 * @since 3.04.03
226 */
227 private static function review_request() {
228 $reviews = new FrmReviews();
229 $reviews->review_request();
230 }
231
232 /**
233 * Save the request to hide the review
234 *
235 * @since 3.04.03
236 */
237 public static function dismiss_review() {
238 FrmAppHelper::permission_check( 'frm_change_settings' );
239 check_ajax_referer( 'frm_ajax', 'nonce' );
240
241 $reviews = new FrmReviews();
242 $reviews->dismiss_review();
243 }
244
245 /**
246 * @since 3.04.02
247 */
248 public static function include_upgrade_overlay() {
249 wp_enqueue_script( 'jquery-ui-dialog' );
250 wp_enqueue_style( 'jquery-ui-dialog' );
251
252 add_action( 'admin_footer', 'FrmAppController::upgrade_overlay_html' );
253 }
254
255 /**
256 * @since 3.06.03
257 */
258 public static function upgrade_overlay_html() {
259 $is_pro = FrmAppHelper::pro_is_installed();
260 $upgrade_link = array(
261 'medium' => 'builder',
262 'content' => 'upgrade',
263 );
264 $default_link = FrmAppHelper::admin_upgrade_link( $upgrade_link );
265 $plugin_path = FrmAppHelper::plugin_path();
266 $shared_path = $plugin_path . '/classes/views/shared/';
267
268 include $shared_path . 'upgrade_overlay.php';
269 include $shared_path . 'confirm-overlay.php';
270
271 if ( ( FrmAppHelper::is_admin_page( 'formidable' ) || FrmAppHelper::is_admin_page( 'formidable-welcome' ) ) && in_array( FrmAppHelper::get_param( 'frm_action' ), array( '', 'list', 'trash' ), true ) ) {
272 self::new_form_overlay_html();
273 }
274 }
275
276 private static function new_form_overlay_html() {
277 FrmFormsController::before_list_templates();
278
279 $plugin_path = FrmAppHelper::plugin_path();
280 $path = $plugin_path . '/classes/views/frm-forms/';
281 $expired = FrmFormsController::expired();
282 $expiring = FrmAddonsController::is_license_expiring();
283 $user = wp_get_current_user(); // $user used in leave-email.php to determine a default value for field
284 $view_path = $path . 'new-form-overlay/';
285 $modal_class = '';
286 $upgrade_link = FrmAppHelper::admin_upgrade_link(
287 array(
288 'medium' => 'new-template',
289 'content' => 'upgrade',
290 )
291 );
292 $renew_link = FrmAppHelper::admin_upgrade_link(
293 array(
294 'medium' => 'new-template',
295 'content' => 'renew',
296 )
297 );
298 $blocks_to_render = array();
299
300 if ( ! FrmAppHelper::pro_is_installed() ) {
301 // avoid rendering the email and code blocks for users who have upgraded or have a free license already
302 $api = new FrmFormTemplateApi();
303 if ( ! $api->has_free_access() ) {
304 array_push( $blocks_to_render, 'email', 'code' );
305 }
306 }
307
308 // avoid rendering the upgrade block for users with elite
309 if ( 'elite' !== FrmAddonsController::license_type() ) {
310 $blocks_to_render[] = 'upgrade';
311 }
312
313 // avoid rendering the renew block for users who are not currently expired
314 if ( $expired ) {
315 $blocks_to_render[] = 'renew';
316 $modal_class = 'frm-expired';
317 } elseif ( $expiring ) {
318 $modal_class = 'frm-expiring';
319 }
320
321 include $path . 'new-form-overlay.php';
322 }
323
324 public static function include_info_overlay() {
325 wp_enqueue_script( 'jquery-ui-dialog' );
326 wp_enqueue_style( 'jquery-ui-dialog' );
327
328 add_action( 'admin_footer', 'FrmAppController::info_overlay_html' );
329 }
330
331 public static function info_overlay_html() {
332 include( FrmAppHelper::plugin_path() . '/classes/views/shared/info-overlay.php' );
333 }
334
335 /**
336 * @since 3.04.02
337 */
338 public static function remove_upsells() {
339 remove_action( 'frm_before_settings', 'FrmSettingsController::license_box' );
340 remove_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
341 remove_action( 'frm_add_form_style_tab_options', 'FrmFormsController::add_form_style_tab_options' );
342 remove_action( 'frm_after_field_options', 'FrmFormsController::logic_tip' );
343
344 if ( is_callable( 'FrmProAddonsController::renewal_message' ) ) {
345 // These functions moved to Pro in 4.09.01
346 remove_action( 'frm_page_footer', 'FrmAppHelper::renewal_message' );
347 }
348 }
349
350 /**
351 * If there are CURL problems on this server, wp_remote_post won't work for installing
352 * Use a javascript fallback instead.
353 *
354 * @since 2.0.3
355 */
356 public static function install_js_fallback() {
357 FrmAppHelper::load_admin_wide_js();
358 echo '<div id="hidden frm_install_message"></div><script type="text/javascript">jQuery(document).ready(function(){frm_install_now();});</script>';
359 }
360
361 /**
362 * Check if the database is outdated
363 *
364 * @since 2.0.1
365 * @return boolean
366 */
367 public static function needs_update() {
368 $needs_upgrade = self::compare_for_update(
369 array(
370 'option' => 'frm_db_version',
371 'new_db_version' => FrmAppHelper::$db_version,
372 'new_plugin_version' => FrmAppHelper::plugin_version(),
373 )
374 );
375
376 if ( ! $needs_upgrade ) {
377 $needs_upgrade = apply_filters( 'frm_db_needs_upgrade', $needs_upgrade );
378 }
379
380 return $needs_upgrade;
381 }
382
383 /**
384 * Check both version number and DB number for changes
385 *
386 * @since 3.0.04
387 */
388 public static function compare_for_update( $atts ) {
389 $db_version = get_option( $atts['option'] );
390
391 if ( strpos( $db_version, '-' ) === false ) {
392 $needs_upgrade = true;
393 } else {
394 $last_upgrade = explode( '-', $db_version );
395 $needs_db_upgrade = (int) $last_upgrade[1] < (int) $atts['new_db_version'];
396 $new_version = version_compare( $last_upgrade[0], $atts['new_plugin_version'], '<' );
397 $needs_upgrade = $needs_db_upgrade || $new_version;
398 }
399
400 return $needs_upgrade;
401 }
402
403 /**
404 * Check for database update and trigger js loading
405 *
406 * @since 2.0.1
407 */
408 public static function admin_init() {
409 new FrmPersonalData(); // register personal data hooks
410
411 if ( ! FrmAppHelper::doing_ajax() && self::needs_update() ) {
412 self::network_upgrade_site();
413 }
414
415 if ( ! FrmAppHelper::doing_ajax() ) {
416 // don't continue during ajax calls
417 self::admin_js();
418 }
419
420 if ( FrmAppHelper::is_admin_page( 'formidable' ) && in_array( FrmAppHelper::get_param( 'frm_action' ), array( 'add_new', 'list_templates' ), true ) ) {
421 wp_safe_redirect( admin_url( 'admin.php?page=formidable&triggerNewFormModal=1' ) );
422 exit;
423 }
424 }
425
426 public static function admin_js() {
427 $version = FrmAppHelper::plugin_version();
428 FrmAppHelper::load_admin_wide_js();
429
430 $dependecies = array(
431 'formidable_admin_global',
432 'jquery',
433 'jquery-ui-core',
434 'jquery-ui-draggable',
435 'jquery-ui-sortable',
436 'bootstrap_tooltip',
437 'bootstrap-multiselect',
438 );
439
440 if ( FrmAppHelper::is_admin_page( 'formidable-styles' ) || FrmAppHelper::is_admin_page( 'formidable-styles2' ) ) {
441 $dependecies[] = 'wp-color-picker';
442 }
443
444 wp_register_script( 'formidable_admin', FrmAppHelper::plugin_url() . '/js/formidable_admin.js', $dependecies, $version, true );
445 wp_register_style( 'formidable-admin', FrmAppHelper::plugin_url() . '/css/frm_admin.css', array(), $version );
446 wp_register_script( 'bootstrap_tooltip', FrmAppHelper::plugin_url() . '/js/bootstrap.min.js', array( 'jquery' ), '3.3.4' );
447 wp_register_style( 'formidable-grids', FrmAppHelper::plugin_url() . '/css/frm_grids.css', array(), $version );
448
449 // load multselect js
450 $depends_on = array( 'jquery', 'bootstrap_tooltip' );
451 wp_register_script( 'bootstrap-multiselect', FrmAppHelper::plugin_url() . '/js/bootstrap-multiselect.js', $depends_on, '0.9.8', true );
452
453 $page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
454 $post_type = FrmAppHelper::simple_get( 'post_type', 'sanitize_title' );
455
456 global $pagenow;
457 if ( strpos( $page, 'formidable' ) === 0 || ( $pagenow == 'edit.php' && $post_type == 'frm_display' ) ) {
458
459 wp_enqueue_script( 'admin-widgets' );
460 wp_enqueue_style( 'widgets' );
461 wp_enqueue_script( 'formidable_admin' );
462 FrmAppHelper::localize_script( 'admin' );
463
464 wp_enqueue_style( 'formidable-admin' );
465 if ( 'formidable-styles' !== $page && 'formidable-styles2' !== $page ) {
466 wp_enqueue_style( 'formidable-grids' );
467 wp_enqueue_style( 'formidable-dropzone' );
468 } else {
469 $settings = FrmAppHelper::get_settings();
470 if ( empty( $settings->old_css ) ) {
471 wp_enqueue_style( 'formidable-grids' );
472 }
473 }
474
475 if ( 'formidable-entries' === $page ) {
476 // Load front end js for entries.
477 wp_enqueue_script( 'formidable' );
478 }
479
480 do_action( 'frm_enqueue_builder_scripts' );
481 self::include_upgrade_overlay();
482 self::include_info_overlay();
483 } elseif ( FrmAppHelper::is_view_builder_page() ) {
484 if ( isset( $_REQUEST['post_type'] ) ) {
485 $post_type = sanitize_title( wp_unslash( $_REQUEST['post_type'] ) );
486 } elseif ( isset( $_REQUEST['post'] ) && absint( $_REQUEST['post'] ) ) {
487 $post = get_post( absint( wp_unslash( $_REQUEST['post'] ) ) );
488 if ( ! $post ) {
489 return;
490 }
491 $post_type = $post->post_type;
492 } else {
493 return;
494 }
495
496 if ( $post_type == 'frm_display' ) {
497 wp_enqueue_style( 'formidable-grids' );
498 wp_enqueue_script( 'jquery-ui-draggable' );
499 wp_enqueue_script( 'formidable_admin' );
500 wp_enqueue_style( 'formidable-admin' );
501 FrmAppHelper::localize_script( 'admin' );
502 self::include_info_overlay();
503 }
504 }
505 }
506
507 public static function load_lang() {
508 load_plugin_textdomain( 'formidable', false, FrmAppHelper::plugin_folder() . '/languages/' );
509 }
510
511 /**
512 * Check if the styles are updated when a form is loaded on the front-end
513 *
514 * @since 3.0.1
515 */
516 public static function maybe_update_styles() {
517 if ( self::needs_update() ) {
518 self::network_upgrade_site();
519 }
520 }
521
522 /**
523 * @since 3.0
524 */
525 public static function create_rest_routes() {
526 $args = array(
527 'methods' => 'GET',
528 'callback' => 'FrmAppController::api_install',
529 'permission_callback' => __CLASS__ . '::can_update_db',
530 );
531
532 register_rest_route( 'frm-admin/v1', '/install', $args );
533
534 $args = array(
535 'methods' => 'GET',
536 'callback' => 'FrmAddonsController::install_addon_api',
537 'permission_callback' => 'FrmAddonsController::can_install_addon_api',
538 );
539
540 register_rest_route( 'frm-admin/v1', '/install-addon', $args );
541 }
542
543 /**
544 * Make sure the install is only being run when we tell it to.
545 * We don't want to run manually by people calling the API.
546 *
547 * @since 4.06.02
548 */
549 public static function can_update_db() {
550 return get_transient( 'frm_updating_api' );
551 }
552
553 /**
554 * Run silent upgrade on each site in the network during a network upgrade.
555 * Update database settings for all sites in a network during network upgrade process.
556 *
557 * @since 2.0.1
558 *
559 * @param int $blog_id Blog ID.
560 */
561 public static function network_upgrade_site( $blog_id = 0 ) {
562 // Flag to check if install is happening as intended.
563 set_transient( 'frm_updating_api', true, MINUTE_IN_SECONDS );
564 $request = new WP_REST_Request( 'GET', '/frm-admin/v1/install' );
565
566 self::maybe_add_wp_site_health();
567
568 if ( $blog_id ) {
569 switch_to_blog( $blog_id );
570 $response = rest_do_request( $request );
571 restore_current_blog();
572 } else {
573 $response = rest_do_request( $request );
574 }
575
576 if ( $response->is_error() ) {
577 // if the remove post fails, use javascript instead
578 add_action( 'admin_notices', 'FrmAppController::install_js_fallback' );
579 }
580 }
581
582 /**
583 * Make sure WP_Site_Health has been included because it is required when calling rest_do_request.
584 * Check first that the file exists because WP_Site_Health was only introduced in WordPress 5.2.
585 */
586 private static function maybe_add_wp_site_health() {
587 if ( ! class_exists( 'WP_Site_Health' ) ) {
588 $wp_site_health_path = ABSPATH . 'wp-admin/includes/class-wp-site-health.php';
589 if ( file_exists( $wp_site_health_path ) ) {
590 require_once $wp_site_health_path;
591 }
592 }
593 }
594
595 /**
596 * @since 3.0
597 */
598 public static function api_install() {
599 delete_transient( 'frm_updating_api' );
600 if ( self::needs_update() ) {
601 $running = get_option( 'frm_install_running' );
602 if ( false === $running || $running < strtotime( '-5 minutes' ) ) {
603 update_option( 'frm_install_running', time(), 'no' );
604 self::install();
605 delete_option( 'frm_install_running' );
606 }
607 }
608
609 return true;
610 }
611
612 /**
613 * Silent database upgrade (no redirect).
614 * Called via ajax request during network upgrade process.
615 *
616 * @since 2.0.1
617 */
618 public static function ajax_install() {
619 self::api_install();
620 wp_die();
621 }
622
623 public static function install() {
624 $frmdb = new FrmMigrate();
625 $frmdb->upgrade();
626 }
627
628 public static function uninstall() {
629 FrmAppHelper::permission_check( 'administrator' );
630 check_ajax_referer( 'frm_ajax', 'nonce' );
631
632 $frmdb = new FrmMigrate();
633 $frmdb->uninstall();
634
635 //disable the plugin and redirect after uninstall so the tables don't get added right back
636 $plugins = array( FrmAppHelper::plugin_folder() . '/formidable.php', 'formidable-pro/formidable-pro.php' );
637 deactivate_plugins( $plugins, false, false );
638 echo esc_url_raw( admin_url( 'plugins.php?deactivate=true' ) );
639
640 wp_die();
641 }
642
643 public static function drop_tables( $tables ) {
644 global $wpdb;
645 $tables[] = $wpdb->prefix . 'frm_fields';
646 $tables[] = $wpdb->prefix . 'frm_forms';
647 $tables[] = $wpdb->prefix . 'frm_items';
648 $tables[] = $wpdb->prefix . 'frm_item_metas';
649
650 return $tables;
651 }
652
653 public static function deauthorize() {
654 FrmAppHelper::permission_check( 'frm_change_settings' );
655 check_ajax_referer( 'frm_ajax', 'nonce' );
656
657 delete_option( 'frmpro-credentials' );
658 delete_option( 'frmpro-authorized' );
659 delete_site_option( 'frmpro-credentials' );
660 delete_site_option( 'frmpro-authorized' );
661 wp_die();
662 }
663
664 public static function set_footer_text( $text ) {
665 if ( FrmAppHelper::is_formidable_admin() ) {
666 $text = '';
667 }
668
669 return $text;
670 }
671
672 /**
673 * @deprecated 1.07.05
674 * @codeCoverageIgnore
675 */
676 public static function get_form_shortcode( $atts ) {
677 return FrmDeprecated::get_form_shortcode( $atts );
678 }
679
680 /**
681 * @deprecated 2.5.4
682 * @codeCoverageIgnore
683 */
684 public static function widget_text_filter( $content ) {
685 return FrmDeprecated::widget_text_filter( $content );
686 }
687
688 /**
689 * Deprecated in favor of wpmu_upgrade_site
690 *
691 * @deprecated 2.3
692 * @codeCoverageIgnore
693 */
694 public static function front_head() {
695 FrmDeprecated::front_head();
696 }
697
698 /**
699 * @deprecated 3.0.04
700 * @codeCoverageIgnore
701 */
702 public static function activation_install() {
703 FrmDeprecated::activation_install();
704 }
705
706 /**
707 * @deprecated 3.0
708 * @codeCoverageIgnore
709 */
710 public static function page_route( $content ) {
711 return FrmDeprecated::page_route( $content );
712 }
713 }
714