PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.3
GiveWP – Donation Plugin and Fundraising Platform v2.9.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 / includes / gateways / stripe / class-give-stripe.php
give / includes / gateways / stripe Last commit date
includes 5 years ago class-give-stripe.php 6 years ago
class-give-stripe.php
228 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', array( $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 array(
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 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-logs.php';
151 }
152 }
153
154 /**
155 * This function will be used to load frontend files.
156 *
157 * @since 2.6.0
158 * @access public
159 *
160 * @return void
161 */
162 public function include_frontend_files() {
163
164 // General.
165 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/actions.php';
166 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/filters.php';
167 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-scripts.php';
168
169 // Classes.
170 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-logger.php';
171 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-invoice.php';
172 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-customer.php';
173 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-intent.php';
174 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-method.php';
175 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-checkout-session.php';
176 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-gateway.php';
177 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-webhooks.php';
178
179 // Payment Methods.
180 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-card.php';
181 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-checkout.php';
182 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-sepa.php';
183 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-becs.php';
184 }
185
186 /**
187 * Register the payment methods supported by Stripe.
188 *
189 * @access public
190 * @since 2.5.0
191 *
192 * @param array $gateways List of registered gateways.
193 *
194 * @return array
195 */
196 public function register_gateway( $gateways ) {
197
198 // Stripe - On page credit card.
199 $gateways['stripe'] = array(
200 'admin_label' => __( 'Stripe - Credit Card', 'give' ),
201 'checkout_label' => __( 'Credit Card', 'give' ),
202 );
203
204 // Stripe - Off page credit card (also known as Checkout).
205 $gateways['stripe_checkout'] = array(
206 'admin_label' => __( 'Stripe - Checkout', 'give' ),
207 'checkout_label' => __( 'Credit Card', 'give' ),
208 );
209
210 // Stripe - SEPA Direct Debit.
211 $gateways['stripe_sepa'] = array(
212 'admin_label' => __( 'Stripe - SEPA Direct Debit', 'give' ),
213 'checkout_label' => __( 'SEPA Direct Debit', 'give' ),
214 );
215
216 // Stripe - BECS Direct Debit.
217 $gateways['stripe_becs'] = array(
218 'admin_label' => __( 'Stripe - BECS Direct Debit', 'give' ),
219 'checkout_label' => __( 'BECS Direct Debit', 'give' ),
220 );
221
222 return $gateways;
223 }
224 }
225 }
226
227 new Give_Stripe();
228