PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.4.3
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.4.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
formidable / classes / controllers / FrmHooksController.php

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

270 lines 11.6 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 if ( is_callable( array( $c, $hook ) ) ) {
39 call_user_func( array( $c, $hook ) );
40 }
41 unset( $hook );
42 }
43 unset( $c );
44 }
45
46 }
47
48 public static function trigger_load_form_hooks() {
49 self::trigger_load_hook( 'load_form_hooks' );
50 }
51
52 public static function load_hooks() {
53 add_action( 'rest_api_init', 'FrmAppController::create_rest_routes', 0 );
54 add_action( 'plugins_loaded', 'FrmAppController::load_lang' );
55 add_filter( 'widget_text', 'do_shortcode' );
56
57 // Entries controller.
58 add_action( 'wp_loaded', 'FrmEntriesController::process_entry', 10, 0 );
59 add_action( 'frm_after_entry_processed', 'FrmEntriesController::delete_entry_after_save', 100 );
60
61 // Form Actions Controller.
62 add_action( 'init', 'FrmFormActionsController::register_post_types', 1 );
63 add_action( 'frm_after_create_entry', 'FrmFormActionsController::trigger_create_actions', 20, 3 );
64
65 // Forms Controller.
66 add_action( 'widgets_init', 'FrmFormsController::register_widgets' );
67 add_action( 'init', 'FrmFormsController::front_head' );
68 add_filter( 'frm_content', 'FrmFormsController::filter_content', 10, 3 );
69 add_filter( 'frm_replace_content_shortcodes', 'FrmFormsController::replace_content_shortcodes', 20, 3 );
70 add_action( 'admin_bar_init', 'FrmFormsController::admin_bar_css' );
71 add_action( 'wp_footer', 'FrmFormsController::footer_js', 1, 0 );
72
73 add_action( 'wp_scheduled_delete', 'FrmForm::scheduled_delete' );
74
75 // Form Shortcodes.
76 add_shortcode( 'formidable', 'FrmFormsController::get_form_shortcode' );
77
78 // Styles Controller.
79 add_action( 'init', 'FrmStylesController::register_post_types', 0 );
80 add_filter( 'frm_get_style_opts', 'FrmStylesController::get_style_opts' );
81 add_filter( 'frm_add_form_style_class', 'FrmStylesController::get_form_style_class', 10, 2 );
82 add_filter( 'frm_show_entry_styles', 'FrmStylesController::show_entry_styles' );
83
84 // Simple Blocks Controller.
85 add_action( 'init', 'FrmSimpleBlocksController::register_simple_form_block' );
86
87 add_filter( 'cron_schedules', 'FrmUsageController::add_schedules' );
88 add_action( 'formidable_send_usage', 'FrmUsageController::send_snapshot' );
89
90 /**
91 * Make name field work with View.
92 * FrmProContent::replace_single_shortcode() applies this filter like 'frm_keep_' . $field->type . '_value_array'
93 */
94 add_filter( 'frm_keep_name_value_array', '__return_true' );
95
96 // Elementor.
97 add_action( 'elementor/widgets/widgets_registered', 'FrmElementorController::register_elementor_hooks' );
98 }
99
100 public static function load_admin_hooks() {
101 add_action( 'admin_menu', 'FrmAppController::menu', 1 );
102 add_filter( 'admin_body_class', 'FrmAppController::add_admin_class', 999 );
103 add_action( 'admin_enqueue_scripts', 'FrmAppController::load_wp_admin_style' );
104 add_action( 'admin_notices', 'FrmAppController::pro_get_started_headline' );
105 add_action( 'admin_init', 'FrmAppController::admin_init', 11 );
106 add_filter( 'plugin_action_links_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::settings_link' );
107 add_filter( 'admin_footer_text', 'FrmAppController::set_footer_text' );
108 add_action( 'wp_ajax_frm_dismiss_review', 'FrmAppController::dismiss_review' );
109
110 // Addons Controller.
111 add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
112 add_filter( 'pre_set_site_transient_update_plugins', 'FrmAddonsController::check_update' );
113
114 // Entries Controller.
115 add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
116 add_filter( 'set-screen-option', 'FrmEntriesController::save_per_page', 10, 3 );
117 add_filter( 'update_user_metadata', 'FrmEntriesController::check_hidden_cols', 10, 5 );
118 add_action( 'updated_user_meta', 'FrmEntriesController::update_hidden_cols', 10, 4 );
119
120 // Form Actions Controller.
121 if ( FrmAppHelper::is_admin_page( 'formidable' ) ) {
122 add_action( 'frm_before_update_form_settings', 'FrmFormActionsController::update_settings' );
123 add_action( 'frm_add_form_style_tab_options', 'FrmFormsController::add_form_style_tab_options' );
124 }
125 add_action( 'frm_after_duplicate_form', 'FrmFormActionsController::duplicate_form_actions', 20, 3 );
126
127 // Forms Controller.
128 add_action( 'admin_menu', 'FrmFormsController::menu', 10 );
129 add_action( 'admin_head-toplevel_page_formidable', 'FrmFormsController::head' );
130 add_action( 'frm_after_field_options', 'FrmFormsController::logic_tip' );
131
132 add_filter( 'set-screen-option', 'FrmFormsController::save_per_page', 10, 3 );
133 add_action( 'admin_footer', 'FrmFormsController::insert_form_popup' );
134
135 // Elementor.
136 add_action( 'elementor/editor/footer', 'FrmElementorController::admin_init' );
137
138 add_action( 'media_buttons', 'FrmFormsController::insert_form_button' );
139 add_action( 'et_pb_admin_excluded_shortcodes', 'FrmFormsController::prevent_divi_conflict' );
140
141 // Forms Model.
142 add_action( 'frm_after_duplicate_form', 'FrmForm::after_duplicate', 10, 2 );
143
144 // Inbox Controller.
145 add_action( 'admin_menu', 'FrmInboxController::menu', 50 );
146
147 // Settings Controller.
148 add_action( 'admin_menu', 'FrmSettingsController::menu', 45 );
149 add_action( 'frm_before_settings', 'FrmSettingsController::license_box' );
150 add_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
151 add_action( 'wp_ajax_frm_settings_tab', 'FrmSettingsController::load_settings_tab' );
152 add_action( 'wp_ajax_frm_page_search', 'FrmSettingsController::page_search' );
153
154 // Styles Controller.
155 add_action( 'admin_menu', 'FrmStylesController::menu', 14 );
156 add_action( 'admin_init', 'FrmStylesController::admin_init' );
157
158 // XML Controller.
159 add_action( 'admin_menu', 'FrmXMLController::menu', 41 );
160
161 // Simple Blocks Controller.
162 add_action( 'enqueue_block_editor_assets', 'FrmSimpleBlocksController::block_editor_assets' );
163
164 add_action( 'admin_init', 'FrmUsageController::schedule_send' );
165
166 // Applications Controller.
167 add_action( 'admin_menu', 'FrmApplicationsController::menu', 14 ); // Use the same priority as styles so Applications appear directly under Styles.
168 add_action( 'admin_enqueue_scripts', 'FrmApplicationsController::dequeue_scripts', 15 );
169 add_action( 'wp_ajax_frm_get_applications_data', 'FrmApplicationsController::get_applications_data' );
170
171 FrmSMTPController::load_hooks();
172 FrmWelcomeController::load_hooks();
173 new FrmPluginSearch();
174 }
175
176 public static function load_ajax_hooks() {
177 add_action( 'wp_ajax_frm_install', 'FrmAppController::ajax_install' );
178 add_action( 'wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
179 add_action( 'wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
180
181 // Addons.
182 add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
183 add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
184 add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
185 add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
186 add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
187
188 // Fields Controller.
189 add_action( 'wp_ajax_frm_load_field', 'FrmFieldsController::load_field' );
190 add_action( 'wp_ajax_frm_insert_field', 'FrmFieldsController::create' );
191 add_action( 'wp_ajax_frm_duplicate_field', 'FrmFieldsController::duplicate' );
192 add_action( 'wp_ajax_frm_delete_field', 'FrmFieldsController::destroy' );
193 add_action( 'wp_ajax_frm_import_options', 'FrmFieldsController::import_options' );
194
195 // Form Actions Controller.
196 add_action( 'wp_ajax_frm_add_form_action', 'FrmFormActionsController::add_form_action' );
197 add_action( 'wp_ajax_frm_form_action_fill', 'FrmFormActionsController::fill_action' );
198
199 // Forms Controller.
200 add_action( 'wp_ajax_frm_save_form', 'FrmFormsController::route' );
201 add_action( 'wp_ajax_frm_get_default_html', 'FrmFormsController::get_email_html' );
202 add_action( 'wp_ajax_frm_get_shortcode_opts', 'FrmFormsController::get_shortcode_opts' );
203 add_action( 'wp_ajax_frm_forms_preview', 'FrmFormsController::preview' );
204 add_action( 'wp_ajax_nopriv_frm_forms_preview', 'FrmFormsController::preview' );
205 add_action( 'wp_ajax_frm_forms_trash', 'FrmFormsController::ajax_trash' );
206 add_action( 'wp_ajax_frm_install_form', 'FrmFormsController::build_new_form' );
207 add_action( 'wp_ajax_frm_build_template', 'FrmFormsController::build_template' );
208 add_action( 'wp_ajax_frm_create_page_with_shortcode', 'FrmFormsController::create_page_with_shortcode' );
209 add_action( 'wp_ajax_get_page_dropdown', 'FrmFormsController::get_page_dropdown' );
210
211 add_action( 'wp_ajax_frm_dismiss_migrator', 'FrmFormMigratorsHelper::dismiss_migrator' );
212
213 // Inbox.
214 add_action( 'wp_ajax_frm_inbox_dismiss', 'FrmInboxController::dismiss_message' );
215
216 // Settings.
217 add_action( 'wp_ajax_frm_lite_settings_upgrade', 'FrmSettingsController::settings_cta_dismiss' );
218
219 // Styles Controller.
220 add_action( 'wp_ajax_frm_settings_reset', 'FrmStylesController::reset_styling' );
221 add_action( 'wp_ajax_frm_change_styling', 'FrmStylesController::change_styling' );
222 add_action( 'wp_ajax_frmpro_load_css', 'FrmStylesController::load_css' );
223 add_action( 'wp_ajax_nopriv_frmpro_load_css', 'FrmStylesController::load_css' );
224 add_action( 'wp_ajax_frmpro_css', 'FrmStylesController::load_saved_css' );
225 add_action( 'wp_ajax_nopriv_frmpro_css', 'FrmStylesController::load_saved_css' );
226
227 // XML Controller.
228 add_action( 'wp_ajax_frm_install_template', 'FrmXMLController::install_template' );
229 add_action( 'wp_ajax_frm_entries_csv', 'FrmXMLController::csv' );
230 add_action( 'wp_ajax_nopriv_frm_entries_csv', 'FrmXMLController::csv' );
231 add_action( 'wp_ajax_frm_export_xml', 'FrmXMLController::export_xml' );
232
233 // Templates API.
234 add_action( 'wp_ajax_template_api_signup', 'FrmFormTemplateApi::signup' );
235 }
236
237 public static function load_form_hooks() {
238 // Fields Controller.
239 add_filter( 'frm_field_type', 'FrmFieldsController::change_type' );
240 add_action( 'frm_field_input_html', 'FrmFieldsController::input_html' );
241 add_filter( 'frm_field_value_saved', 'FrmFieldsController::check_value', 50, 3 );
242 add_filter( 'frm_field_label_seen', 'FrmFieldsController::check_label' );
243
244 // Forms Controller.
245 add_filter( 'frm_form_classes', 'FrmFormsController::form_classes' );
246
247 // Styles Controller.
248 add_filter( 'frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
249 }
250
251 public static function load_view_hooks() {
252 // Hooks go here when a view is loaded.
253 }
254
255 public static function load_multisite_hooks() {
256 add_action( 'wpmu_upgrade_site', 'FrmAppController::network_upgrade_site' );
257
258 // Drop tables when mu site is deleted.
259 add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
260 }
261
262 /**
263 * @deprecated 5.0.06 use FrmElementorController::register_elementor_hooks directly.
264 */
265 public static function register_elementor_hooks() {
266 _deprecated_function( __FUNCTION__, '5.0.06', 'FrmElementorController::register_elementor_hooks' );
267 FrmElementorController::register_elementor_hooks();
268 }
269 }
270