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