PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.1
GiveWP – Donation Plugin and Fundraising Platform v2.10.1
4.16.4 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 / includes / gateways / stripe / class-give-stripe.php
give / includes / gateways / stripe Last commit date
includes 5 years ago class-give-stripe.php 5 years ago
class-give-stripe.php
227 lines
1 <?php
2 /**
3 * Give - Stripe Core
4 *
5 * @since 2.5.0
6 *
7 * @package Give
8 * @subpackage Stripe Core
9 * @copyright Copyright (c) 2019, GiveWP
10 * @license https://opensource.org/licenses/gpl-license GNU Public License
11 */
12
13 // Exit, if accessed directly.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 if ( ! class_exists( 'Give_Stripe' ) ) {
19
20 /**
21 * Class Give_Stripe
22 */
23 class Give_Stripe {
24
25 /**
26 * Give_Stripe() constructor.
27 *
28 * @since 2.5.0
29 * @access public
30 *
31 * @return void
32 */
33 public function __construct() {
34
35 add_filter( 'give_payment_gateways', [ $this, 'register_gateway' ] );
36
37 /**
38 * Using hardcoded constant for backward compatibility of Give 2.5.0 with Recurring 1.8.13 when Stripe Premium is not active.
39 *
40 * This code will handle extreme rare scenario.
41 *
42 * @since 2.5.0
43 *
44 * @todo Remove this constant declaration after 2-3 Give core minor releases.
45 */
46 if ( ! defined( 'GIVE_STRIPE_BASENAME' ) ) {
47 define( 'GIVE_STRIPE_BASENAME', 'give-stripe/give-stripe.php' );
48 }
49
50 $this->includes();
51 }
52
53 /**
54 * This function is used to include the related Stripe core files.
55 *
56 * @since 2.5.0
57 * @access public
58 *
59 * @return void
60 */
61 public function includes() {
62
63 // Include files which are necessary to load in admin but not in context of `is_admin`.
64 $this->include_admin_files();
65
66 // Load files which are necessary for front as well as admin end.
67 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-helpers.php';
68
69 // Bailout, if any of the Stripe gateways are not active.
70 if ( ! give_stripe_is_any_payment_method_active() ) {
71
72 // Hardcoded recurring plugin basename to show notice even when recurring addon is deactivated.
73 $recurring_plugin_basename = 'give-recurring/give-recurring.php';
74 $recurring_file_path = WP_CONTENT_DIR . '/plugins/' . $recurring_plugin_basename;
75
76 // If recurring donations add-on exists.
77 if ( file_exists( $recurring_file_path ) ) {
78
79 // If `get_plugin_data` fn not exists then include the file.
80 if ( ! function_exists( 'get_plugin_data' ) ) {
81 require_once ABSPATH . 'wp-admin/includes/plugin.php';
82 }
83
84 $recurring_plugin_data = get_plugin_data( $recurring_file_path );
85
86 // Avoid fatal error for smooth update for customers.
87 if (
88 isset( $recurring_plugin_data['Version'] ) &&
89 version_compare( '1.9.3', $recurring_plugin_data['Version'], '>=' )
90 ) {
91
92 // Load Stripe SDK.
93 give_stripe_load_stripe_sdk();
94
95 // Include frontend files.
96 $this->include_frontend_files();
97
98 add_action(
99 'admin_notices',
100 function() {
101
102 // Register error notice.
103 Give()->notices->register_notice(
104 [
105 'id' => 'give-recurring-fatal-error',
106 'type' => 'error',
107 'description' => sprintf(
108 __( '<strong>Action Needed:</strong> Please update the Recurring Donations add-on to version <strong>1.9.4+</strong> in order to be compatible with GiveWP <strong>2.5.5+</strong>. If you are experiencing any issues please rollback GiveWP to 2.5.4 or below using the <a href="%1$s" target="_blank">WP Rollback</a> plugin and <a href="%2$s" target="_blank">contact support</a> for prompt assistance.', 'give' ),
109 'https://wordpress.org/plugins/wp-rollback/',
110 'https://givewp.com/support/'
111 ),
112 'show' => true,
113 ]
114 );
115 }
116 );
117 }
118 }
119
120 return;
121 }
122
123 // Load Stripe SDK.
124 give_stripe_load_stripe_sdk();
125
126 // Include frontend files.
127 $this->include_frontend_files();
128 }
129
130 /**
131 * This function is used to include admin files.
132 *
133 * @since 2.6.0
134 * @access public
135 *
136 * @return void
137 */
138 public function include_admin_files() {
139 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-helpers.php';
140 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-actions.php';
141 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-filters.php';
142
143 // Deprecations.
144 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-functions.php';
145 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-filters.php';
146
147 // Load these files when accessed from admin.
148 if ( is_admin() ) {
149 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-admin-settings.php';
150 }
151 }
152
153 /**
154 * This function will be used to load frontend files.
155 *
156 * @since 2.6.0
157 * @access public
158 *
159 * @return void
160 */
161 public function include_frontend_files() {
162
163 // General.
164 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/actions.php';
165 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/filters.php';
166 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-scripts.php';
167
168 // Classes.
169 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-logger.php';
170 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-invoice.php';
171 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-customer.php';
172 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-intent.php';
173 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-method.php';
174 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-checkout-session.php';
175 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-gateway.php';
176 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-webhooks.php';
177
178 // Payment Methods.
179 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-card.php';
180 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-checkout.php';
181 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-sepa.php';
182 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-becs.php';
183 }
184
185 /**
186 * Register the payment methods supported by Stripe.
187 *
188 * @access public
189 * @since 2.5.0
190 *
191 * @param array $gateways List of registered gateways.
192 *
193 * @return array
194 */
195 public function register_gateway( $gateways ) {
196
197 // Stripe - On page credit card.
198 $gateways['stripe'] = [
199 'admin_label' => __( 'Stripe - Credit Card', 'give' ),
200 'checkout_label' => __( 'Credit Card', 'give' ),
201 ];
202
203 // Stripe - Off page credit card (also known as Checkout).
204 $gateways['stripe_checkout'] = [
205 'admin_label' => __( 'Stripe - Checkout', 'give' ),
206 'checkout_label' => __( 'Credit Card', 'give' ),
207 ];
208
209 // Stripe - SEPA Direct Debit.
210 $gateways['stripe_sepa'] = [
211 'admin_label' => __( 'Stripe - SEPA Direct Debit', 'give' ),
212 'checkout_label' => __( 'SEPA Direct Debit', 'give' ),
213 ];
214
215 // Stripe - BECS Direct Debit.
216 $gateways['stripe_becs'] = [
217 'admin_label' => __( 'Stripe - BECS Direct Debit', 'give' ),
218 'checkout_label' => __( 'BECS Direct Debit', 'give' ),
219 ];
220
221 return $gateways;
222 }
223 }
224 }
225
226 new Give_Stripe();
227