PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.3
GiveWP – Donation Plugin and Fundraising Platform v3.0.3
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 2 years ago Onboarding.php 3 years ago PaymentGateways.php 3 years ago RequestType.php 3 years ago RestAPI.php 3 years ago Routes.php 4 years ago ServiceProvider.php 4 years ago
LegacyServiceProvider.php
279 lines
1 <?php
2
3 namespace Give\ServiceProviders;
4
5 use _PHPStan_9a6ded56a\Nette\Neon\Exception;
6 use Closure;
7 use Give\PaymentGateways\Gateways\Stripe\LegacyStripeAdapter;
8 use Give\Route\Form;
9
10 /**
11 * Class LegacyServiceProvider
12 *
13 * This handles the loading of all of the legacy codebase included in the /includes directory.
14 * DO NOT EXTEND THIS WITH NEW CODE as it is intended to shrink over time as we migrate over
15 * to the new ways of doing things.
16 */
17 class LegacyServiceProvider implements ServiceProvider
18 {
19 /**
20 * @inheritDoc
21 */
22 public function register()
23 {
24 // TODO: move this
25 // this needs to load before the LegacyServiceProvider loads in GiveWP.
26 give(LegacyStripeAdapter::class)->addToStripeSupportedPaymentMethodsList();
27
28 $this->includeLegacyFiles();
29 $this->bindClasses();
30 }
31
32 /**
33 * @inheritDoc
34 */
35 public function boot()
36 {
37 }
38
39 /**
40 * Load all the legacy class files since they don't have auto-loading
41 *
42 * @since 3.0.0 remove the manual (Test Donations) gateway from loading in favor of the new Test Donations gateway
43 * @since 2.8.0
44 */
45 private function includeLegacyFiles()
46 {
47 global $give_options;
48
49 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cache-setting.php';
50
51 /**
52 * Load libraries.
53 */
54 if (!class_exists('WP_Async_Request')) {
55 include_once GIVE_PLUGIN_DIR . 'includes/libraries/wp-async-request.php';
56 }
57
58 if (!class_exists('WP_Background_Process')) {
59 include_once GIVE_PLUGIN_DIR . 'includes/libraries/wp-background-process.php';
60 }
61
62 require_once GIVE_PLUGIN_DIR . 'includes/setting-functions.php';
63 require_once GIVE_PLUGIN_DIR . 'includes/country-functions.php';
64 require_once GIVE_PLUGIN_DIR . 'includes/template-functions.php';
65 require_once GIVE_PLUGIN_DIR . 'includes/misc-functions.php';
66 require_once GIVE_PLUGIN_DIR . 'includes/forms/functions.php';
67 require_once GIVE_PLUGIN_DIR . 'includes/ajax-functions.php';
68 require_once GIVE_PLUGIN_DIR . 'includes/currency-functions.php';
69 require_once GIVE_PLUGIN_DIR . 'includes/price-functions.php';
70 require_once GIVE_PLUGIN_DIR . 'includes/user-functions.php';
71 require_once GIVE_PLUGIN_DIR . 'includes/donors/frontend-donor-functions.php';
72 require_once GIVE_PLUGIN_DIR . 'includes/payments/functions.php';
73 require_once GIVE_PLUGIN_DIR . 'includes/gateways/functions.php';
74
75 /**
76 * Load plugin files
77 */
78 require_once GIVE_PLUGIN_DIR . 'includes/admin/class-admin-settings.php';
79 $give_options = give_get_settings();
80
81 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cron.php';
82 require_once GIVE_PLUGIN_DIR . 'includes/class-give-async-process.php';
83 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cache.php';
84 require_once GIVE_PLUGIN_DIR . 'includes/post-types.php';
85 require_once GIVE_PLUGIN_DIR . 'includes/filters.php';
86 require_once GIVE_PLUGIN_DIR . 'includes/api/class-give-api-v2.php';
87 require_once GIVE_PLUGIN_DIR . 'includes/class-give-tooltips.php';
88 require_once GIVE_PLUGIN_DIR . 'includes/class-notices.php';
89 require_once GIVE_PLUGIN_DIR . 'includes/class-give-translation.php';
90 require_once GIVE_PLUGIN_DIR . 'includes/class-give-license-handler.php';
91 require_once GIVE_PLUGIN_DIR . 'includes/admin/class-give-html-elements.php';
92
93 require_once GIVE_PLUGIN_DIR . 'includes/class-give-scripts.php';
94 require_once GIVE_PLUGIN_DIR . 'includes/class-give-roles.php';
95 require_once GIVE_PLUGIN_DIR . 'includes/class-give-donate-form.php';
96
97 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db.php';
98 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-meta.php';
99 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-comments.php';
100 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-comments-meta.php';
101 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-donors.php';
102 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-donor-meta.php';
103 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-form-meta.php';
104 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-sequential-ordering.php';
105 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-sessions.php';
106 require_once GIVE_PLUGIN_DIR . 'includes/database/class-give-db-payment-meta.php';
107
108 require_once GIVE_PLUGIN_DIR . 'includes/class-give-donor.php';
109 require_once GIVE_PLUGIN_DIR . 'includes/class-give-stats.php';
110 require_once GIVE_PLUGIN_DIR . 'includes/class-give-session.php';
111 require_once GIVE_PLUGIN_DIR . 'includes/class-give-logging.php';
112 require_once GIVE_PLUGIN_DIR . 'includes/class-give-comment.php';
113
114 require_once GIVE_PLUGIN_DIR . 'includes/forms/widget.php';
115 require_once GIVE_PLUGIN_DIR . 'includes/forms/class-give-forms-query.php';
116 require_once GIVE_PLUGIN_DIR . 'includes/forms/template.php';
117 require_once GIVE_PLUGIN_DIR . 'includes/shortcodes.php';
118 require_once GIVE_PLUGIN_DIR . 'includes/formatting.php';
119 require_once GIVE_PLUGIN_DIR . 'includes/error-tracking.php';
120 require_once GIVE_PLUGIN_DIR . 'includes/login-register.php';
121 require_once GIVE_PLUGIN_DIR . 'includes/plugin-compatibility.php';
122 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-classes.php';
123 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-functions.php';
124 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-actions.php';
125 require_once GIVE_PLUGIN_DIR . 'includes/deprecated/deprecated-filters.php';
126
127 require_once GIVE_PLUGIN_DIR . 'includes/process-donation.php';
128 require_once GIVE_PLUGIN_DIR . 'includes/payments/backward-compatibility.php';
129 require_once GIVE_PLUGIN_DIR . 'includes/payments/actions.php';
130 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-payment-stats.php';
131 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-payments-query.php';
132 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-give-payment.php';
133 require_once GIVE_PLUGIN_DIR . 'includes/payments/class-give-sequential-donation-number.php';
134
135 require_once GIVE_PLUGIN_DIR . 'includes/gateways/actions.php';
136 require_once GIVE_PLUGIN_DIR . 'includes/gateways/paypal/paypal-standard.php';
137 require_once GIVE_PLUGIN_DIR . 'includes/gateways/offline-donations.php';
138 require_once GIVE_PLUGIN_DIR . 'includes/emails/class-give-emails.php';
139 require_once GIVE_PLUGIN_DIR . 'includes/emails/class-give-email-tags.php';
140 require_once GIVE_PLUGIN_DIR . 'includes/admin/emails/class-email-notifications.php';
141 require_once GIVE_PLUGIN_DIR . 'includes/emails/functions.php';
142 require_once GIVE_PLUGIN_DIR . 'includes/emails/template.php';
143 require_once GIVE_PLUGIN_DIR . 'includes/emails/actions.php';
144
145 require_once GIVE_PLUGIN_DIR . 'includes/donors/class-give-donors-query.php';
146 require_once GIVE_PLUGIN_DIR . 'includes/donors/class-give-donor-wall.php';
147 require_once GIVE_PLUGIN_DIR . 'includes/donors/class-give-donor-stats.php';
148 require_once GIVE_PLUGIN_DIR . 'includes/donors/backward-compatibility.php';
149 require_once GIVE_PLUGIN_DIR . 'includes/donors/actions.php';
150
151 require_once GIVE_PLUGIN_DIR . 'includes/admin/upgrades/class-give-updates.php';
152
153 require_once GIVE_PLUGIN_DIR . 'blocks/load.php';
154
155 // Include Views
156 require_once GIVE_PLUGIN_DIR . 'src/Views/Views.php';
157
158 if (defined('WP_CLI') && WP_CLI) {
159 require_once GIVE_PLUGIN_DIR . 'includes/class-give-cli-commands.php';
160 }
161
162 // Load file for frontend
163 if ($this->is_request('frontend')) {
164 require_once GIVE_PLUGIN_DIR . 'includes/frontend/class-give-frontend.php';
165 }
166
167 if ($this->is_request('admin') || $this->is_request('wpcli')) {
168 require_once GIVE_PLUGIN_DIR . 'includes/admin/class-give-admin.php';
169 }// End if().
170
171 require_once GIVE_PLUGIN_DIR . 'includes/actions.php';
172 require_once GIVE_PLUGIN_DIR . 'includes/install.php';
173
174 // This conditional check will add backward compatibility to older Stripe versions (i.e. < 2.2.0) when used with Give 2.5.0.
175 if (
176 !defined('GIVE_STRIPE_VERSION') ||
177 (
178 defined('GIVE_STRIPE_VERSION') &&
179 version_compare(GIVE_STRIPE_VERSION, '2.2.0', '>=')
180 )
181 ) {
182 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/class-give-stripe.php';
183 }
184 }
185
186 /**
187 * Binds the legacy classes to the service provider
188 *
189 * @since 2.19.6 - remove donors in favor of DonorRepositoryProxy
190 *
191 * @since 2.8.0
192 */
193 private function bindClasses()
194 {
195 give()->singleton('routeForm', Form::class);
196
197 $this->bindInstance('roles', 'Give_Roles', 'class-give-roles.php');
198 $this->bindInstance('give_settings', 'Give_Admin_Settings', 'admin/class-admin-settings.php');
199 $this->bindInstance('api', 'Give_API', 'api/class-give-api.php');
200 $this->bindInstance('emails', 'Give_Emails', 'emails/class-give-emails.php');
201 $this->bindInstance('email_tags', 'Give_Email_Template_Tags', 'emails/class-give-email-tags.php');
202 $this->bindInstance('html', 'Give_HTML_Elements', 'admin/class-give-html-elements.php', true);
203 $this->bindInstance('donor_meta', 'Give_DB_Donor_Meta', 'database/class-give-db-donor-meta.php');
204 $this->bindInstance('tooltips', 'Give_Tooltips', 'class-give-tooltips.php');
205 $this->bindInstance('notices', 'Give_Notices', 'class-notices.php');
206 $this->bindInstance('payment_meta', 'Give_DB_Payment_Meta', 'database/class-give-db-payment-meta.php');
207 $this->bindInstance('logs', 'Give_Logging', 'class-give-logging.php');
208 $this->bindInstance('form_meta', 'Give_DB_Form_Meta', 'database/class-give-db-form-meta.php');
209 $this->bindInstance(
210 'sequential_donation_db',
211 'Give_DB_Sequential_Ordering',
212 'database/class-give-db-sequential-ordering.php'
213 );
214 $this->bindInstance('async_process', 'Give_Async_Process', 'class-give-async-process.php');
215 $this->bindInstance('scripts', 'Give_Scripts', 'class-give-scripts.php');
216 $this->bindInstance(
217 'seq_donation_number',
218 'Give_Sequential_Donation_Number',
219 'payments/class-give-sequential-donation-number.php',
220 true
221 );
222 $this->bindInstance('comment', 'Give_Comment', 'class-give-comment.php', true);
223 $this->bindInstance('session_db', 'Give_DB_Sessions', 'database/class-give-db-sessions.php');
224 $this->bindInstance('session', 'Give_Session', 'class-give-session.php', true);
225 }
226
227 /**
228 * A helper for loading legacy classes that do not use autoloading, then binding their instance
229 * to the container.
230 *
231 * @since 2.8.0
232 *
233 * @param string $alias
234 * @param string|Closure $class
235 * @param string $includesPath
236 * @param bool $singleton
237 */
238 private function bindInstance($alias, $class, $includesPath, $singleton = false)
239 {
240 require_once GIVE_PLUGIN_DIR . "includes/$includesPath";
241
242 if ($class instanceof Closure) {
243 give()->instance($alias, $class());
244 } elseif ($singleton) {
245 give()->instance($alias, $class::get_instance());
246 } else {
247 give()->instance($alias, new $class());
248 }
249 }
250
251 /**
252 * What type of request is this?
253 *
254 * @since 2.8.0
255 *
256 * @param string $type admin, ajax, cron or frontend.
257 *
258 * @return bool
259 * @throws UnknownRequestTypeException
260 */
261 private function is_request($type)
262 {
263 switch ($type) {
264 case RequestType::ADMIN:
265 return is_admin();
266 case RequestType::AJAX:
267 return defined('DOING_AJAX');
268 case RequestType::CRON:
269 return defined('DOING_CRON');
270 case RequestType::FRONTEND:
271 return (!is_admin() || defined('DOING_AJAX')) && !defined('DOING_CRON') && !defined('REST_REQUEST');
272 case RequestType::WPCLI:
273 return defined('WP_CLI') && WP_CLI;
274 default:
275 throw new UnknownRequestTypeException($type);
276 }
277 }
278 }
279