PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.0
GiveWP – Donation Plugin and Fundraising Platform v2.27.0
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 3 years ago class-give-stripe.php 4 years ago
class-give-stripe.php
220 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 * @since 2.11.0 Stripe sdk loading logic has been removed because
58 * Composer autoloader will load it when required.
59 * @access public
60 *
61 * @return void
62 */
63 public function includes() {
64
65 // Include files which are necessary to load in admin but not in context of `is_admin`.
66 $this->include_admin_files();
67
68 // Load files which are necessary for front as well as admin end.
69 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-helpers.php';
70
71 // Bailout, if any of the Stripe gateways are not active.
72 if ( ! give_stripe_is_any_payment_method_active() ) {
73
74 // Hardcoded recurring plugin basename to show notice even when recurring addon is deactivated.
75 $recurring_plugin_basename = 'give-recurring/give-recurring.php';
76 $recurring_file_path = WP_CONTENT_DIR . '/plugins/' . $recurring_plugin_basename;
77
78 // If recurring donations add-on exists.
79 if ( file_exists( $recurring_file_path ) ) {
80
81 // If `get_plugin_data` fn not exists then include the file.
82 if ( ! function_exists( 'get_plugin_data' ) ) {
83 require_once ABSPATH . 'wp-admin/includes/plugin.php';
84 }
85
86 $recurring_plugin_data = get_plugin_data( $recurring_file_path );
87
88 // Avoid fatal error for smooth update for customers.
89 if (
90 isset( $recurring_plugin_data['Version'] ) &&
91 version_compare( '1.9.3', $recurring_plugin_data['Version'], '>=' )
92 ) {
93
94 // Include frontend files.
95 $this->include_frontend_files();
96
97 add_action(
98 'admin_notices',
99 function() {
100
101 // Register error notice.
102 Give()->notices->register_notice(
103 [
104 'id' => 'give-recurring-fatal-error',
105 'type' => 'error',
106 'description' => sprintf(
107 __( '<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' ),
108 'https://wordpress.org/plugins/wp-rollback/',
109 'https://givewp.com/support/'
110 ),
111 'show' => true,
112 ]
113 );
114 }
115 );
116 }
117 }
118
119 return;
120 }
121
122 // Include frontend files.
123 $this->include_frontend_files();
124 }
125
126 /**
127 * This function is used to include admin files.
128 *
129 * @since 2.6.0
130 * @access public
131 *
132 * @return void
133 */
134 public function include_admin_files() {
135 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-helpers.php';
136 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-actions.php';
137 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-filters.php';
138
139 // Deprecations.
140 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-functions.php';
141 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-filters.php';
142
143 // Load these files when accessed from admin.
144 if ( is_admin() ) {
145 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-admin-settings.php';
146 }
147 }
148
149 /**
150 * This function will be used to load frontend files.
151 *
152 * @since 2.6.0
153 * @access public
154 *
155 * @return void
156 */
157 public function include_frontend_files() {
158
159 // General.
160 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/actions.php';
161 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/filters.php';
162 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-scripts.php';
163
164 // Classes.
165 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-logger.php';
166 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-invoice.php';
167 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-customer.php';
168 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-intent.php';
169 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-method.php';
170 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-checkout-session.php';
171 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-gateway.php';
172 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-webhooks.php';
173
174 // Payment Methods.
175 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-card.php';
176 }
177
178 /**
179 * Register the payment methods supported by Stripe.
180 *
181 * @access public
182 * @since 2.5.0
183 *
184 * @param array $gateways List of registered gateways.
185 *
186 * @return array
187 */
188 public function register_gateway( $gateways ) {
189
190 // Stripe - On page credit card.
191 $gateways['stripe'] = [
192 'admin_label' => __( 'Stripe - Credit Card', 'give' ),
193 'checkout_label' => __( 'Credit Card', 'give' ),
194 ];
195
196 // Stripe - Off page credit card (also known as Checkout).
197 $gateways['stripe_checkout'] = [
198 'admin_label' => __( 'Stripe - Checkout', 'give' ),
199 'checkout_label' => __( 'Credit Card', 'give' ),
200 ];
201
202 // Stripe - SEPA Direct Debit.
203 $gateways['stripe_sepa'] = [
204 'admin_label' => __( 'Stripe - SEPA Direct Debit', 'give' ),
205 'checkout_label' => __( 'SEPA Direct Debit', 'give' ),
206 ];
207
208 // Stripe - BECS Direct Debit.
209 $gateways['stripe_becs'] = [
210 'admin_label' => __( 'Stripe - BECS Direct Debit', 'give' ),
211 'checkout_label' => __( 'BECS Direct Debit', 'give' ),
212 ];
213
214 return $gateways;
215 }
216 }
217 }
218
219 new Give_Stripe();
220