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

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