PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.5.6
GiveWP – Donation Plugin and Fundraising Platform v2.5.6
4.16.6 4.16.5.1 4.16.5 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 6 years ago class-give-stripe.php 6 years ago
class-give-stripe.php
199 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 // If `get_plugin_data` fn not exists then include the file.
73 if ( ! function_exists( 'get_plugin_data' ) ) {
74 require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
75 }
76
77 // Hardcoded recurring plugin basename to show notice even when recurring addon is deactivated.
78 $recurring_plugin_basename = 'give-recurring/give-recurring.php';
79 $recurring_plugin_data = get_plugin_data( WP_CONTENT_DIR . '/plugins/' . $recurring_plugin_basename );
80
81 // Avoid fatal error for smooth update for customers.
82 if (
83 isset( $recurring_plugin_data['Version'] ) &&
84 version_compare( '1.9.3', $recurring_plugin_data['Version'], '>=' )
85 ) {
86 add_action( 'admin_notices', function() {
87
88 // Register error notice.
89 Give()->notices->register_notice(
90 array(
91 'id' => 'give-recurring-fatal-error',
92 'type' => 'error',
93 'description' => sprintf(__( '<strong>Activation Error:</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 this issue 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' ), 'https://wordpress.org/plugins/wp-rollback/', 'https://givewp.com/support/'),
94 'show' => true,
95 )
96 );
97 });
98
99 // Deactivate recurring addon to avoid fatal error.
100 deactivate_plugins( $recurring_plugin_basename );
101 if ( isset( $_GET['activate'] ) ) {
102 unset( $_GET['activate'] );
103 }
104 }
105
106 return;
107 }
108
109 // Load Stripe SDK.
110 give_stripe_load_stripe_sdk();
111
112 // Include frontend files.
113 $this->include_frontend_files();
114 }
115
116 /**
117 * This function is used to include admin files.
118 *
119 * @since 2.6.0
120 * @access public
121 *
122 * @return void
123 */
124 public function include_admin_files() {
125 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-helpers.php';
126 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-actions.php';
127 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/admin-filters.php';
128
129 // Load these files when accessed from admin.
130 if ( is_admin() ) {
131 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-admin-settings.php';
132 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/admin/class-give-stripe-logs.php';
133 }
134 }
135
136 /**
137 * This function will be used to load frontend files.
138 *
139 * @since 2.6.0
140 * @access public
141 *
142 * @return void
143 */
144 public function include_frontend_files() {
145
146 // General.
147 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/actions.php';
148 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/give-stripe-scripts.php';
149
150 // Classes.
151 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-logger.php';
152 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-invoice.php';
153 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-customer.php';
154 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-intent.php';
155 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-payment-method.php';
156 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-checkout-session.php';
157 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-gateway.php';
158 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/class-give-stripe-webhooks.php';
159
160 // Payment Methods.
161 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-card.php';
162 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/payment-methods/class-give-stripe-checkout.php';
163
164 // Deprecations.
165 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-functions.php';
166 require_once GIVE_PLUGIN_DIR . 'includes/gateways/stripe/includes/deprecated/deprecated-filters.php';
167 }
168
169 /**
170 * Register the payment methods supported by Stripe.
171 *
172 * @access public
173 * @since 2.5.0
174 *
175 * @param array $gateways List of registered gateways.
176 *
177 * @return array
178 */
179 public function register_gateway( $gateways ) {
180
181 // Stripe - On page credit card.
182 $gateways['stripe'] = array(
183 'admin_label' => __( 'Stripe - Credit Card', 'give' ),
184 'checkout_label' => __( 'Credit Card', 'give' ),
185 );
186
187 // Stripe - Off page credit card (also known as Checkout).
188 $gateways['stripe_checkout'] = array(
189 'admin_label' => __( 'Stripe - Checkout', 'give' ),
190 'checkout_label' => __( 'Credit Card', 'give' ),
191 );
192
193 return $gateways;
194 }
195 }
196 }
197
198 new Give_Stripe();
199