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

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