PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 3.6.31
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v3.6.31
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
fluentform / app / Hooks / Backend.php

Backend.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 3.6.31, at app/Hooks/Backend.php

290 lines 9.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Declare backend actions/filters/shortcodes
5 */
6
7 /*
8 * Regitser All Admin Scripts but don't load it
9 */
10
11 add_action('admin_init', function () use ($app) {
12 (new \FluentForm\App\Modules\Registerer\Menu($app))->reisterScripts();
13 }, 9);
14
15 add_action('admin_enqueue_scripts', function () use ($app) {
16 (new \FluentForm\App\Modules\Registerer\Menu($app))->enqueuePageScripts();
17 }, 10);
18
19 // Add Entries Menu
20 $app->addAction('ff_fluentform_form_application_view_entries', function ($form_id) use ($app) {
21 (new \FluentForm\App\Modules\Entries\Entries())->renderEntries($form_id);
22 });
23
24 $app->addAction('fluentform_after_form_navigation', function ($form_id) use ($app) {
25 (new \FluentForm\App\Modules\Registerer\Menu($app))->addCopyShortcodeButton($form_id);
26 (new \FluentForm\App\Modules\Registerer\Menu($app))->addPreviewButton($form_id);
27 });
28
29 $app->addAction('media_buttons', function () {
30 (new \FluentForm\App\Modules\EditorButtonModule())->addButton();
31 });
32
33 $app->addAction('fluentform_addons_page_render_fluentform_add_ons', function () {
34 (new \FluentForm\App\Modules\AddOnModule())->showFluentAddOns();
35 });
36
37 // This is temp, we will remove this after 2-3 versions.
38 add_filter('pre_set_site_transient_update_plugins', function ($updates) {
39 if (!empty($updates->response['fluentformpro'])) {
40 $updates->response['fluentformpro/fluentformpro.php'] = $updates->response['fluentformpro'];
41 unset($updates->response['fluentformpro']);
42 }
43 return $updates;
44 }, 999, 1);
45
46 $app->addAction('fluentform_global_menu', function () use ($app) {
47 $menu = new \FluentForm\App\Modules\Registerer\Menu($app);
48 $menu->renderGlobalMenu();
49 if (get_option('fluentform_scheduled_actions_migrated') != 'yes') {
50 \FluentForm\App\Databases\Migrations\ScheduledActions::migrate();
51 $hookName = 'fluentform_do_scheduled_tasks';
52 if (!wp_next_scheduled($hookName)) {
53 wp_schedule_event(time(), 'ff_every_five_minutes', $hookName);
54 }
55
56 $emailReportHookName = 'fluentform_do_email_report_scheduled_tasks';
57 if (!wp_next_scheduled($emailReportHookName)) {
58 wp_schedule_event(time(), 'daily', $emailReportHookName);
59 }
60 }
61
62 });
63
64 $app->addAction('wp_dashboard_setup', function () {
65 $roleManager = new \FluentForm\App\Modules\Acl\RoleManager();
66 if (!$roleManager->currentUserFormFormCapability()) {
67 return;
68 }
69 wp_add_dashboard_widget('fluenform_stat_widget', __('Fluent Forms Latest Form Submissions', 'fluentform'), function () {
70 (new \FluentForm\App\Modules\DashboardWidgetModule)->showStat();
71 }, 10, 1);
72 });
73
74 add_action('admin_init', function () {
75 $disablePages = [
76 'fluent_forms',
77 'fluent_forms_transfer',
78 'fluent_forms_settings',
79 'fluent_form_add_ons',
80 'fluent_forms_docs',
81 'fluent_forms_all_entries',
82 'msformentries'
83 ];
84
85 if (isset($_GET['page']) && in_array($_GET['page'], $disablePages)) {
86 remove_all_actions('admin_notices');
87 }
88 });
89
90 add_action('fluentform_loading_editor_assets', function ($form) {
91 add_filter('fluentform_editor_init_element_input_name', function ($field) {
92 if (empty($field['settings']['label_placement'])) {
93 $field['settings']['label_placement'] = '';
94 }
95 return $field;
96 });
97 });
98
99
100 add_filter('fluentform_editor_init_element_container', function ($item) {
101 if (!isset($item['settings']['container_class'])) {
102 $item['settings']['container_class'] = '';
103 }
104 return $item;
105 });
106
107 add_action('enqueue_block_editor_assets', function () use ($app) {
108 wp_enqueue_script(
109 'fluentform-gutenberg-block',
110 $app->publicUrl("js/fluent_gutenblock.js"),
111 array('wp-blocks', 'wp-i18n', 'wp-element', 'wp-components', 'wp-editor')
112 );
113
114 $forms = wpFluent()->table('fluentform_forms')
115 ->select(['id', 'title'])
116 ->orderBy('id', 'DESC')
117 ->get();
118
119 array_unshift($forms, (object)[
120 'id' => '',
121 'title' => __('-- Select a form --', 'fluentform')
122 ]);
123
124 wp_localize_script('fluentform-gutenberg-block', 'fluentform_block_vars', [
125 'logo' => $app->publicUrl('img/fluent_icon.png'),
126 'forms' => $forms
127 ]);
128
129 wp_enqueue_style(
130 'fluentform-gutenberg-block',
131 $app->publicUrl("css/fluent_gutenblock.css"),
132 array('wp-edit-blocks')
133 );
134
135 });
136
137 add_action('wp_print_scripts', function () {
138 if (is_admin()) {
139 if (\FluentForm\App\Helpers\Helper::isFluentAdminPage()) {
140 $option = get_option('_fluentform_global_form_settings');
141 $isSkip = \FluentForm\Framework\Helpers\ArrayHelper::get($option, 'misc.noConflictStatus') == 'no';
142 $isSkip = apply_filters('fluentform_skip_no_conflict', $isSkip);
143
144 if ($isSkip) {
145 return;
146 }
147
148 global $wp_scripts;
149 if (!$wp_scripts) {
150 return;
151 }
152
153 $pluginUrl = plugins_url();
154 foreach ($wp_scripts->queue as $script) {
155 $src = $wp_scripts->registered[$script]->src;
156 if (strpos($src, $pluginUrl) !== false && !strpos($src, 'fluentform') !== false) {
157 wp_dequeue_script($wp_scripts->registered[$script]->handle);
158 }
159 }
160
161 }
162 }
163 }, 1);
164
165 add_action('fluentform_loading_editor_assets', function ($form) {
166 $upgradableCheckInputs = [
167 'input_radio',
168 'select',
169 'input_checkbox'
170 ];
171
172 foreach ($upgradableCheckInputs as $upgradeElement) {
173 add_filter('fluentform_editor_init_element_' . $upgradeElement, function ($element) use ($upgradeElement) {
174 if (!\FluentForm\Framework\Helpers\ArrayHelper::get($element, 'settings.advanced_options')) {
175 $formattedOptions = [];
176 $oldOptions = \FluentForm\Framework\Helpers\ArrayHelper::get($element, 'options', []);
177 foreach ($oldOptions as $value => $label) {
178 $formattedOptions[] = [
179 'label' => $label,
180 'value' => $value,
181 'calc_value' => '',
182 'image' => ''
183 ];
184 }
185 $element['settings']['advanced_options'] = $formattedOptions;
186 $element['settings']['enable_image_input'] = false;
187 $element['settings']['calc_value_status'] = false;
188 $element['settings']['calc_value_status'] = false;
189 unset($element['options']);
190
191 if ($upgradeElement == 'input_radio' || $upgradeElement == 'input_checkbox') {
192 $element['editor_options']['template'] = 'inputCheckable';
193 }
194 }
195
196 if (!isset($element['settings']['layout_class']) && in_array($upgradeElement, ['input_radio', 'input_checkbox'])) {
197 $element['settings']['layout_class'] = '';
198 }
199
200 if (!isset($element['settings']['dynamic_default_value'])) {
201 $element['settings']['dynamic_default_value'] = '';
202 }
203
204 return $element;
205 });
206 }
207
208 add_filter('fluentform_editor_init_element_gdpr_agreement', function ($element) {
209 if (!isset($element['settings']['required_field_message'])) {
210 $element['settings']['required_field_message'] = '';
211 }
212 return $element;
213 });
214
215 add_filter('fluentform_editor_init_element_input_text', function ($element) {
216 if (!isset($element['attributes']['maxlength'])) {
217 $element['settings']['maxlength'] = '';
218 }
219 return $element;
220 });
221
222 add_filter('fluentform_editor_init_element_textarea', function ($element) {
223 if (!isset($element['attributes']['maxlength'])) {
224 $element['settings']['maxlength'] = '';
225 }
226 return $element;
227 });
228
229 add_filter('fluentform_editor_init_element_input_date', function ($item) {
230 if (!isset($item['settings']['date_config'])) {
231 $item['settings']['date_config'] = '';
232 }
233 return $item;
234 });
235
236 add_filter('fluentform_editor_init_element_container', function ($item) {
237 if (!isset($item['settings']['conditional_logics'])) {
238 $item['settings']['conditional_logics'] = [];
239 }
240 return $item;
241 });
242
243 add_filter('fluentform_editor_init_element_input_number', function ($item) {
244 if (!isset($item['settings']['number_step'])) {
245 $item['settings']['number_step'] = '';
246 }
247 if (!isset($item['settings']['prefix_label'])) {
248 $item['settings']['prefix_label'] = '';
249 }
250 if (!isset($item['settings']['suffix_label'])) {
251 $item['settings']['suffix_label'] = '';
252 }
253 return $item;
254 });
255
256 add_filter('fluentform_editor_init_element_input_email', function ($item) {
257 if (!isset($item['settings']['is_unique'])) {
258 $item['settings']['is_unique'] = 'no';
259 }
260 if (!isset($item['settings']['unique_validation_message'])) {
261 $item['settings']['unique_validation_message'] = __('Email address need to be unique.', 'fluentform');
262 }
263 return $item;
264 });
265
266 }, 10);
267
268
269 add_filter('fluentform_addons_extra_menu', function ($menus) {
270 $menus['fluentform_pdf'] = __('Fluent Forms PDF', 'fluentform');
271 return $menus;
272 }, 99, 1);
273
274 add_action('fluentform_addons_page_render_fluentform_pdf', function () {
275 $url = '';
276 if (!defined('FLUENTFORM_PDF_VERSION')) {
277 $url = wp_nonce_url(
278 self_admin_url('update.php?action=install-plugin&plugin=fluentforms-pdf'),
279 'install-plugin_fluentforms-pdf'
280 );
281 }
282
283 echo \FluentForm\View::make('admin.addons.pdf_promo', [
284 'install_url' => $url,
285 'is_installed' => defined('FLUENTFORM_PDF_VERSION')
286 ]);
287 });
288
289
290