PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.24.0
GiveWP – Donation Plugin and Fundraising Platform v2.24.0
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / ServiceProviders / LegacyServiceProvider.php
give / src / ServiceProviders Last commit date
Exceptions 3 years ago GlobalStyles.php 3 years ago LegacyServiceProvider.php 3 years ago Onboarding.php 3 years ago PaymentGateways.php 4 years ago RequestType.php 3 years ago RestAPI.php 3 years ago Routes.php 4 years ago ServiceProvider.php 4 years ago
LegacyServiceProvider.php
274 lines
1 <?php
2
3 namespace Give\ServiceProviders;
4
5 use _PHPStan_9a6ded56a\Nette\Neon\Exception;
6 use Closure;
7 use Give\Route\Form;
8
9 /**
10 * Class LegacyServiceProvider
11 *
12 * This handles the loading of all of the legacy codebase included in the /includes directory.
13 * DO NOT EXTEND THIS WITH NEW CODE as it is intended to shrink over time as we migrate over
14 * to the new ways of doing things.
15 */
16 class LegacyServiceProvider implements ServiceProvider
17 {
18 /**
19 * @inheritDoc
20 */
21 public function register()
22 {
23 $this->includeLegacyFiles();
24 $this->bindClasses();
25 }
26
27 /**
28 * @inheritDoc
29 */
30 public function boot()
31 {
32 }
33
34 /**
35 * Load all the legacy class files since they don't have auto-loading
36 *
37 * @since 2.8.0
38 */
39 private function includeLegacyFiles()
40 {
41 global $give_options;
42
43 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cache-setting.php';
44
45 /**
46 * Load libraries.
47 */
48 if (!class_exists('WP_Async_Request')) {
49 include_once GIVE_PLUGIN_DIR . 'includes/libraries/wp-async-request.php';
50 }
51
52 if (!class_exists('WP_Background_Process')) {
53 include_once GIVE_PLUGIN_DIR . 'includes/libraries/wp-background-process.php';
54 }
55
56 require_once GIVE_PLUGIN_DIR . 'includes/setting-functions.php';
57 require_once GIVE_PLUGIN_DIR . 'includes/country-functions.php';
58 require_once GIVE_PLUGIN_DIR . 'includes/template-functions.php';
59 require_once GIVE_PLUGIN_DIR . 'includes/misc-functions.php';
60 require_once GIVE_PLUGIN_DIR . 'includes/forms/functions.php';
61 require_once GIVE_PLUGIN_DIR . 'includes/ajax-functions.php';
62 require_once GIVE_PLUGIN_DIR . 'includes/currency-functions.php';
63 require_once GIVE_PLUGIN_DIR . 'includes/price-functions.php';
64 require_once GIVE_PLUGIN_DIR . 'includes/user-functions.php';
65 require_once GIVE_PLUGIN_DIR . 'includes/donors/frontend-donor-functions.php';
66 require_once GIVE_PLUGIN_DIR . 'includes/payments/functions.php';
67 require_once GIVE_PLUGIN_DIR . 'includes/gateways/functions.php';
68
69 /**
70 * Load plugin files
71 */
72 require_once GIVE_PLUGIN_DIR . 'includes/admin/class-admin-settings.php';
73 $give_options = give_get_settings();
74
75 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cron.php';
76 require_once GIVE_PLUGIN_DIR . 'includes/class-give-async-process.php';
77 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cache.php';
78 require_once GIVE_PLUGIN_DIR . 'includes/post-types.php';
79 require_once GIVE_PLUGIN_DIR . 'includes/filters.php';
80 require_once GIVE_PLUGIN_DIR . 'includes/api/class-give-api-v2.php';
81 require_once GIVE_PLUGIN_DIR . 'includes/class-give-tooltips.php';
82 require_once GIVE_PLUGIN_DIR . 'includes/class-notices.php';
83 require_once GIVE_PLUGIN_DIR . 'includes/class-give-translation.php';
84 require_once GIVE_PLUGIN_DIR . 'includes/class-give-license-handler.php';
85 require_once GIVE_PLUGIN_DIR . 'includes/admin/class-give-html-elements.php';
86
87 require_once GIVE_PLUGIN_DIR . 'includes/class-give-scripts.php';
88 require_once GIVE_PLUGIN_DIR . 'includes/class-give-roles.php';
89 require_once GIVE_PLUGIN_DIR . 'includes/class-give-donate-form.php';
90
91 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db.php';
92 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-meta.php';
93 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-comments.php';
94 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-comments-meta.php';
95 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-donors.php';
96 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-donor-meta.php';
97 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-form-meta.php';
98 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-sequential-ordering.php';
99 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-sessions.php';
100 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-payment-meta.php';
101
102 require_once GIVE_PLUGIN_DIR . 'includes/class-give-donor.php';
103 require_once GIVE_PLUGIN_DIR . 'includes/class-give-stats.php';
104 require_once GIVE_PLUGIN_DIR . 'includes/class-give-session.php';
105 require_once GIVE_PLUGIN_DIR . 'includes/class-give-logging.php';
106 require_once GIVE_PLUGIN_DIR . 'includes/class-give-comment.php';
107
108 require_once GIVE_PLUGIN_DIR . 'includes/forms/widget.php';
109 require_once GIVE_PLUGIN_DIR . 'includes/forms/class-give-forms-query.php';
110 require_once GIVE_PLUGIN_DIR . 'includes/forms/template.php';
111 require_once GIVE_PLUGIN_DIR . 'includes/shortcodes.php';
112 require_once GIVE_PLUGIN_DIR . 'includes/formatting.php';
113 require_once GIVE_PLUGIN_DIR . 'includes/error-tracking.php';
114 require_once GIVE_PLUGIN_DIR . 'includes/login-register.php';
115 require_once GIVE_PLUGIN_DIR . 'includes/plugin-compatibility.php';
116 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-classes.php';
117 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-functions.php';
118 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-actions.php';
119 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-filters.php';
120
121 require_once GIVE_PLUGIN_DIR . 'includes/process-donation.php';
122 require_once GIVE_PLUGIN_DIR . 'includes/payments/backward-compatibility.php';
123 require_once GIVE_PLUGIN_DIR . 'includes/payments/actions.php';
124 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-payment-stats.php';
125 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-payments-query.php';
126 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-give-payment.php';
127 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-give-sequential-donation-number.php';
128
129 require_once GIVE_PLUGIN_DIR . 'includes/gateways/actions.php';
130 require_once GIVE_PLUGIN_DIR . 'includes/gateways/paypal/paypal-standard.php';
131 require_once GIVE_PLUGIN_DIR . 'includes/gateways/offline-donations.php';
132 require_once GIVE_PLUGIN_DIR . 'includes/gateways/manual.php';
133 require_once GIVE_PLUGIN_DIR . 'includes/emails/class-give-emails.php';
134 require_once GIVE_PLUGIN_DIR . 'includes/emails/class-give-email-tags.php';
135 require_once GIVE_PLUGIN_DIR . 'includes/admin/emails/class-email-notifications.php';
136 require_once GIVE_PLUGIN_DIR . 'includes/emails/functions.php';
137 require_once GIVE_PLUGIN_DIR . 'includes/emails/template.php';
138 require_once GIVE_PLUGIN_DIR . 'includes/emails/actions.php';
139
140 require_once GIVE_PLUGIN_DIR . 'includes/donors/class-give-donors-query.php';
141 require_once GIVE_PLUGIN_DIR . 'includes/donors/class-give-donor-wall.php';
142 require_once GIVE_PLUGIN_DIR . 'includes/donors/class-give-donor-stats.php';
143 require_once GIVE_PLUGIN_DIR . 'includes/donors/backward-compatibility.php';
144 require_once GIVE_PLUGIN_DIR . 'includes/donors/actions.php';
145
146 require_once GIVE_PLUGIN_DIR . 'includes/admin/upgrades/class-give-updates.php';
147
148 require_once GIVE_PLUGIN_DIR . 'blocks/load.php';
149
150 // Include Views
151 require_once GIVE_PLUGIN_DIR . 'src/Views/Views.php';
152
153 if (defined('WP_CLI') && WP_CLI) {
154 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cli-commands.php';
155 }
156
157 // Load file for frontend
158 if ($this->is_request('frontend')) {
159 require_once GIVE_PLUGIN_DIR . 'includes/frontend/class-give-frontend.php';
160 }
161
162 if ($this->is_request('admin') || $this->is_request('wpcli')) {
163 require_once GIVE_PLUGIN_DIR . 'includes/admin/class-give-admin.php';
164 }// End if().
165
166 require_once GIVE_PLUGIN_DIR . 'includes/actions.php';
167 require_once GIVE_PLUGIN_DIR . 'includes/install.php';
168
169 // This conditional check will add backward compatibility to older Stripe versions (i.e. < 2.2.0) when used with Give 2.5.0.
170 if (
171 !defined('GIVE_STRIPE_VERSION') ||
172 (
173 defined('GIVE_STRIPE_VERSION') &&
174 version_compare(GIVE_STRIPE_VERSION, '2.2.0', '>=')
175 )
176 ) {
177 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/class-give-stripe.php';
178 }
179 }
180
181 /**
182 * Binds the legacy classes to the service provider
183 *
184 * @since 2.19.6 - remove donors in favor of DonorRepositoryProxy
185 *
186 * @since 2.8.0
187 */
188 private function bindClasses()
189 {
190 give()->singleton('routeForm', Form::class);
191
192 $this->bindInstance('roles', 'Give_Roles', 'class-give-roles.php');
193 $this->bindInstance('give_settings', 'Give_Admin_Settings', 'admin/class-admin-settings.php');
194 $this->bindInstance('api', 'Give_API', 'api/class-give-api.php');
195 $this->bindInstance('emails', 'Give_Emails', 'emails/class-give-emails.php');
196 $this->bindInstance('email_tags', 'Give_Email_Template_Tags', 'emails/class-give-email-tags.php');
197 $this->bindInstance('html', 'Give_HTML_Elements', 'admin/class-give-html-elements.php', true);
198 $this->bindInstance('donor_meta', 'Give_DB_Donor_Meta', 'database/class-give-db-donor-meta.php');
199 $this->bindInstance('tooltips', 'Give_Tooltips', 'class-give-tooltips.php');
200 $this->bindInstance('notices', 'Give_Notices', 'class-notices.php');
201 $this->bindInstance('payment_meta', 'Give_DB_Payment_Meta', 'database/class-give-db-payment-meta.php');
202 $this->bindInstance('logs', 'Give_Logging', 'class-give-logging.php');
203 $this->bindInstance('form_meta', 'Give_DB_Form_Meta', 'database/class-give-db-form-meta.php');
204 $this->bindInstance(
205 'sequential_donation_db',
206 'Give_DB_Sequential_Ordering',
207 'database/class-give-db-sequential-ordering.php'
208 );
209 $this->bindInstance('async_process', 'Give_Async_Process', 'class-give-async-process.php');
210 $this->bindInstance('scripts', 'Give_Scripts', 'class-give-scripts.php');
211 $this->bindInstance(
212 'seq_donation_number',
213 'Give_Sequential_Donation_Number',
214 'payments/class-give-sequential-donation-number.php',
215 true
216 );
217 $this->bindInstance('comment', 'Give_Comment', 'class-give-comment.php', true);
218 $this->bindInstance('session_db', 'Give_DB_Sessions', 'database/class-give-db-sessions.php');
219 $this->bindInstance('session', 'Give_Session', 'class-give-session.php', true);
220 }
221
222 /**
223 * A helper for loading legacy classes that do not use autoloading, then binding their instance
224 * to the container.
225 *
226 * @since 2.8.0
227 *
228 * @param string $alias
229 * @param string|Closure $class
230 * @param string $includesPath
231 * @param bool $singleton
232 */
233 private function bindInstance($alias, $class, $includesPath, $singleton = false)
234 {
235 require_once GIVE_PLUGIN_DIR . "includes/$includesPath";
236
237 if ($class instanceof Closure) {
238 give()->instance($alias, $class());
239 } elseif ($singleton) {
240 give()->instance($alias, $class::get_instance());
241 } else {
242 give()->instance($alias, new $class());
243 }
244 }
245
246 /**
247 * What type of request is this?
248 *
249 * @since 2.8.0
250 *
251 * @param string $type admin, ajax, cron or frontend.
252 *
253 * @return bool
254 * @throws UnknownRequestTypeException
255 */
256 private function is_request($type)
257 {
258 switch ($type) {
259 case RequestType::ADMIN:
260 return is_admin();
261 case RequestType::AJAX:
262 return defined('DOING_AJAX');
263 case RequestType::CRON:
264 return defined('DOING_CRON');
265 case RequestType::FRONTEND:
266 return (!is_admin() || defined('DOING_AJAX')) && !defined('DOING_CRON') && !defined('REST_REQUEST');
267 case RequestType::WPCLI:
268 return defined('WP_CLI') && WP_CLI;
269 default:
270 throw new UnknownRequestTypeException($type);
271 }
272 }
273 }
274