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

240 lines 10.3 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 add_action( 'frm_page_footer', 'FrmAppHelper::renewal_message' );
103
104 // Entries Controller.
105 add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
106 add_filter( 'set-screen-option', 'FrmEntriesController::save_per_page', 10, 3 );
107 add_filter( 'update_user_metadata', 'FrmEntriesController::check_hidden_cols', 10, 5 );
108 add_action( 'updated_user_meta', 'FrmEntriesController::update_hidden_cols', 10, 4 );
109
110 // Form Actions Controller.
111 if ( FrmAppHelper::is_admin_page( 'formidable' ) ) {
112 add_action( 'frm_before_update_form_settings', 'FrmFormActionsController::update_settings' );
113 add_action( 'frm_add_form_style_tab_options', 'FrmFormsController::add_form_style_tab_options' );
114 }
115 add_action( 'frm_after_duplicate_form', 'FrmFormActionsController::duplicate_form_actions', 20, 3 );
116
117 // Forms Controller.
118 add_action( 'admin_menu', 'FrmFormsController::menu', 10 );
119 add_action( 'admin_head-toplevel_page_formidable', 'FrmFormsController::head' );
120 add_action( 'frm_after_field_options', 'FrmFormsController::logic_tip' );
121
122 add_filter( 'set-screen-option', 'FrmFormsController::save_per_page', 10, 3 );
123 add_action( 'admin_footer', 'FrmFormsController::insert_form_popup' );
124 add_action( 'media_buttons', 'FrmFormsController::insert_form_button' );
125 add_action( 'et_pb_admin_excluded_shortcodes', 'FrmFormsController::prevent_divi_conflict' );
126
127 // Forms Model.
128 add_action( 'frm_after_duplicate_form', 'FrmForm::after_duplicate', 10, 2 );
129
130 // Inbox Controller.
131 add_action( 'admin_menu', 'FrmInboxController::menu', 50 );
132
133 // Settings Controller.
134 add_action( 'admin_menu', 'FrmSettingsController::menu', 45 );
135 add_action( 'frm_before_settings', 'FrmSettingsController::license_box' );
136 add_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
137 add_action( 'wp_ajax_frm_settings_tab', 'FrmSettingsController::load_settings_tab' );
138 add_action( 'wp_ajax_frm_page_search', 'FrmSettingsController::page_search' );
139
140 // Styles Controller.
141 add_action( 'admin_menu', 'FrmStylesController::menu', 14 );
142 add_action( 'admin_init', 'FrmStylesController::admin_init' );
143
144 // XML Controller.
145 add_action( 'admin_menu', 'FrmXMLController::menu', 41 );
146
147 // Simple Blocks Controller.
148 add_action( 'enqueue_block_editor_assets', 'FrmSimpleBlocksController::block_editor_assets' );
149
150 add_action( 'admin_init', 'FrmUsageController::schedule_send' );
151
152 FrmSMTPController::load_hooks();
153 FrmWelcomeController::load_hooks();
154 }
155
156 public static function load_ajax_hooks() {
157 add_action( 'wp_ajax_frm_install', 'FrmAppController::ajax_install' );
158 add_action( 'wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
159 add_action( 'wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
160
161 // Addons.
162 add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
163 add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
164 add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
165 add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
166 add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
167
168 // Fields Controller.
169 add_action( 'wp_ajax_frm_load_field', 'FrmFieldsController::load_field' );
170 add_action( 'wp_ajax_frm_insert_field', 'FrmFieldsController::create' );
171 add_action( 'wp_ajax_frm_duplicate_field', 'FrmFieldsController::duplicate' );
172 add_action( 'wp_ajax_frm_delete_field', 'FrmFieldsController::destroy' );
173 add_action( 'wp_ajax_frm_import_options', 'FrmFieldsController::import_options' );
174
175 // Form Actions Controller.
176 add_action( 'wp_ajax_frm_add_form_action', 'FrmFormActionsController::add_form_action' );
177 add_action( 'wp_ajax_frm_form_action_fill', 'FrmFormActionsController::fill_action' );
178
179 // Forms Controller.
180 add_action( 'wp_ajax_frm_save_form', 'FrmFormsController::route' );
181 add_action( 'wp_ajax_frm_get_default_html', 'FrmFormsController::get_email_html' );
182 add_action( 'wp_ajax_frm_get_shortcode_opts', 'FrmFormsController::get_shortcode_opts' );
183 add_action( 'wp_ajax_frm_forms_preview', 'FrmFormsController::preview' );
184 add_action( 'wp_ajax_nopriv_frm_forms_preview', 'FrmFormsController::preview' );
185 add_action( 'wp_ajax_frm_forms_trash', 'FrmFormsController::ajax_trash' );
186 add_action( 'wp_ajax_frm_install_form', 'FrmFormsController::build_new_form' );
187 add_action( 'wp_ajax_frm_build_template', 'FrmFormsController::build_template' );
188
189 add_action( 'wp_ajax_frm_dismiss_migrator', 'FrmFormMigratorsHelper::dismiss_migrator' );
190
191 // Inbox.
192 add_action( 'wp_ajax_frm_inbox_dismiss', 'FrmInboxController::dismiss_message' );
193
194 // Settings.
195 add_action( 'wp_ajax_frm_lite_settings_upgrade', 'FrmSettingsController::settings_cta_dismiss' );
196
197 // Styles Controller.
198 add_action( 'wp_ajax_frm_settings_reset', 'FrmStylesController::reset_styling' );
199 add_action( 'wp_ajax_frm_change_styling', 'FrmStylesController::change_styling' );
200 add_action( 'wp_ajax_frmpro_load_css', 'FrmStylesController::load_css' );
201 add_action( 'wp_ajax_nopriv_frmpro_load_css', 'FrmStylesController::load_css' );
202 add_action( 'wp_ajax_frmpro_css', 'FrmStylesController::load_saved_css' );
203 add_action( 'wp_ajax_nopriv_frmpro_css', 'FrmStylesController::load_saved_css' );
204
205 // XML Controller.
206 add_action( 'wp_ajax_frm_install_template', 'FrmXMLController::install_template' );
207 add_action( 'wp_ajax_frm_entries_csv', 'FrmXMLController::csv' );
208 add_action( 'wp_ajax_nopriv_frm_entries_csv', 'FrmXMLController::csv' );
209 add_action( 'wp_ajax_frm_export_xml', 'FrmXMLController::export_xml' );
210
211 // Templates API.
212 add_action( 'wp_ajax_template_api_signup', 'FrmFormTemplateApi::signup' );
213 }
214
215 public static function load_form_hooks() {
216 // Fields Controller.
217 add_filter( 'frm_field_type', 'FrmFieldsController::change_type' );
218 add_action( 'frm_field_input_html', 'FrmFieldsController::input_html' );
219 add_filter( 'frm_field_value_saved', 'FrmFieldsController::check_value', 50, 3 );
220 add_filter( 'frm_field_label_seen', 'FrmFieldsController::check_label' );
221
222 // Forms Controller.
223 add_filter( 'frm_form_classes', 'FrmFormsController::form_classes' );
224
225 // Styles Controller.
226 add_filter( 'frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
227 }
228
229 public static function load_view_hooks() {
230 // Hooks go here when a view is loaded.
231 }
232
233 public static function load_multisite_hooks() {
234 add_action( 'wpmu_upgrade_site', 'FrmAppController::network_upgrade_site' );
235
236 // Drop tables when mu site is deleted.
237 add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
238 }
239 }
240