PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.3
GiveWP – Donation Plugin and Fundraising Platform v2.22.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
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
270 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.19.6 - remove donors in favor of DonorRepositoryProxy
184 *
185 * @since 2.8.0
186 */
187 private function bindClasses()
188 {
189 give()->singleton('routeForm', Form::class);
190
191 $this->bindInstance('roles', 'Give_Roles', 'class-give-roles.php');
192 $this->bindInstance('give_settings', 'Give_Admin_Settings', 'admin/class-admin-settings.php');
193 $this->bindInstance('api', 'Give_API', 'api/class-give-api.php');
194 $this->bindInstance('emails', 'Give_Emails', 'emails/class-give-emails.php');
195 $this->bindInstance('email_tags', 'Give_Email_Template_Tags', 'emails/class-give-email-tags.php');
196 $this->bindInstance('html', 'Give_HTML_Elements', 'admin/class-give-html-elements.php', true);
197 $this->bindInstance('donor_meta', 'Give_DB_Donor_Meta', 'database/class-give-db-donor-meta.php');
198 $this->bindInstance('tooltips', 'Give_Tooltips', 'class-give-tooltips.php');
199 $this->bindInstance('notices', 'Give_Notices', 'class-notices.php');
200 $this->bindInstance('payment_meta', 'Give_DB_Payment_Meta', 'database/class-give-db-payment-meta.php');
201 $this->bindInstance('logs', 'Give_Logging', 'class-give-logging.php');
202 $this->bindInstance('form_meta', 'Give_DB_Form_Meta', 'database/class-give-db-form-meta.php');
203 $this->bindInstance(
204 'sequential_donation_db',
205 'Give_DB_Sequential_Ordering',
206 'database/class-give-db-sequential-ordering.php'
207 );
208 $this->bindInstance('async_process', 'Give_Async_Process', 'class-give-async-process.php');
209 $this->bindInstance('scripts', 'Give_Scripts', 'class-give-scripts.php');
210 $this->bindInstance(
211 'seq_donation_number',
212 'Give_Sequential_Donation_Number',
213 'payments/class-give-sequential-donation-number.php',
214 true
215 );
216 $this->bindInstance('comment', 'Give_Comment', 'class-give-comment.php', true);
217 $this->bindInstance('session_db', 'Give_DB_Sessions', 'database/class-give-db-sessions.php');
218 $this->bindInstance('session', 'Give_Session', 'class-give-session.php', true);
219 }
220
221 /**
222 * A helper for loading legacy classes that do not use autoloading, then binding their instance
223 * to the container.
224 *
225 * @since 2.8.0
226 *
227 * @param string $alias
228 * @param string|Closure $class
229 * @param string $includesPath
230 * @param bool $singleton
231 */
232 private function bindInstance($alias, $class, $includesPath, $singleton = false)
233 {
234 require_once GIVE_PLUGIN_DIR . "includes/$includesPath";
235
236 if ($class instanceof Closure) {
237 give()->instance($alias, $class());
238 } elseif ($singleton) {
239 give()->instance($alias, $class::get_instance());
240 } else {
241 give()->instance($alias, new $class());
242 }
243 }
244
245 /**
246 * What type of request is this?
247 *
248 * @since 2.8.0
249 *
250 * @param string $type admin, ajax, cron or frontend.
251 *
252 * @return bool
253 */
254 private function is_request($type)
255 {
256 switch ($type) {
257 case 'admin':
258 return is_admin();
259 case 'ajax':
260 return defined('DOING_AJAX');
261 case 'cron':
262 return defined('DOING_CRON');
263 case 'frontend':
264 return ( ! is_admin() || defined('DOING_AJAX')) && ! defined('DOING_CRON') && ! defined('REST_REQUEST');
265 case 'wpcli':
266 return defined('WP_CLI') && WP_CLI;
267 }
268 }
269 }
270