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