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

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