These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * Plugin Name: WooCommerce Stripe Gateway |
||
4 | * Plugin URI: https://wordpress.org/plugins/woocommerce-gateway-stripe/ |
||
5 | * Description: Take credit card payments on your store using Stripe. |
||
6 | * Author: WooCommerce |
||
7 | * Author URI: https://woocommerce.com/ |
||
8 | * Version: 4.1.0 |
||
9 | * Requires at least: 4.4 |
||
10 | * Tested up to: 4.9 |
||
11 | * WC requires at least: 2.6 |
||
12 | * WC tested up to: 3.3 |
||
13 | * Text Domain: woocommerce-gateway-stripe |
||
14 | * Domain Path: /languages/ |
||
15 | * |
||
16 | */ |
||
17 | |||
18 | if ( ! defined( 'ABSPATH' ) ) { |
||
19 | exit; |
||
20 | } |
||
21 | |||
22 | if ( ! class_exists( 'WC_Stripe' ) ) : |
||
23 | /** |
||
24 | * Required minimums and constants |
||
25 | */ |
||
26 | define( 'WC_STRIPE_VERSION', '4.1.0' ); |
||
27 | define( 'WC_STRIPE_MIN_PHP_VER', '5.6.0' ); |
||
28 | define( 'WC_STRIPE_MIN_WC_VER', '2.6.0' ); |
||
29 | define( 'WC_STRIPE_MAIN_FILE', __FILE__ ); |
||
30 | define( 'WC_STRIPE_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) ); |
||
31 | define( 'WC_STRIPE_PLUGIN_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) ); |
||
32 | |||
33 | class WC_Stripe { |
||
34 | |||
35 | /** |
||
36 | * @var Singleton The reference the *Singleton* instance of this class |
||
37 | */ |
||
38 | private static $instance; |
||
39 | |||
40 | /** |
||
41 | * @var Reference to logging class. |
||
42 | */ |
||
43 | private static $log; |
||
0 ignored issues
–
show
|
|||
44 | |||
45 | /** |
||
46 | * Returns the *Singleton* instance of this class. |
||
47 | * |
||
48 | * @return Singleton The *Singleton* instance. |
||
49 | */ |
||
50 | public static function get_instance() { |
||
51 | if ( null === self::$instance ) { |
||
52 | self::$instance = new self(); |
||
0 ignored issues
–
show
It seems like
new self() of type object<WC_Stripe> is incompatible with the declared type object<Singleton> of property $instance .
Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property. Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property.. ![]() |
|||
53 | } |
||
54 | return self::$instance; |
||
0 ignored issues
–
show
|
|||
55 | } |
||
56 | |||
57 | /** |
||
58 | * Private clone method to prevent cloning of the instance of the |
||
59 | * *Singleton* instance. |
||
60 | * |
||
61 | * @return void |
||
62 | */ |
||
63 | private function __clone() {} |
||
64 | |||
65 | /** |
||
66 | * Private unserialize method to prevent unserializing of the *Singleton* |
||
67 | * instance. |
||
68 | * |
||
69 | * @return void |
||
70 | */ |
||
71 | private function __wakeup() {} |
||
72 | |||
73 | /** |
||
74 | * Protected constructor to prevent creating a new instance of the |
||
75 | * *Singleton* via the `new` operator from outside of this class. |
||
76 | */ |
||
77 | private function __construct() { |
||
78 | add_action( 'admin_init', array( $this, 'install' ) ); |
||
79 | add_action( 'plugins_loaded', array( $this, 'init' ) ); |
||
80 | } |
||
81 | |||
82 | /** |
||
83 | * Init the plugin after plugins_loaded so environment variables are set. |
||
84 | * |
||
85 | * @since 1.0.0 |
||
86 | * @version 4.0.0 |
||
87 | */ |
||
88 | public function init() { |
||
89 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-exception.php' ); |
||
90 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-logger.php' ); |
||
91 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-helper.php' ); |
||
92 | include_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-api.php' ); |
||
93 | |||
94 | // Don't hook anything else in the plugin if we're in an incompatible environment. |
||
95 | if ( $this->get_environment_warning() ) { |
||
96 | return; |
||
97 | } |
||
98 | |||
99 | load_plugin_textdomain( 'woocommerce-gateway-stripe', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); |
||
100 | |||
101 | require_once( dirname( __FILE__ ) . '/includes/abstracts/abstract-wc-stripe-payment-gateway.php' ); |
||
102 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-webhook-handler.php' ); |
||
103 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-sepa-payment-token.php' ); |
||
104 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-apple-pay-registration.php' ); |
||
105 | require_once( dirname( __FILE__ ) . '/includes/compat/class-wc-stripe-pre-orders-compat.php' ); |
||
106 | require_once( dirname( __FILE__ ) . '/includes/class-wc-gateway-stripe.php' ); |
||
107 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-bancontact.php' ); |
||
108 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-sofort.php' ); |
||
109 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-giropay.php' ); |
||
110 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-eps.php' ); |
||
111 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-ideal.php' ); |
||
112 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-p24.php' ); |
||
113 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-alipay.php' ); |
||
114 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-sepa.php' ); |
||
115 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-bitcoin.php' ); |
||
116 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-multibanco.php' ); |
||
117 | require_once( dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-payment-request.php' ); |
||
118 | require_once( dirname( __FILE__ ) . '/includes/compat/class-wc-stripe-subs-compat.php' ); |
||
119 | require_once( dirname( __FILE__ ) . '/includes/compat/class-wc-stripe-sepa-subs-compat.php' ); |
||
120 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-order-handler.php' ); |
||
121 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-payment-tokens.php' ); |
||
122 | require_once( dirname( __FILE__ ) . '/includes/class-wc-stripe-customer.php' ); |
||
123 | |||
124 | if ( is_admin() ) { |
||
125 | require_once( dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-admin-notices.php' ); |
||
126 | } |
||
127 | |||
128 | // REMOVE IN THE FUTURE. |
||
129 | require_once( dirname( __FILE__ ) . '/includes/deprecated/class-wc-stripe-apple-pay.php' ); |
||
130 | |||
131 | add_filter( 'woocommerce_payment_gateways', array( $this, 'add_gateways' ) ); |
||
132 | add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'plugin_action_links' ) ); |
||
133 | add_filter( 'woocommerce_get_sections_checkout', array( $this, 'filter_gateway_order_admin' ) ); |
||
134 | } |
||
135 | |||
136 | /** |
||
137 | * Checks the environment for compatibility problems. |
||
138 | * Returns a string with the first incompatibility |
||
139 | * found or false if the environment has no problems. |
||
140 | * |
||
141 | * @since 1.0.0 |
||
142 | * @version 4.0.0 |
||
143 | */ |
||
144 | public function get_environment_warning() { |
||
145 | View Code Duplication | if ( version_compare( phpversion(), WC_STRIPE_MIN_PHP_VER, '<' ) ) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
146 | /* translators: 1) int version 2) int version */ |
||
147 | $message = __( 'WooCommerce Stripe - The minimum PHP version required for this plugin is %1$s. You are running %2$s.', 'woocommerce-gateway-stripe' ); |
||
148 | |||
149 | return sprintf( $message, WC_STRIPE_MIN_PHP_VER, phpversion() ); |
||
150 | } |
||
151 | |||
152 | if ( ! defined( 'WC_VERSION' ) ) { |
||
153 | return __( 'WooCommerce Stripe requires WooCommerce to be activated to work.', 'woocommerce-gateway-stripe' ); |
||
154 | } |
||
155 | |||
156 | View Code Duplication | if ( version_compare( WC_VERSION, WC_STRIPE_MIN_WC_VER, '<' ) ) { |
|
0 ignored issues
–
show
This code seems to be duplicated across your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
157 | /* translators: 1) int version 2) int version */ |
||
158 | $message = __( 'WooCommerce Stripe - The minimum WooCommerce version required for this plugin is %1$s. You are running %2$s.', 'woocommerce-gateway-stripe' ); |
||
159 | |||
160 | return sprintf( $message, WC_STRIPE_MIN_WC_VER, WC_VERSION ); |
||
161 | } |
||
162 | |||
163 | if ( ! function_exists( 'curl_init' ) ) { |
||
164 | return __( 'WooCommerce Stripe - cURL is not installed.', 'woocommerce-gateway-stripe' ); |
||
165 | } |
||
166 | |||
167 | return false; |
||
168 | } |
||
169 | |||
170 | /** |
||
171 | * Updates the plugin version in db |
||
172 | * |
||
173 | * @since 3.1.0 |
||
174 | * @version 4.0.0 |
||
175 | */ |
||
176 | public function update_plugin_version() { |
||
177 | delete_option( 'wc_stripe_version' ); |
||
178 | update_option( 'wc_stripe_version', WC_STRIPE_VERSION ); |
||
179 | } |
||
180 | |||
181 | /** |
||
182 | * Handles upgrade routines. |
||
183 | * |
||
184 | * @since 3.1.0 |
||
185 | * @version 3.1.0 |
||
186 | */ |
||
187 | public function install() { |
||
188 | if ( ! is_plugin_active( plugin_basename( __FILE__ ) ) ) { |
||
189 | return; |
||
190 | } |
||
191 | |||
192 | if ( ! defined( 'IFRAME_REQUEST' ) && ( WC_STRIPE_VERSION !== get_option( 'wc_stripe_version' ) ) ) { |
||
193 | do_action( 'woocommerce_stripe_updated' ); |
||
194 | |||
195 | if ( ! defined( 'WC_STRIPE_INSTALLING' ) ) { |
||
196 | define( 'WC_STRIPE_INSTALLING', true ); |
||
197 | } |
||
198 | |||
199 | $this->update_plugin_version(); |
||
200 | } |
||
201 | } |
||
202 | |||
203 | /** |
||
204 | * Adds plugin action links. |
||
205 | * |
||
206 | * @since 1.0.0 |
||
207 | * @version 4.0.0 |
||
208 | */ |
||
209 | public function plugin_action_links( $links ) { |
||
210 | $plugin_links = array( |
||
211 | '<a href="admin.php?page=wc-settings&tab=checkout§ion=stripe">' . esc_html__( 'Settings', 'woocommerce-gateway-stripe' ) . '</a>', |
||
212 | '<a href="https://docs.woocommerce.com/document/stripe/">' . esc_html__( 'Docs', 'woocommerce-gateway-stripe' ) . '</a>', |
||
213 | '<a href="https://woocommerce.com/contact-us/">' . esc_html__( 'Support', 'woocommerce-gateway-stripe' ) . '</a>', |
||
214 | ); |
||
215 | return array_merge( $plugin_links, $links ); |
||
216 | } |
||
217 | |||
218 | /** |
||
219 | * Add the gateways to WooCommerce. |
||
220 | * |
||
221 | * @since 1.0.0 |
||
222 | * @version 4.0.0 |
||
223 | */ |
||
224 | public function add_gateways( $methods ) { |
||
225 | if ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) { |
||
226 | $methods[] = 'WC_Stripe_Subs_Compat'; |
||
227 | $methods[] = 'WC_Stripe_Sepa_Subs_Compat'; |
||
228 | } else { |
||
229 | $methods[] = 'WC_Gateway_Stripe'; |
||
230 | $methods[] = 'WC_Gateway_Stripe_Sepa'; |
||
231 | } |
||
232 | |||
233 | $methods[] = 'WC_Gateway_Stripe_Bancontact'; |
||
234 | $methods[] = 'WC_Gateway_Stripe_Sofort'; |
||
235 | $methods[] = 'WC_Gateway_Stripe_Giropay'; |
||
236 | $methods[] = 'WC_Gateway_Stripe_Eps'; |
||
237 | $methods[] = 'WC_Gateway_Stripe_Ideal'; |
||
238 | $methods[] = 'WC_Gateway_Stripe_P24'; |
||
239 | $methods[] = 'WC_Gateway_Stripe_Alipay'; |
||
240 | $methods[] = 'WC_Gateway_Stripe_Bitcoin'; |
||
241 | $methods[] = 'WC_Gateway_Stripe_Multibanco'; |
||
242 | |||
243 | return $methods; |
||
244 | } |
||
245 | |||
246 | /** |
||
247 | * Modifies the order of the gateways displayed in admin. |
||
248 | * |
||
249 | * @since 4.0.0 |
||
250 | * @version 4.0.0 |
||
251 | */ |
||
252 | public function filter_gateway_order_admin( $sections ) { |
||
253 | unset( $sections['stripe'] ); |
||
254 | unset( $sections['stripe_bancontact'] ); |
||
255 | unset( $sections['stripe_sofort'] ); |
||
256 | unset( $sections['stripe_giropay'] ); |
||
257 | unset( $sections['stripe_eps'] ); |
||
258 | unset( $sections['stripe_ideal'] ); |
||
259 | unset( $sections['stripe_p24'] ); |
||
260 | unset( $sections['stripe_alipay'] ); |
||
261 | unset( $sections['stripe_sepa'] ); |
||
262 | unset( $sections['stripe_bitcoin'] ); |
||
263 | unset( $sections['stripe_multibanco'] ); |
||
264 | |||
265 | $sections['stripe'] = 'Stripe'; |
||
266 | $sections['stripe_bancontact'] = __( 'Stripe Bancontact', 'woocommerce-gateway-stripe' ); |
||
267 | $sections['stripe_sofort'] = __( 'Stripe SOFORT', 'woocommerce-gateway-stripe' ); |
||
268 | $sections['stripe_giropay'] = __( 'Stripe Giropay', 'woocommerce-gateway-stripe' ); |
||
269 | $sections['stripe_eps'] = __( 'Stripe EPS', 'woocommerce-gateway-stripe' ); |
||
270 | $sections['stripe_ideal'] = __( 'Stripe iDeal', 'woocommerce-gateway-stripe' ); |
||
271 | $sections['stripe_p24'] = __( 'Stripe P24', 'woocommerce-gateway-stripe' ); |
||
272 | $sections['stripe_alipay'] = __( 'Stripe Alipay', 'woocommerce-gateway-stripe' ); |
||
273 | $sections['stripe_sepa'] = __( 'Stripe SEPA Direct Debit', 'woocommerce-gateway-stripe' ); |
||
274 | $sections['stripe_bitcoin'] = __( 'Stripe Bitcoin', 'woocommerce-gateway-stripe' ); |
||
275 | $sections['stripe_multibanco'] = __( 'Stripe Multibanco', 'woocommerce-gateway-stripe' ); |
||
276 | |||
277 | return $sections; |
||
278 | } |
||
279 | } |
||
280 | |||
281 | WC_Stripe::get_instance(); |
||
282 | |||
283 | endif; |
||
284 |
This check marks private properties in classes that are never used. Those properties can be removed.