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

219 lines 9.5 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 add_action( 'wp_mail_smtp_core_recommendations_plugins', 'FrmAppController::remove_wpforms_nag' );
96
97 // Addons Controller.
98 add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
99 add_filter( 'pre_set_site_transient_update_plugins', 'FrmAddonsController::check_update' );
100
101 // Entries Controller.
102 add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
103 add_filter( 'set-screen-option', 'FrmEntriesController::save_per_page', 10, 3 );
104 add_filter( 'update_user_metadata', 'FrmEntriesController::check_hidden_cols', 10, 5 );
105 add_action( 'updated_user_meta', 'FrmEntriesController::update_hidden_cols', 10, 4 );
106
107 // Form Actions Controller.
108 if ( FrmAppHelper::is_admin_page( 'formidable' ) ) {
109 add_action( 'frm_before_update_form_settings', 'FrmFormActionsController::update_settings' );
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 // Settings Controller.
126 add_action( 'admin_menu', 'FrmSettingsController::menu', 45 );
127 add_action( 'frm_before_settings', 'FrmSettingsController::license_box' );
128 add_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
129 add_action( 'wp_ajax_frm_settings_tab', 'FrmSettingsController::load_settings_tab' );
130
131 // Styles Controller.
132 add_action( 'admin_menu', 'FrmStylesController::menu', 14 );
133 add_action( 'admin_init', 'FrmStylesController::admin_init' );
134
135 // XML Controller.
136 add_action( 'admin_menu', 'FrmXMLController::menu', 41 );
137
138 // Simple Blocks Controller.
139 add_action( 'enqueue_block_editor_assets', 'FrmSimpleBlocksController::block_editor_assets' );
140
141 add_action( 'admin_init', 'FrmUsageController::schedule_send' );
142 }
143
144 public static function load_ajax_hooks() {
145 add_action( 'wp_ajax_frm_install', 'FrmAppController::ajax_install' );
146 add_action( 'wp_ajax_frm_uninstall', 'FrmAppController::uninstall' );
147 add_action( 'wp_ajax_frm_deauthorize', 'FrmAppController::deauthorize' );
148
149 // Addons.
150 add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
151 add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
152 add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
153 add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
154
155 // Fields Controller.
156 add_action( 'wp_ajax_frm_load_field', 'FrmFieldsController::load_field' );
157 add_action( 'wp_ajax_frm_insert_field', 'FrmFieldsController::create' );
158 add_action( 'wp_ajax_frm_duplicate_field', 'FrmFieldsController::duplicate' );
159 add_action( 'wp_ajax_frm_delete_field', 'FrmFieldsController::destroy' );
160 add_action( 'wp_ajax_frm_import_options', 'FrmFieldsController::import_options' );
161
162 // Form Actions Controller.
163 add_action( 'wp_ajax_frm_add_form_action', 'FrmFormActionsController::add_form_action' );
164 add_action( 'wp_ajax_frm_form_action_fill', 'FrmFormActionsController::fill_action' );
165
166 // Forms Controller.
167 add_action( 'wp_ajax_frm_save_form', 'FrmFormsController::route' );
168 add_action( 'wp_ajax_frm_get_default_html', 'FrmFormsController::get_email_html' );
169 add_action( 'wp_ajax_frm_get_shortcode_opts', 'FrmFormsController::get_shortcode_opts' );
170 add_action( 'wp_ajax_frm_forms_preview', 'FrmFormsController::preview' );
171 add_action( 'wp_ajax_nopriv_frm_forms_preview', 'FrmFormsController::preview' );
172 add_action( 'wp_ajax_frm_forms_trash', 'FrmFormsController::ajax_trash' );
173 add_action( 'wp_ajax_frm_install_form', 'FrmFormsController::build_new_form' );
174 add_action( 'wp_ajax_frm_build_template', 'FrmFormsController::build_template' );
175
176 // Settings.
177 add_action( 'wp_ajax_frm_lite_settings_upgrade', 'FrmSettingsController::settings_cta_dismiss' );
178
179 // Styles Controller.
180 add_action( 'wp_ajax_frm_settings_reset', 'FrmStylesController::reset_styling' );
181 add_action( 'wp_ajax_frm_change_styling', 'FrmStylesController::change_styling' );
182 add_action( 'wp_ajax_frmpro_load_css', 'FrmStylesController::load_css' );
183 add_action( 'wp_ajax_nopriv_frmpro_load_css', 'FrmStylesController::load_css' );
184 add_action( 'wp_ajax_frmpro_css', 'FrmStylesController::load_saved_css' );
185 add_action( 'wp_ajax_nopriv_frmpro_css', 'FrmStylesController::load_saved_css' );
186
187 // XML Controller.
188 add_action( 'wp_ajax_frm_install_template', 'FrmXMLController::install_template' );
189 add_action( 'wp_ajax_frm_entries_csv', 'FrmXMLController::csv' );
190 add_action( 'wp_ajax_nopriv_frm_entries_csv', 'FrmXMLController::csv' );
191 add_action( 'wp_ajax_frm_export_xml', 'FrmXMLController::export_xml' );
192 }
193
194 public static function load_form_hooks() {
195 // Fields Controller.
196 add_filter( 'frm_field_type', 'FrmFieldsController::change_type' );
197 add_action( 'frm_field_input_html', 'FrmFieldsController::input_html' );
198 add_filter( 'frm_field_value_saved', 'FrmFieldsController::check_value', 50, 3 );
199 add_filter( 'frm_field_label_seen', 'FrmFieldsController::check_label' );
200
201 // Forms Controller.
202 add_filter( 'frm_form_classes', 'FrmFormsController::form_classes' );
203
204 // Styles Controller.
205 add_filter( 'frm_use_important_width', 'FrmStylesController::important_style', 10, 2 );
206 }
207
208 public static function load_view_hooks() {
209 // Hooks go here when a view is loaded.
210 }
211
212 public static function load_multisite_hooks() {
213 add_action( 'wpmu_upgrade_site', 'FrmAppController::network_upgrade_site' );
214
215 // Drop tables when mu site is deleted.
216 add_filter( 'wpmu_drop_tables', 'FrmAppController::drop_tables' );
217 }
218 }
219