PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 4.08
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v4.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 / FrmHooksController.php

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

236 lines 10.2 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 FrmHooksController {
7
8 /**
9 * Trigger plugin-wide hook loading
10 */
11 public static function trigger_load_hook( $hooks = 'load_hooks' ) {
12 $controllers = apply_filters( 'frm_load_controllers', array( 'FrmHooksController' ) );
13
14 $trigger_hooks = $hooks;
15 $hooks = (array) $hooks;
16
17 if ( 'load_hooks' == $trigger_hooks ) {
18 if ( is_admin() ) {
19 $hooks[] = 'load_admin_hooks';
20 if ( defined( 'DOING_AJAX' ) ) {
21 $hooks[] = 'load_ajax_hooks';
22 $hooks[] = 'load_form_hooks';
23 }
24 }
25
26 if ( is_multisite() ) {
27 $hooks[] = 'load_multisite_hooks';
28 }
29 } else {
30 // Make sure the hooks are only triggered once.
31 add_filter( 'frm' . str_replace( 'load', '', $trigger_hooks ) . '_loaded', '__return_true' );
32 }
33 unset( $trigger_hooks );
34
35 // Instansiate Controllers.
36 foreach ( $controllers as $c ) {
37 foreach ( $hooks as $hook ) {
38 call_user_func( array( $c, $hook ) );
39 unset( $hook );
40 }
41 unset( $c );
42 }
43
44 }
45
46 public static function trigger_load_form_hooks() {
47 self::trigger_load_hook( 'load_form_hooks' );
48 }
49
50 public static function load_hooks() {
51 add_action( 'rest_api_init', 'FrmAppController::create_rest_routes', 0 );
52 add_action( 'plugins_loaded', 'FrmAppController::load_lang' );
53 add_filter( 'widget_text', 'do_shortcode' );
54
55 // Entries controller.
56 add_action( 'wp_loaded', 'FrmEntriesController::process_entry', 10, 0 );
57 add_action( 'frm_after_entry_processed', 'FrmEntriesController::delete_entry_after_save', 100 );
58
59 // Form Actions Controller.
60 add_action( 'init', 'FrmFormActionsController::register_post_types', 1 );
61 add_action( 'frm_after_create_entry', 'FrmFormActionsController::trigger_create_actions', 20, 3 );
62
63 // Forms Controller.
64 add_action( 'widgets_init', 'FrmFormsController::register_widgets' );
65 add_action( 'init', 'FrmFormsController::front_head' );
66 add_filter( 'frm_content', 'FrmFormsController::filter_content', 10, 3 );
67 add_filter( 'frm_replace_content_shortcodes', 'FrmFormsController::replace_content_shortcodes', 20, 3 );
68 add_action( 'admin_bar_init', 'FrmFormsController::admin_bar_css' );
69 add_action( 'wp_footer', 'FrmFormsController::footer_js', 1, 0 );
70
71 add_action( 'wp_scheduled_delete', 'FrmForm::scheduled_delete' );
72
73 // Form Shortcodes.
74 add_shortcode( 'formidable', 'FrmFormsController::get_form_shortcode' );
75
76 // Styles Controller.
77 add_action( 'init', 'FrmStylesController::register_post_types', 0 );
78 add_filter( 'frm_get_style_opts', 'FrmStylesController::get_style_opts' );
79 add_filter( 'frm_add_form_style_class', 'FrmStylesController::get_form_style_class', 10, 2 );
80 add_filter( 'frm_show_entry_styles', 'FrmStylesController::show_entry_styles' );
81
82 // Simple Blocks Controller.
83 add_action( 'init', 'FrmSimpleBlocksController::register_simple_form_block' );
84
85 add_filter( 'cron_schedules', 'FrmUsageController::add_schedules' );
86 add_action( 'formidable_send_usage', 'FrmUsageController::send_snapshot' );
87 }
88
89 public static function load_admin_hooks() {
90 add_action( 'admin_menu', 'FrmAppController::menu', 1 );
91 add_filter( 'admin_body_class', 'FrmAppController::add_admin_class', 999 );
92 add_action( 'admin_enqueue_scripts', 'FrmAppController::load_wp_admin_style' );
93 add_action( 'admin_notices', 'FrmAppController::pro_get_started_headline' );
94 add_action( 'admin_init', 'FrmAppController::admin_init', 11 );
95 add_filter( 'plugin_action_links_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::settings_link' );
96 add_filter( 'admin_footer_text', 'FrmAppController::set_footer_text' );
97 add_action( 'wp_ajax_frm_dismiss_review', 'FrmAppController::dismiss_review' );
98
99 // Addons Controller.
100 add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
101 add_filter( 'pre_set_site_transient_update_plugins', 'FrmAddonsController::check_update' );
102
103 // Entries Controller.
104 add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
105 add_filter( 'set-screen-option', 'FrmEntriesController::save_per_page', 10, 3 );
106 add_filter( 'update_user_metadata', 'FrmEntriesController::check_hidden_cols', 10, 5 );
107 add_action( 'updated_user_meta', 'FrmEntriesController::update_hidden_cols', 10, 4 );
108
109 // Form Actions Controller.
110 if ( FrmAppHelper::is_admin_page( 'formidable' ) ) {
111 add_action( 'frm_before_update_form_settings', 'FrmFormActionsController::update_settings' );
112 add_action( 'frm_add_form_style_tab_options', 'FrmFormsController::add_form_style_tab_options' );
113 }
114 add_action( 'frm_after_duplicate_form', 'FrmFormActionsController::duplicate_form_actions', 20, 3 );
115
116 // Forms Controller.
117 add_action( 'admin_menu', 'FrmFormsController::menu', 10 );
118 add_action( 'admin_head-toplevel_page_formidable', 'FrmFormsController::head' );
119 add_action( 'frm_after_field_options', 'FrmFormsController::logic_tip' );
120
121 add_filter( 'set-screen-option', 'FrmFormsController::save_per_page', 10, 3 );
122 add_action( 'admin_footer', 'FrmFormsController::insert_form_popup' );
123 add_action( 'media_buttons', 'FrmFormsController::insert_form_button' );
124 add_action( 'et_pb_admin_excluded_shortcodes', 'FrmFormsController::prevent_divi_conflict' );
125
126 // Forms Model.
127 add_action( 'frm_after_duplicate_form', 'FrmForm::after_duplicate', 10, 2 );
128
129 // Inbox Controller.
130 add_action( 'admin_menu', 'FrmInboxController::menu', 50 );
131
132 // Settings Controller.
133 add_action( 'admin_menu', 'FrmSettingsController::menu', 45 );
134 add_action( 'frm_before_settings', 'FrmSettingsController::license_box' );
135 add_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
136 add_action( 'wp_ajax_frm_settings_tab', 'FrmSettingsController::load_settings_tab' );
137 add_action( 'wp_ajax_frm_page_search', 'FrmSettingsController::page_search' );
138
139 // Styles Controller.
140 add_action( 'admin_menu', 'FrmStylesController::menu', 14 );
141 add_action( 'admin_init', 'FrmStylesController::admin_init' );
142
143 // XML Controller.
144 add_action( 'admin_menu', 'FrmXMLController::menu', 41 );
145
146 // Simple Blocks Controller.
147 add_action( 'enqueue_block_editor_assets', 'FrmSimpleBlocksController::block_editor_assets' );
148
149 add_action( 'admin_init', 'FrmUsageController::schedule_send' );
150
151 FrmSMTPController::load_hooks();
152 }
153
154 public static function load_ajax_hooks() {
155 add_action( 'wp_ajax_frm_install', 'FrmAppController::ajax_install' );
156 add_action( 'wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
157 add_action( 'wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
158
159 // Addons.
160 add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
161 add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
162 add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
163 add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
164 add_action( 'wp_ajax_frm_multiple_addons', 'FrmAddonsController::ajax_multiple_addons' );
165 add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
166
167 // Fields Controller.
168 add_action( 'wp_ajax_frm_load_field', 'FrmFieldsController::load_field' );
169 add_action( 'wp_ajax_frm_insert_field', 'FrmFieldsController::create' );
170 add_action( 'wp_ajax_frm_duplicate_field', 'FrmFieldsController::duplicate' );
171 add_action( 'wp_ajax_frm_delete_field', 'FrmFieldsController::destroy' );
172 add_action( 'wp_ajax_frm_import_options', 'FrmFieldsController::import_options' );
173
174 // Form Actions Controller.
175 add_action( 'wp_ajax_frm_add_form_action', 'FrmFormActionsController::add_form_action' );
176 add_action( 'wp_ajax_frm_form_action_fill', 'FrmFormActionsController::fill_action' );
177
178 // Forms Controller.
179 add_action( 'wp_ajax_frm_save_form', 'FrmFormsController::route' );
180 add_action( 'wp_ajax_frm_get_default_html', 'FrmFormsController::get_email_html' );
181 add_action( 'wp_ajax_frm_get_shortcode_opts', 'FrmFormsController::get_shortcode_opts' );
182 add_action( 'wp_ajax_frm_forms_preview', 'FrmFormsController::preview' );
183 add_action( 'wp_ajax_nopriv_frm_forms_preview', 'FrmFormsController::preview' );
184 add_action( 'wp_ajax_frm_forms_trash', 'FrmFormsController::ajax_trash' );
185 add_action( 'wp_ajax_frm_install_form', 'FrmFormsController::build_new_form' );
186 add_action( 'wp_ajax_frm_build_template', 'FrmFormsController::build_template' );
187
188 add_action( 'wp_ajax_frm_dismiss_migrator', 'FrmFormMigratorsHelper::dismiss_migrator' );
189
190 // Inbox.
191 add_action( 'wp_ajax_frm_inbox_dismiss', 'FrmInboxController::dismiss_message' );
192
193 // Settings.
194 add_action( 'wp_ajax_frm_lite_settings_upgrade', 'FrmSettingsController::settings_cta_dismiss' );
195
196 // Styles Controller.
197 add_action( 'wp_ajax_frm_settings_reset', 'FrmStylesController::reset_styling' );
198 add_action( 'wp_ajax_frm_change_styling', 'FrmStylesController::change_styling' );
199 add_action( 'wp_ajax_frmpro_load_css', 'FrmStylesController::load_css' );
200 add_action( 'wp_ajax_nopriv_frmpro_load_css', 'FrmStylesController::load_css' );
201 add_action( 'wp_ajax_frmpro_css', 'FrmStylesController::load_saved_css' );
202 add_action( 'wp_ajax_nopriv_frmpro_css', 'FrmStylesController::load_saved_css' );
203
204 // XML Controller.
205 add_action( 'wp_ajax_frm_install_template', 'FrmXMLController::install_template' );
206 add_action( 'wp_ajax_frm_entries_csv', 'FrmXMLController::csv' );
207 add_action( 'wp_ajax_nopriv_frm_entries_csv', 'FrmXMLController::csv' );
208 add_action( 'wp_ajax_frm_export_xml', 'FrmXMLController::export_xml' );
209 }
210
211 public static function load_form_hooks() {
212 // Fields Controller.
213 add_filter( 'frm_field_type', 'FrmFieldsController::change_type' );
214 add_action( 'frm_field_input_html', 'FrmFieldsController::input_html' );
215 add_filter( 'frm_field_value_saved', 'FrmFieldsController::check_value', 50, 3 );
216 add_filter( 'frm_field_label_seen', 'FrmFieldsController::check_label' );
217
218 // Forms Controller.
219 add_filter( 'frm_form_classes', 'FrmFormsController::form_classes' );
220
221 // Styles Controller.
222 add_filter( 'frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
223 }
224
225 public static function load_view_hooks() {
226 // Hooks go here when a view is loaded.
227 }
228
229 public static function load_multisite_hooks() {
230 add_action( 'wpmu_upgrade_site', 'FrmAppController::network_upgrade_site' );
231
232 // Drop tables when mu site is deleted.
233 add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
234 }
235 }
236