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