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