PluginProbe
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / 1.0.3
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz v1.0.3
2.12.6 2.12.5 2.12.4 2.12.3 2.12.2 2.12.1 2.12.0 2.11.1 2.11.0 2.10.1 2.10.0 2.9.1 2.9.0 2.8.2 2.8.1 2.7.0 2.7.1 2.8.0 trunk 0.0.10 0.0.11 0.0.12 0.0.13 0.0.2 0.0.3 All 96 releases
← All changes | plugin-loader.php +37 -92 2.10.11.0.3 View file →
@@ -8,14 +8,10 @@
8 8
9 9 namespace SRFM;
10 10
11 11 use SRFM\Admin\Admin;
12 -use SRFM\Admin\Analytics;
13 -use SRFM\Admin\Notice_Manager;
14 -use SRFM\Inc\Abilities\Abilities_Registrar;
12 +use SRFM\API\Block_Patterns;
15 13 use SRFM\Inc\Activator;
16 -use SRFM\Inc\Admin\Editor_Nudge;
17 -use SRFM\Inc\Admin\Html_Form_Detector;
18 14 use SRFM\Inc\Admin_Ajax;
19 15 use SRFM\Inc\AI_Form_Builder\AI_Auth;
20 16 use SRFM\Inc\AI_Form_Builder\AI_Form_Builder;
21 17 use SRFM\Inc\AI_Form_Builder\AI_Helper;
@@ -21,15 +17,12 @@
21 17 use SRFM\Inc\AI_Form_Builder\AI_Helper;
22 18 use SRFM\Inc\AI_Form_Builder\Field_Mapping;
23 19 use SRFM\Inc\Background_Process;
24 20 use SRFM\Inc\Blocks\Register;
25 -use SRFM\Inc\Compatibility\Themes\Astra;
26 21 use SRFM\Inc\Create_New_Form;
27 22 use SRFM\Inc\Database\Register as DatabaseRegister;
28 -use SRFM\Inc\Duplicate_Form;
29 23 use SRFM\Inc\Events_Scheduler;
30 24 use SRFM\Inc\Export;
31 -use SRFM\Inc\Form_Restriction;
32 25 use SRFM\Inc\Form_Submit;
33 26 use SRFM\Inc\Forms_Data;
34 27 use SRFM\Inc\Frontend_Assets;
35 28 use SRFM\Inc\Generate_Form_Markup;
@@ -34,19 +27,14 @@
34 27 use SRFM\Inc\Frontend_Assets;
35 28 use SRFM\Inc\Generate_Form_Markup;
36 29 use SRFM\Inc\Global_Settings\Email_Summary;
37 30 use SRFM\Inc\Global_Settings\Global_Settings;
38 -use SRFM\Inc\Global_Settings\Global_Settings_Defaults;
39 31 use SRFM\Inc\Gutenberg_Hooks;
40 32 use SRFM\Inc\Helper;
41 -use SRFM\Inc\Learn;
42 -use SRFM\Inc\Onboarding;
43 33 use SRFM\Inc\Page_Builders\Page_Builders;
44 -use SRFM\Inc\Payments\Payments;
45 34 use SRFM\Inc\Post_Types;
46 35 use SRFM\Inc\Rest_Api;
47 36 use SRFM\Inc\Single_Form_Settings\Compliance_Settings;
48 -use SRFM\Inc\Single_Form_Settings\Form_Settings_Api;
49 37 use SRFM\Inc\Smart_Tags;
50 38 use SRFM\Inc\Updater;
51 39
52 40 if ( ! defined( 'ABSPATH' ) ) {
@@ -73,11 +61,8 @@
73 61 *
74 62 * @since 0.0.1
75 63 */
76 64 public function __construct() {
77 - if ( ! defined( 'SRFM_DIR' ) || ! defined( 'SRFM_FILE' ) ) {
78 - return;
79 - }
80 65 // Load the action scheduler before plugin loads.
81 66 require_once SRFM_DIR . 'inc/lib/action-scheduler/action-scheduler.php';
82 67
83 68 spl_autoload_register( [ $this, 'autoload' ] );
@@ -85,9 +70,37 @@
85 70 add_action( 'plugins_loaded', [ $this, 'load_textdomain' ] );
86 71 add_action( 'plugins_loaded', [ $this, 'load_plugin' ], 99 );
87 72 add_action( 'init', [ $this, 'load_classes' ] );
88 73 add_action( 'admin_init', [ $this, 'activation_redirect' ] );
89 - Analytics::get_instance();
74 + Post_Types::get_instance();
75 + Form_Submit::get_instance();
76 + Block_Patterns::get_instance();
77 + Gutenberg_Hooks::get_instance();
78 + Register::get_instance();
79 + Frontend_Assets::get_instance();
80 + Helper::get_instance();
81 + Activator::get_instance();
82 + Admin_Ajax::get_instance();
83 + Forms_Data::get_instance();
84 + Export::get_instance();
85 + Smart_Tags::get_instance();
86 + Generate_Form_Markup::get_instance();
87 + Create_New_Form::get_instance();
88 + Global_Settings::get_instance();
89 + Email_Summary::get_instance();
90 + Compliance_Settings::get_instance();
91 + Events_Scheduler::get_instance();
92 + AI_Form_Builder::get_instance();
93 + Field_Mapping::get_instance();
94 + Background_Process::get_instance();
95 + Page_Builders::get_instance();
96 + Rest_Api::get_instance();
97 + AI_Helper::get_instance();
98 + AI_Auth::get_instance();
99 + Updater::get_instance();
100 +
101 + DatabaseRegister::init();
102 +
90 103 /**
91 104 * The code that runs during plugin activation
92 105 */
93 106 register_activation_hook(
@@ -145,24 +158,18 @@
145 158 [ '', '$1-$2', '-', DIRECTORY_SEPARATOR ],
146 159 $class
147 160 );
148 161
149 - if ( ! is_string( $filename ) ) {
150 - return;
151 - }
162 + if ( is_string( $filename ) ) {
152 163
153 - // Check for directory traversal.
154 - if ( strpos( $filename, '..' ) !== false ) {
155 - return;
156 - }
164 + $filename = strtolower( $filename );
157 165
158 - $filename = strtolower( $filename );
166 + $file = SRFM_DIR . $filename . '.php';
159 167
160 - $file = SRFM_DIR . $filename . '.php';
161 -
162 - // if the file is readable, include it.
163 - if ( is_readable( $file ) ) {
164 - require_once $file;
168 + // if the file is readable, include it.
169 + if ( is_readable( $file ) ) {
170 + require_once $file;
171 + }
165 172 }
166 173 }
167 174
168 175 /**
@@ -171,18 +178,9 @@
171 178 * @return void
172 179 * @since 0.0.1
173 180 */
174 181 public function activation_redirect() {
175 - // Avoid redirection in case of WP_CLI calls.
176 - if ( defined( 'WP_CLI' ) && \WP_CLI ) {
177 - return;
178 - }
179 182
180 - // Avoid redirection in case of ajax calls.
181 - if ( wp_doing_ajax() ) {
182 - return;
183 - }
184 -
185 183 $do_redirect = apply_filters( 'srfm_enable_redirect_activation', get_option( '__srfm_do_redirect' ) );
186 184
187 185 if ( $do_redirect ) {
188 186
@@ -209,24 +207,11 @@
209 207 * @return void
210 208 * @since 0.0.1
211 209 */
212 210 public function load_classes() {
213 -
214 - Register::get_instance();
215 211 if ( is_admin() ) {
216 212 Admin::get_instance();
217 - // phpcs:ignore /** @phpstan-ignore-next-line */ -- Class is loaded dynamically in WordPress
218 - Notice_Manager::get_instance();
219 - Editor_Nudge::get_instance();
220 213 }
221 - // Always instantiate — script enqueue is self-gated by `allow_load()`,
222 - // while the REST endpoint for converting HTML forms must register
223 - // outside the admin context (REST dispatch runs with `is_admin()` ===
224 - // false, so admin-only instantiation would 404 the endpoint).
225 - Html_Form_Detector::get_instance();
226 - Payments::get_instance();
227 - Duplicate_Form::get_instance();
228 - Learn::get_instance();
229 214 }
230 215
231 216 /**
232 217 * Load Plugin Text Domain.
@@ -289,48 +274,8 @@
289 274 *
290 275 * @return void
291 276 */
292 277 public function load_plugin() {
293 - Post_Types::get_instance();
294 - Form_Submit::get_instance();
295 - Gutenberg_Hooks::get_instance();
296 - Frontend_Assets::get_instance();
297 - Helper::get_instance();
298 - Activator::get_instance();
299 - Admin_Ajax::get_instance();
300 - Forms_Data::get_instance();
301 - Export::get_instance();
302 - Smart_Tags::get_instance();
303 - Generate_Form_Markup::get_instance();
304 - Create_New_Form::get_instance();
305 - Global_Settings::get_instance();
306 - Global_Settings_Defaults::get_instance();
307 - Email_Summary::get_instance();
308 - Compliance_Settings::get_instance();
309 - Form_Settings_Api::get_instance();
310 - Events_Scheduler::get_instance();
311 - AI_Form_Builder::get_instance();
312 - Field_Mapping::get_instance();
313 - Background_Process::get_instance();
314 - Page_Builders::get_instance();
315 - Rest_Api::get_instance();
316 - AI_Helper::get_instance();
317 - AI_Auth::get_instance();
318 - Updater::get_instance();
319 - Onboarding::get_instance();
320 - DatabaseRegister::init();
321 - Form_Restriction::get_instance();
322 - Abilities_Registrar::get_instance();
323 - // Initializing Compatibilities.
324 - Astra::get_instance();
325 -
326 - /**
327 - * Load core files necessary for the Spectra block.
328 - * This method is called in the Spectra block loader to ensure core files are loaded during the 'plugins_loaded' action.
329 - *
330 - * Note: This code is added at the bottom to ensure the form block is loaded first,
331 - * followed by the Spectra blocks such as heading, image, and icon blocks.
332 - */
333 278 $this->load_core_files();
334 279 }
335 280
336 281 /**