PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.5.12
GiveWP – Donation Plugin and Fundraising Platform v2.5.12
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 6 years ago class-give-stripe.php 6 years ago
class-give-stripe.php
210 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('admin_notices', function() {
99
100 // Register error notice.
101 Give()->notices->register_notice(
102 array(
103 'id' => 'give-recurring-fatal-error',
104 'type' => 'error',
105 'description' => sprintf(
106 __( '<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="%s" target="_blank">WP Rollback</a> plugin and <a href="%s" target="_blank">contact support</a> for prompt assistance.', 'give'),
107 'https://wordpress.org/plugins/wp-rollback/',
108 'https://givewp.com/support/'
109 ),
110 'show' => true,
111 )
112 );
113 });
114 }
115 }
116
117 return;
118 }
119
120 // Load Stripe SDK.
121 give_stripe_load_stripe_sdk();
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 // Load these files when accessed from admin.
141 if ( is_admin() ) {
142 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-admin-settings.php';
143 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-logs.php';
144 }
145 }
146
147 /**
148 * This function will be used to load frontend files.
149 *
150 * @since 2.6.0
151 * @access public
152 *
153 * @return void
154 */
155 public function include_frontend_files() {
156
157 // General.
158 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/actions.php';
159 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-scripts.php';
160
161 // Classes.
162 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-logger.php';
163 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-invoice.php';
164 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-customer.php';
165 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-intent.php';
166 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-method.php';
167 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-checkout-session.php';
168 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-gateway.php';
169 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-webhooks.php';
170
171 // Payment Methods.
172 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-card.php';
173 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-checkout.php';
174
175 // Deprecations.
176 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-functions.php';
177 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-filters.php';
178 }
179
180 /**
181 * Register the payment methods supported by Stripe.
182 *
183 * @access public
184 * @since 2.5.0
185 *
186 * @param array $gateways List of registered gateways.
187 *
188 * @return array
189 */
190 public function register_gateway( $gateways ) {
191
192 // Stripe - On page credit card.
193 $gateways['stripe'] = array(
194 'admin_label' => __( 'Stripe - Credit Card', 'give' ),
195 'checkout_label' => __( 'Credit Card', 'give' ),
196 );
197
198 // Stripe - Off page credit card (also known as Checkout).
199 $gateways['stripe_checkout'] = array(
200 'admin_label' => __( 'Stripe - Checkout', 'give' ),
201 'checkout_label' => __( 'Credit Card', 'give' ),
202 );
203
204 return $gateways;
205 }
206 }
207 }
208
209 new Give_Stripe();
210