@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -106,9 +106,9 @@ discard block |
||
106 | 106 | public function __construct() { |
107 | 107 | $this->retry_interval = 1; |
108 | 108 | $this->id = 'stripe'; |
109 | - $this->method_title = __( 'Stripe', 'woocommerce-gateway-stripe' ); |
|
109 | + $this->method_title = __('Stripe', 'woocommerce-gateway-stripe'); |
|
110 | 110 | /* translators: 1) link to Stripe register page 2) link to Stripe api keys page */ |
111 | - $this->method_description = sprintf( __( 'Stripe works by adding payment fields on the checkout and then sending the details to Stripe for verification. <a href="%1$s" target="_blank">Sign up</a> for a Stripe account, and <a href="%2$s" target="_blank">get your Stripe account keys</a>.', 'woocommerce-gateway-stripe' ), 'https://dashboard.stripe.com/register', 'https://dashboard.stripe.com/account/apikeys' ); |
|
111 | + $this->method_description = sprintf(__('Stripe works by adding payment fields on the checkout and then sending the details to Stripe for verification. <a href="%1$s" target="_blank">Sign up</a> for a Stripe account, and <a href="%2$s" target="_blank">get your Stripe account keys</a>.', 'woocommerce-gateway-stripe'), 'https://dashboard.stripe.com/register', 'https://dashboard.stripe.com/account/apikeys'); |
|
112 | 112 | $this->has_fields = true; |
113 | 113 | $this->supports = array( |
114 | 114 | 'products', |
@@ -135,32 +135,32 @@ discard block |
||
135 | 135 | $this->init_settings(); |
136 | 136 | |
137 | 137 | // Get setting values. |
138 | - $this->title = $this->get_option( 'title' ); |
|
139 | - $this->description = $this->get_option( 'description' ); |
|
140 | - $this->enabled = $this->get_option( 'enabled' ); |
|
141 | - $this->testmode = 'yes' === $this->get_option( 'testmode' ); |
|
142 | - $this->inline_cc_form = 'yes' === $this->get_option( 'inline_cc_form' ); |
|
143 | - $this->capture = 'yes' === $this->get_option( 'capture', 'yes' ); |
|
144 | - $this->statement_descriptor = WC_Stripe_Helper::clean_statement_descriptor( $this->get_option( 'statement_descriptor' ) ); |
|
145 | - $this->three_d_secure = 'yes' === $this->get_option( 'three_d_secure' ); |
|
146 | - $this->stripe_checkout = 'yes' === $this->get_option( 'stripe_checkout' ); |
|
147 | - $this->stripe_checkout_image = $this->get_option( 'stripe_checkout_image', '' ); |
|
148 | - $this->saved_cards = 'yes' === $this->get_option( 'saved_cards' ); |
|
149 | - $this->secret_key = $this->testmode ? $this->get_option( 'test_secret_key' ) : $this->get_option( 'secret_key' ); |
|
150 | - $this->publishable_key = $this->testmode ? $this->get_option( 'test_publishable_key' ) : $this->get_option( 'publishable_key' ); |
|
151 | - $this->bitcoin = 'USD' === strtoupper( get_woocommerce_currency() ) && 'yes' === $this->get_option( 'stripe_bitcoin' ); |
|
152 | - $this->payment_request = 'yes' === $this->get_option( 'payment_request', 'yes' ); |
|
153 | - |
|
154 | - if ( $this->stripe_checkout ) { |
|
155 | - $this->order_button_text = __( 'Continue to payment', 'woocommerce-gateway-stripe' ); |
|
138 | + $this->title = $this->get_option('title'); |
|
139 | + $this->description = $this->get_option('description'); |
|
140 | + $this->enabled = $this->get_option('enabled'); |
|
141 | + $this->testmode = 'yes' === $this->get_option('testmode'); |
|
142 | + $this->inline_cc_form = 'yes' === $this->get_option('inline_cc_form'); |
|
143 | + $this->capture = 'yes' === $this->get_option('capture', 'yes'); |
|
144 | + $this->statement_descriptor = WC_Stripe_Helper::clean_statement_descriptor($this->get_option('statement_descriptor')); |
|
145 | + $this->three_d_secure = 'yes' === $this->get_option('three_d_secure'); |
|
146 | + $this->stripe_checkout = 'yes' === $this->get_option('stripe_checkout'); |
|
147 | + $this->stripe_checkout_image = $this->get_option('stripe_checkout_image', ''); |
|
148 | + $this->saved_cards = 'yes' === $this->get_option('saved_cards'); |
|
149 | + $this->secret_key = $this->testmode ? $this->get_option('test_secret_key') : $this->get_option('secret_key'); |
|
150 | + $this->publishable_key = $this->testmode ? $this->get_option('test_publishable_key') : $this->get_option('publishable_key'); |
|
151 | + $this->bitcoin = 'USD' === strtoupper(get_woocommerce_currency()) && 'yes' === $this->get_option('stripe_bitcoin'); |
|
152 | + $this->payment_request = 'yes' === $this->get_option('payment_request', 'yes'); |
|
153 | + |
|
154 | + if ($this->stripe_checkout) { |
|
155 | + $this->order_button_text = __('Continue to payment', 'woocommerce-gateway-stripe'); |
|
156 | 156 | } |
157 | 157 | |
158 | - WC_Stripe_API::set_secret_key( $this->secret_key ); |
|
158 | + WC_Stripe_API::set_secret_key($this->secret_key); |
|
159 | 159 | |
160 | 160 | // Hooks. |
161 | - add_action( 'wp_enqueue_scripts', array( $this, 'payment_scripts' ) ); |
|
162 | - add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) ); |
|
163 | - add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) ); |
|
161 | + add_action('wp_enqueue_scripts', array($this, 'payment_scripts')); |
|
162 | + add_action('admin_enqueue_scripts', array($this, 'admin_scripts')); |
|
163 | + add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); |
|
164 | 164 | } |
165 | 165 | |
166 | 166 | /** |
@@ -170,7 +170,7 @@ discard block |
||
170 | 170 | * @return bool |
171 | 171 | */ |
172 | 172 | public function are_keys_set() { |
173 | - if ( empty( $this->secret_key ) || empty( $this->publishable_key ) ) { |
|
173 | + if (empty($this->secret_key) || empty($this->publishable_key)) { |
|
174 | 174 | return false; |
175 | 175 | } |
176 | 176 | |
@@ -183,7 +183,7 @@ discard block |
||
183 | 183 | * @since 4.0.2 |
184 | 184 | */ |
185 | 185 | public function is_available() { |
186 | - if ( is_add_payment_method_page() && ! $this->saved_cards ) { |
|
186 | + if (is_add_payment_method_page() && ! $this->saved_cards) { |
|
187 | 187 | return false; |
188 | 188 | } |
189 | 189 | |
@@ -206,24 +206,24 @@ discard block |
||
206 | 206 | $icons_str .= $icons['amex']; |
207 | 207 | $icons_str .= $icons['mastercard']; |
208 | 208 | |
209 | - if ( 'USD' === get_woocommerce_currency() ) { |
|
209 | + if ('USD' === get_woocommerce_currency()) { |
|
210 | 210 | $icons_str .= $icons['discover']; |
211 | 211 | $icons_str .= $icons['jcb']; |
212 | 212 | $icons_str .= $icons['diners']; |
213 | 213 | } |
214 | 214 | |
215 | - if ( $this->bitcoin && $this->stripe_checkout ) { |
|
215 | + if ($this->bitcoin && $this->stripe_checkout) { |
|
216 | 216 | $icons_str .= $icons['bitcoin']; |
217 | 217 | } |
218 | 218 | |
219 | - return apply_filters( 'woocommerce_gateway_icon', $icons_str, $this->id ); |
|
219 | + return apply_filters('woocommerce_gateway_icon', $icons_str, $this->id); |
|
220 | 220 | } |
221 | 221 | |
222 | 222 | /** |
223 | 223 | * Initialise Gateway Settings Form Fields |
224 | 224 | */ |
225 | 225 | public function init_form_fields() { |
226 | - $this->form_fields = require( dirname( __FILE__ ) . '/admin/stripe-settings.php' ); |
|
226 | + $this->form_fields = require(dirname(__FILE__) . '/admin/stripe-settings.php'); |
|
227 | 227 | } |
228 | 228 | |
229 | 229 | /** |
@@ -231,68 +231,68 @@ discard block |
||
231 | 231 | */ |
232 | 232 | public function payment_fields() { |
233 | 233 | $user = wp_get_current_user(); |
234 | - $display_tokenization = $this->supports( 'tokenization' ) && is_checkout() && $this->saved_cards; |
|
234 | + $display_tokenization = $this->supports('tokenization') && is_checkout() && $this->saved_cards; |
|
235 | 235 | $total = WC()->cart->total; |
236 | 236 | $user_email = ''; |
237 | 237 | |
238 | 238 | // If paying from order, we need to get total from order not cart. |
239 | - if ( isset( $_GET['pay_for_order'] ) && ! empty( $_GET['key'] ) ) { |
|
240 | - $order = wc_get_order( wc_get_order_id_by_order_key( wc_clean( $_GET['key'] ) ) ); |
|
239 | + if (isset($_GET['pay_for_order']) && ! empty($_GET['key'])) { |
|
240 | + $order = wc_get_order(wc_get_order_id_by_order_key(wc_clean($_GET['key']))); |
|
241 | 241 | $total = $order->get_total(); |
242 | 242 | $user_email = WC_Stripe_Helper::is_pre_30() ? $order->billing_email : $order->get_billing_email(); |
243 | 243 | } else { |
244 | - if ( $user->ID ) { |
|
245 | - $user_email = get_user_meta( $user->ID, 'billing_email', true ); |
|
244 | + if ($user->ID) { |
|
245 | + $user_email = get_user_meta($user->ID, 'billing_email', true); |
|
246 | 246 | $user_email = $user_email ? $user_email : $user->user_email; |
247 | 247 | } |
248 | 248 | } |
249 | 249 | |
250 | - if ( is_add_payment_method_page() ) { |
|
251 | - $pay_button_text = __( 'Add Card', 'woocommerce-gateway-stripe' ); |
|
252 | - $total = ''; |
|
250 | + if (is_add_payment_method_page()) { |
|
251 | + $pay_button_text = __('Add Card', 'woocommerce-gateway-stripe'); |
|
252 | + $total = ''; |
|
253 | 253 | } else { |
254 | 254 | $pay_button_text = ''; |
255 | 255 | } |
256 | 256 | |
257 | 257 | echo '<div |
258 | 258 | id="stripe-payment-data" |
259 | - data-panel-label="' . esc_attr( $pay_button_text ) . '" |
|
259 | + data-panel-label="' . esc_attr($pay_button_text) . '" |
|
260 | 260 | data-description="" |
261 | - data-email="' . esc_attr( $user_email ) . '" |
|
262 | - data-amount="' . esc_attr( WC_Stripe_Helper::get_stripe_amount( $total ) ) . '" |
|
263 | - data-name="' . esc_attr( $this->statement_descriptor ) . '" |
|
264 | - data-currency="' . esc_attr( strtolower( get_woocommerce_currency() ) ) . '" |
|
265 | - data-image="' . esc_attr( $this->stripe_checkout_image ) . '" |
|
266 | - data-bitcoin="' . esc_attr( ( $this->bitcoin && $this->capture ) ? 'true' : 'false' ) . '" |
|
267 | - data-locale="' . esc_attr( apply_filters( 'wc_stripe_checkout_locale', $this->get_locale() ) ) . '" |
|
268 | - data-three-d-secure="' . esc_attr( $this->three_d_secure ? 'true' : 'false' ) . '" |
|
269 | - data-allow-remember-me="' . esc_attr( $this->saved_cards ? 'true' : 'false' ) . '">'; |
|
270 | - |
|
271 | - if ( $this->description ) { |
|
272 | - if ( $this->testmode ) { |
|
261 | + data-email="' . esc_attr($user_email) . '" |
|
262 | + data-amount="' . esc_attr(WC_Stripe_Helper::get_stripe_amount($total)) . '" |
|
263 | + data-name="' . esc_attr($this->statement_descriptor) . '" |
|
264 | + data-currency="' . esc_attr(strtolower(get_woocommerce_currency())) . '" |
|
265 | + data-image="' . esc_attr($this->stripe_checkout_image) . '" |
|
266 | + data-bitcoin="' . esc_attr(($this->bitcoin && $this->capture) ? 'true' : 'false') . '" |
|
267 | + data-locale="' . esc_attr(apply_filters('wc_stripe_checkout_locale', $this->get_locale())) . '" |
|
268 | + data-three-d-secure="' . esc_attr($this->three_d_secure ? 'true' : 'false') . '" |
|
269 | + data-allow-remember-me="' . esc_attr($this->saved_cards ? 'true' : 'false') . '">'; |
|
270 | + |
|
271 | + if ($this->description) { |
|
272 | + if ($this->testmode) { |
|
273 | 273 | /* translators: link to Stripe testing page */ |
274 | - $this->description .= ' ' . sprintf( __( 'TEST MODE ENABLED. In test mode, you can use the card number 4242424242424242 with any CVC and a valid expiration date or check the documentation "<a href="%s" target="_blank">Testing Stripe</a>" for more card numbers.', 'woocommerce-gateway-stripe' ), 'https://stripe.com/docs/testing' ); |
|
275 | - $this->description = trim( $this->description ); |
|
274 | + $this->description .= ' ' . sprintf(__('TEST MODE ENABLED. In test mode, you can use the card number 4242424242424242 with any CVC and a valid expiration date or check the documentation "<a href="%s" target="_blank">Testing Stripe</a>" for more card numbers.', 'woocommerce-gateway-stripe'), 'https://stripe.com/docs/testing'); |
|
275 | + $this->description = trim($this->description); |
|
276 | 276 | } |
277 | - echo apply_filters( 'wc_stripe_description', wpautop( wp_kses_post( $this->description ) ) ); |
|
277 | + echo apply_filters('wc_stripe_description', wpautop(wp_kses_post($this->description))); |
|
278 | 278 | } |
279 | 279 | |
280 | - if ( $display_tokenization ) { |
|
280 | + if ($display_tokenization) { |
|
281 | 281 | $this->tokenization_script(); |
282 | 282 | $this->saved_payment_methods(); |
283 | 283 | } |
284 | 284 | |
285 | - if ( ! $this->stripe_checkout ) { |
|
286 | - if ( apply_filters( 'wc_stripe_use_elements_checkout_form', true ) ) { |
|
285 | + if ( ! $this->stripe_checkout) { |
|
286 | + if (apply_filters('wc_stripe_use_elements_checkout_form', true)) { |
|
287 | 287 | $this->elements_form(); |
288 | 288 | } else { |
289 | - WC_Stripe_Logger::log( 'DEPRECATED! Since version 4.0. Stripe Elements is used. This legacy credit card form will be removed by version 5.0!' ); |
|
289 | + WC_Stripe_Logger::log('DEPRECATED! Since version 4.0. Stripe Elements is used. This legacy credit card form will be removed by version 5.0!'); |
|
290 | 290 | $this->form(); |
291 | 291 | echo '<div class="stripe-source-errors" role="alert"></div>'; |
292 | 292 | } |
293 | 293 | } |
294 | 294 | |
295 | - if ( apply_filters( 'wc_stripe_display_save_payment_method_checkbox', $display_tokenization ) && ! is_add_payment_method_page() && ! isset( $_GET['change_payment_method'] ) ) { |
|
295 | + if (apply_filters('wc_stripe_display_save_payment_method_checkbox', $display_tokenization) && ! is_add_payment_method_page() && ! isset($_GET['change_payment_method'])) { |
|
296 | 296 | $this->save_payment_method_checkbox(); |
297 | 297 | } |
298 | 298 | |
@@ -307,12 +307,12 @@ discard block |
||
307 | 307 | */ |
308 | 308 | public function elements_form() { |
309 | 309 | ?> |
310 | - <fieldset id="wc-<?php echo esc_attr( $this->id ); ?>-cc-form" class="wc-credit-card-form wc-payment-form" style="background:transparent;"> |
|
311 | - <?php do_action( 'woocommerce_credit_card_form_start', $this->id ); ?> |
|
310 | + <fieldset id="wc-<?php echo esc_attr($this->id); ?>-cc-form" class="wc-credit-card-form wc-payment-form" style="background:transparent;"> |
|
311 | + <?php do_action('woocommerce_credit_card_form_start', $this->id); ?> |
|
312 | 312 | |
313 | - <?php if ( $this->inline_cc_form ) { ?> |
|
313 | + <?php if ($this->inline_cc_form) { ?> |
|
314 | 314 | <label for="card-element"> |
315 | - <?php esc_html_e( 'Credit or debit card', 'woocommerce-gateway-stripe' ); ?> |
|
315 | + <?php esc_html_e('Credit or debit card', 'woocommerce-gateway-stripe'); ?> |
|
316 | 316 | </label> |
317 | 317 | |
318 | 318 | <div id="stripe-card-element" style="background:#fff;padding:0 1em;border:1px solid #ddd;margin:5px 0;padding:10px 5px;"> |
@@ -320,7 +320,7 @@ discard block |
||
320 | 320 | </div> |
321 | 321 | <?php } else { ?> |
322 | 322 | <div class="form-row form-row-wide"> |
323 | - <label><?php _e( 'Card Number', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span></label> |
|
323 | + <label><?php _e('Card Number', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span></label> |
|
324 | 324 | |
325 | 325 | <div id="stripe-card-element" style="background:#fff;padding:0 1em;border:1px solid #ddd;margin:5px 0;padding:10px 5px;"> |
326 | 326 | <!-- a Stripe Element will be inserted here. --> |
@@ -328,7 +328,7 @@ discard block |
||
328 | 328 | </div> |
329 | 329 | |
330 | 330 | <div class="form-row form-row-first"> |
331 | - <label><?php _e( 'Expiry Date', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span></label> |
|
331 | + <label><?php _e('Expiry Date', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span></label> |
|
332 | 332 | |
333 | 333 | <div id="stripe-exp-element" style="background:#fff;padding:0 1em;border:1px solid #ddd;margin:5px 0;padding:10px 5px;"> |
334 | 334 | <!-- a Stripe Element will be inserted here. --> |
@@ -336,7 +336,7 @@ discard block |
||
336 | 336 | </div> |
337 | 337 | |
338 | 338 | <div class="form-row form-row-last"> |
339 | - <label><?php _e( 'Card Code (CVC)', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span></label> |
|
339 | + <label><?php _e('Card Code (CVC)', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span></label> |
|
340 | 340 | <div id="stripe-cvc-element" style="background:#fff;padding:0 1em;border:1px solid #ddd;margin:5px 0;padding:10px 5px;"> |
341 | 341 | <!-- a Stripe Element will be inserted here. --> |
342 | 342 | </div> |
@@ -346,7 +346,7 @@ discard block |
||
346 | 346 | |
347 | 347 | <!-- Used to display form errors --> |
348 | 348 | <div class="stripe-source-errors" role="alert"></div> |
349 | - <?php do_action( 'woocommerce_credit_card_form_end', $this->id ); ?> |
|
349 | + <?php do_action('woocommerce_credit_card_form_end', $this->id); ?> |
|
350 | 350 | <div class="clear"></div> |
351 | 351 | </fieldset> |
352 | 352 | <?php |
@@ -359,13 +359,13 @@ discard block |
||
359 | 359 | * @version 3.1.0 |
360 | 360 | */ |
361 | 361 | public function admin_scripts() { |
362 | - if ( 'woocommerce_page_wc-settings' !== get_current_screen()->id ) { |
|
362 | + if ('woocommerce_page_wc-settings' !== get_current_screen()->id) { |
|
363 | 363 | return; |
364 | 364 | } |
365 | 365 | |
366 | - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
|
366 | + $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; |
|
367 | 367 | |
368 | - wp_enqueue_script( 'woocommerce_stripe_admin', plugins_url( 'assets/js/stripe-admin' . $suffix . '.js', WC_STRIPE_MAIN_FILE ), array(), WC_STRIPE_VERSION, true ); |
|
368 | + wp_enqueue_script('woocommerce_stripe_admin', plugins_url('assets/js/stripe-admin' . $suffix . '.js', WC_STRIPE_MAIN_FILE), array(), WC_STRIPE_VERSION, true); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | /** |
@@ -377,46 +377,46 @@ discard block |
||
377 | 377 | * @version 4.0.0 |
378 | 378 | */ |
379 | 379 | public function payment_scripts() { |
380 | - if ( ! is_cart() && ! is_checkout() && ! isset( $_GET['pay_for_order'] ) && ! is_add_payment_method_page() && ! isset( $_GET['change_payment_method'] ) ) { |
|
380 | + if ( ! is_cart() && ! is_checkout() && ! isset($_GET['pay_for_order']) && ! is_add_payment_method_page() && ! isset($_GET['change_payment_method'])) { |
|
381 | 381 | return; |
382 | 382 | } |
383 | 383 | |
384 | 384 | // If Stripe is not enabled bail. |
385 | - if ( 'no' === $this->enabled ) { |
|
385 | + if ('no' === $this->enabled) { |
|
386 | 386 | return; |
387 | 387 | } |
388 | 388 | |
389 | 389 | // If keys are not set bail. |
390 | - if ( ! $this->are_keys_set() ) { |
|
391 | - WC_Stripe_Logger::log( 'Keys are not set correctly.' ); |
|
390 | + if ( ! $this->are_keys_set()) { |
|
391 | + WC_Stripe_Logger::log('Keys are not set correctly.'); |
|
392 | 392 | return; |
393 | 393 | } |
394 | 394 | |
395 | 395 | // If no SSL bail. |
396 | - if ( ! $this->testmode && ! is_ssl() ) { |
|
397 | - WC_Stripe_Logger::log( 'Stripe requires SSL.' ); |
|
396 | + if ( ! $this->testmode && ! is_ssl()) { |
|
397 | + WC_Stripe_Logger::log('Stripe requires SSL.'); |
|
398 | 398 | return; |
399 | 399 | } |
400 | 400 | |
401 | - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
|
401 | + $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; |
|
402 | 402 | |
403 | - wp_register_style( 'stripe_paymentfonts', plugins_url( 'assets/css/stripe-paymentfonts.css', WC_STRIPE_MAIN_FILE ), array(), '1.2.5' ); |
|
404 | - wp_enqueue_style( 'stripe_paymentfonts' ); |
|
405 | - wp_register_script( 'stripe_checkout', 'https://checkout.stripe.com/checkout.js', '', WC_STRIPE_VERSION, true ); |
|
406 | - wp_register_script( 'stripev2', 'https://js.stripe.com/v2/', '', '2.0', true ); |
|
407 | - wp_register_script( 'stripe', 'https://js.stripe.com/v3/', '', '3.0', true ); |
|
408 | - wp_register_script( 'woocommerce_stripe', plugins_url( 'assets/js/stripe' . $suffix . '.js', WC_STRIPE_MAIN_FILE ), array( 'jquery-payment', 'stripev2', 'stripe' ), WC_STRIPE_VERSION, true ); |
|
403 | + wp_register_style('stripe_paymentfonts', plugins_url('assets/css/stripe-paymentfonts.css', WC_STRIPE_MAIN_FILE), array(), '1.2.5'); |
|
404 | + wp_enqueue_style('stripe_paymentfonts'); |
|
405 | + wp_register_script('stripe_checkout', 'https://checkout.stripe.com/checkout.js', '', WC_STRIPE_VERSION, true); |
|
406 | + wp_register_script('stripev2', 'https://js.stripe.com/v2/', '', '2.0', true); |
|
407 | + wp_register_script('stripe', 'https://js.stripe.com/v3/', '', '3.0', true); |
|
408 | + wp_register_script('woocommerce_stripe', plugins_url('assets/js/stripe' . $suffix . '.js', WC_STRIPE_MAIN_FILE), array('jquery-payment', 'stripev2', 'stripe'), WC_STRIPE_VERSION, true); |
|
409 | 409 | |
410 | 410 | $stripe_params = array( |
411 | 411 | 'key' => $this->publishable_key, |
412 | - 'i18n_terms' => __( 'Please accept the terms and conditions first', 'woocommerce-gateway-stripe' ), |
|
413 | - 'i18n_required_fields' => __( 'Please fill in required checkout fields first', 'woocommerce-gateway-stripe' ), |
|
412 | + 'i18n_terms' => __('Please accept the terms and conditions first', 'woocommerce-gateway-stripe'), |
|
413 | + 'i18n_required_fields' => __('Please fill in required checkout fields first', 'woocommerce-gateway-stripe'), |
|
414 | 414 | ); |
415 | 415 | |
416 | 416 | // If we're on the pay page we need to pass stripe.js the address of the order. |
417 | - if ( isset( $_GET['pay_for_order'] ) && 'true' === $_GET['pay_for_order'] ) { |
|
418 | - $order_id = wc_get_order_id_by_order_key( urldecode( $_GET['key'] ) ); |
|
419 | - $order = wc_get_order( $order_id ); |
|
417 | + if (isset($_GET['pay_for_order']) && 'true' === $_GET['pay_for_order']) { |
|
418 | + $order_id = wc_get_order_id_by_order_key(urldecode($_GET['key'])); |
|
419 | + $order = wc_get_order($order_id); |
|
420 | 420 | |
421 | 421 | $stripe_params['billing_first_name'] = WC_Stripe_Helper::is_pre_30() ? $order->billing_first_name : $order->get_billing_first_name(); |
422 | 422 | $stripe_params['billing_last_name'] = WC_Stripe_Helper::is_pre_30() ? $order->billing_last_name : $order->get_billing_last_name(); |
@@ -428,39 +428,39 @@ discard block |
||
428 | 428 | $stripe_params['billing_country'] = WC_Stripe_Helper::is_pre_30() ? $order->billing_country : $order->get_billing_country(); |
429 | 429 | } |
430 | 430 | |
431 | - $stripe_params['no_prepaid_card_msg'] = __( 'Sorry, we\'re not accepting prepaid cards at this time. Your credit card has not been charge. Please try with alternative payment method.', 'woocommerce-gateway-stripe' ); |
|
432 | - $stripe_params['no_sepa_owner_msg'] = __( 'Please enter your IBAN account name.', 'woocommerce-gateway-stripe' ); |
|
433 | - $stripe_params['no_sepa_iban_msg'] = __( 'Please enter your IBAN account number.', 'woocommerce-gateway-stripe' ); |
|
434 | - $stripe_params['sepa_mandate_notification'] = apply_filters( 'wc_stripe_sepa_mandate_notification', 'email' ); |
|
435 | - $stripe_params['allow_prepaid_card'] = apply_filters( 'wc_stripe_allow_prepaid_card', true ) ? 'yes' : 'no'; |
|
431 | + $stripe_params['no_prepaid_card_msg'] = __('Sorry, we\'re not accepting prepaid cards at this time. Your credit card has not been charge. Please try with alternative payment method.', 'woocommerce-gateway-stripe'); |
|
432 | + $stripe_params['no_sepa_owner_msg'] = __('Please enter your IBAN account name.', 'woocommerce-gateway-stripe'); |
|
433 | + $stripe_params['no_sepa_iban_msg'] = __('Please enter your IBAN account number.', 'woocommerce-gateway-stripe'); |
|
434 | + $stripe_params['sepa_mandate_notification'] = apply_filters('wc_stripe_sepa_mandate_notification', 'email'); |
|
435 | + $stripe_params['allow_prepaid_card'] = apply_filters('wc_stripe_allow_prepaid_card', true) ? 'yes' : 'no'; |
|
436 | 436 | $stripe_params['inline_cc_form'] = $this->inline_cc_form ? 'yes' : 'no'; |
437 | - $stripe_params['stripe_checkout_require_billing_address'] = apply_filters( 'wc_stripe_checkout_require_billing_address', false ) ? 'yes' : 'no'; |
|
438 | - $stripe_params['is_checkout'] = ( is_checkout() && empty( $_GET['pay_for_order'] ) ) ? 'yes' : 'no'; |
|
437 | + $stripe_params['stripe_checkout_require_billing_address'] = apply_filters('wc_stripe_checkout_require_billing_address', false) ? 'yes' : 'no'; |
|
438 | + $stripe_params['is_checkout'] = (is_checkout() && empty($_GET['pay_for_order'])) ? 'yes' : 'no'; |
|
439 | 439 | $stripe_params['return_url'] = $this->get_stripe_return_url(); |
440 | - $stripe_params['ajaxurl'] = WC_AJAX::get_endpoint( '%%endpoint%%' ); |
|
441 | - $stripe_params['stripe_nonce'] = wp_create_nonce( '_wc_stripe_nonce' ); |
|
440 | + $stripe_params['ajaxurl'] = WC_AJAX::get_endpoint('%%endpoint%%'); |
|
441 | + $stripe_params['stripe_nonce'] = wp_create_nonce('_wc_stripe_nonce'); |
|
442 | 442 | $stripe_params['statement_descriptor'] = $this->statement_descriptor; |
443 | - $stripe_params['use_elements'] = apply_filters( 'wc_stripe_use_elements_checkout_form', true ) ? 'yes' : 'no'; |
|
444 | - $stripe_params['elements_options'] = apply_filters( 'wc_stripe_elements_options', array() ); |
|
443 | + $stripe_params['use_elements'] = apply_filters('wc_stripe_use_elements_checkout_form', true) ? 'yes' : 'no'; |
|
444 | + $stripe_params['elements_options'] = apply_filters('wc_stripe_elements_options', array()); |
|
445 | 445 | $stripe_params['is_stripe_checkout'] = $this->stripe_checkout ? 'yes' : 'no'; |
446 | - $stripe_params['is_change_payment_page'] = isset( $_GET['change_payment_method'] ) ? 'yes' : 'no'; |
|
447 | - $stripe_params['is_pay_for_order_page'] = isset( $_GET['pay_for_order'] ) ? 'yes' : 'no'; |
|
448 | - $stripe_params['validate_modal_checkout'] = apply_filters( 'wc_stripe_validate_model_checkout', true ) ? 'yes' : 'no'; |
|
449 | - $stripe_params['elements_styling'] = apply_filters( 'wc_stripe_elements_styling', false ); |
|
450 | - $stripe_params['elements_classes'] = apply_filters( 'wc_stripe_elements_classes', false ); |
|
446 | + $stripe_params['is_change_payment_page'] = isset($_GET['change_payment_method']) ? 'yes' : 'no'; |
|
447 | + $stripe_params['is_pay_for_order_page'] = isset($_GET['pay_for_order']) ? 'yes' : 'no'; |
|
448 | + $stripe_params['validate_modal_checkout'] = apply_filters('wc_stripe_validate_model_checkout', true) ? 'yes' : 'no'; |
|
449 | + $stripe_params['elements_styling'] = apply_filters('wc_stripe_elements_styling', false); |
|
450 | + $stripe_params['elements_classes'] = apply_filters('wc_stripe_elements_classes', false); |
|
451 | 451 | |
452 | 452 | // merge localized messages to be use in JS |
453 | - $stripe_params = array_merge( $stripe_params, WC_Stripe_Helper::get_localized_messages() ); |
|
453 | + $stripe_params = array_merge($stripe_params, WC_Stripe_Helper::get_localized_messages()); |
|
454 | 454 | |
455 | - wp_localize_script( 'woocommerce_stripe', 'wc_stripe_params', apply_filters( 'wc_stripe_params', $stripe_params ) ); |
|
456 | - wp_localize_script( 'woocommerce_stripe_checkout', 'wc_stripe_params', apply_filters( 'wc_stripe_params', $stripe_params ) ); |
|
455 | + wp_localize_script('woocommerce_stripe', 'wc_stripe_params', apply_filters('wc_stripe_params', $stripe_params)); |
|
456 | + wp_localize_script('woocommerce_stripe_checkout', 'wc_stripe_params', apply_filters('wc_stripe_params', $stripe_params)); |
|
457 | 457 | |
458 | - if ( $this->stripe_checkout ) { |
|
459 | - wp_enqueue_script( 'stripe_checkout' ); |
|
458 | + if ($this->stripe_checkout) { |
|
459 | + wp_enqueue_script('stripe_checkout'); |
|
460 | 460 | } |
461 | 461 | |
462 | 462 | $this->tokenization_script(); |
463 | - wp_enqueue_script( 'woocommerce_stripe' ); |
|
463 | + wp_enqueue_script('woocommerce_stripe'); |
|
464 | 464 | } |
465 | 465 | |
466 | 466 | /** |
@@ -476,41 +476,41 @@ discard block |
||
476 | 476 | * |
477 | 477 | * @return array|void |
478 | 478 | */ |
479 | - public function process_payment( $order_id, $retry = true, $force_save_source = false ) { |
|
479 | + public function process_payment($order_id, $retry = true, $force_save_source = false) { |
|
480 | 480 | try { |
481 | - $order = wc_get_order( $order_id ); |
|
481 | + $order = wc_get_order($order_id); |
|
482 | 482 | |
483 | 483 | // This comes from the create account checkbox in the checkout page. |
484 | - $create_account = ! empty( $_POST['createaccount'] ) ? true : false; |
|
484 | + $create_account = ! empty($_POST['createaccount']) ? true : false; |
|
485 | 485 | |
486 | - if ( $create_account ) { |
|
486 | + if ($create_account) { |
|
487 | 487 | $new_customer_id = WC_Stripe_Helper::is_pre_30() ? $order->customer_user : $order->get_customer_id(); |
488 | - $new_stripe_customer = new WC_Stripe_Customer( $new_customer_id ); |
|
488 | + $new_stripe_customer = new WC_Stripe_Customer($new_customer_id); |
|
489 | 489 | $new_stripe_customer->create_customer(); |
490 | 490 | } |
491 | 491 | |
492 | - $prepared_source = $this->prepare_source( get_current_user_id(), $force_save_source ); |
|
492 | + $prepared_source = $this->prepare_source(get_current_user_id(), $force_save_source); |
|
493 | 493 | $source_object = $prepared_source->source_object; |
494 | 494 | |
495 | 495 | // Check if we don't allow prepaid credit cards. |
496 | - if ( ! apply_filters( 'wc_stripe_allow_prepaid_card', true ) && $this->is_prepaid_card( $source_object ) ) { |
|
497 | - $localized_message = __( 'Sorry, we\'re not accepting prepaid cards at this time. Your credit card has not been charge. Please try with alternative payment method.', 'woocommerce-gateway-stripe' ); |
|
498 | - throw new WC_Stripe_Exception( print_r( $source_object, true ), $localized_message ); |
|
496 | + if ( ! apply_filters('wc_stripe_allow_prepaid_card', true) && $this->is_prepaid_card($source_object)) { |
|
497 | + $localized_message = __('Sorry, we\'re not accepting prepaid cards at this time. Your credit card has not been charge. Please try with alternative payment method.', 'woocommerce-gateway-stripe'); |
|
498 | + throw new WC_Stripe_Exception(print_r($source_object, true), $localized_message); |
|
499 | 499 | } |
500 | 500 | |
501 | - if ( empty( $prepared_source->source ) ) { |
|
502 | - $localized_message = __( 'Payment processing failed. Please retry.', 'woocommerce-gateway-stripe' ); |
|
503 | - throw new WC_Stripe_Exception( print_r( $prepared_source, true ), $localized_message ); |
|
501 | + if (empty($prepared_source->source)) { |
|
502 | + $localized_message = __('Payment processing failed. Please retry.', 'woocommerce-gateway-stripe'); |
|
503 | + throw new WC_Stripe_Exception(print_r($prepared_source, true), $localized_message); |
|
504 | 504 | } |
505 | 505 | |
506 | - $this->save_source_to_order( $order, $prepared_source ); |
|
506 | + $this->save_source_to_order($order, $prepared_source); |
|
507 | 507 | |
508 | 508 | // Result from Stripe API request. |
509 | 509 | $response = null; |
510 | 510 | |
511 | - if ( $order->get_total() > 0 ) { |
|
511 | + if ($order->get_total() > 0) { |
|
512 | 512 | // This will throw exception if not valid. |
513 | - $this->validate_minimum_order_amount( $order ); |
|
513 | + $this->validate_minimum_order_amount($order); |
|
514 | 514 | |
515 | 515 | /* |
516 | 516 | * Check if card 3DS is required or optional with 3DS setting. |
@@ -519,105 +519,105 @@ discard block |
||
519 | 519 | * Note that if we need to save source, the original source must be first |
520 | 520 | * attached to a customer in Stripe before it can be charged. |
521 | 521 | */ |
522 | - if ( $this->is_3ds_required( $source_object ) ) { |
|
523 | - $response = $this->create_3ds_source( $order, $source_object ); |
|
522 | + if ($this->is_3ds_required($source_object)) { |
|
523 | + $response = $this->create_3ds_source($order, $source_object); |
|
524 | 524 | |
525 | - if ( ! empty( $response->error ) ) { |
|
525 | + if ( ! empty($response->error)) { |
|
526 | 526 | $localized_message = $response->error->message; |
527 | 527 | |
528 | - $order->add_order_note( $localized_message ); |
|
528 | + $order->add_order_note($localized_message); |
|
529 | 529 | |
530 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
530 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
531 | 531 | } |
532 | 532 | |
533 | 533 | // Update order meta with 3DS source. |
534 | - if ( WC_Stripe_Helper::is_pre_30() ) { |
|
535 | - update_post_meta( $order_id, '_stripe_source_id', $response->id ); |
|
534 | + if (WC_Stripe_Helper::is_pre_30()) { |
|
535 | + update_post_meta($order_id, '_stripe_source_id', $response->id); |
|
536 | 536 | } else { |
537 | - $order->update_meta_data( '_stripe_source_id', $response->id ); |
|
537 | + $order->update_meta_data('_stripe_source_id', $response->id); |
|
538 | 538 | $order->save(); |
539 | 539 | } |
540 | 540 | |
541 | - WC_Stripe_Logger::log( 'Info: Redirecting to 3DS...' ); |
|
541 | + WC_Stripe_Logger::log('Info: Redirecting to 3DS...'); |
|
542 | 542 | |
543 | 543 | return array( |
544 | 544 | 'result' => 'success', |
545 | - 'redirect' => esc_url_raw( $response->redirect->url ), |
|
545 | + 'redirect' => esc_url_raw($response->redirect->url), |
|
546 | 546 | ); |
547 | 547 | } |
548 | 548 | |
549 | - WC_Stripe_Logger::log( "Info: Begin processing payment for order $order_id for the amount of {$order->get_total()}" ); |
|
549 | + WC_Stripe_Logger::log("Info: Begin processing payment for order $order_id for the amount of {$order->get_total()}"); |
|
550 | 550 | |
551 | 551 | /* If we're doing a retry and source is chargeable, we need to pass |
552 | 552 | * a different idempotency key and retry for success. |
553 | 553 | */ |
554 | - if ( 1 < $this->retry_interval && ! empty( $source_object ) && 'chargeable' === $source_object->status ) { |
|
555 | - add_filter( 'wc_stripe_idempotency_key', array( $this, 'change_idempotency_key' ), 10, 2 ); |
|
554 | + if (1 < $this->retry_interval && ! empty($source_object) && 'chargeable' === $source_object->status) { |
|
555 | + add_filter('wc_stripe_idempotency_key', array($this, 'change_idempotency_key'), 10, 2); |
|
556 | 556 | } |
557 | 557 | |
558 | 558 | // Make the request. |
559 | - $response = WC_Stripe_API::request( $this->generate_payment_request( $order, $prepared_source ) ); |
|
559 | + $response = WC_Stripe_API::request($this->generate_payment_request($order, $prepared_source)); |
|
560 | 560 | |
561 | - if ( ! empty( $response->error ) ) { |
|
561 | + if ( ! empty($response->error)) { |
|
562 | 562 | // Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without. |
563 | - if ( preg_match( '/No such customer/i', $response->error->message ) && $retry ) { |
|
564 | - if ( WC_Stripe_Helper::is_pre_30() ) { |
|
565 | - delete_user_meta( $order->customer_user, '_stripe_customer_id' ); |
|
566 | - delete_post_meta( $order_id, '_stripe_customer_id' ); |
|
563 | + if (preg_match('/No such customer/i', $response->error->message) && $retry) { |
|
564 | + if (WC_Stripe_Helper::is_pre_30()) { |
|
565 | + delete_user_meta($order->customer_user, '_stripe_customer_id'); |
|
566 | + delete_post_meta($order_id, '_stripe_customer_id'); |
|
567 | 567 | } else { |
568 | - delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' ); |
|
569 | - $order->delete_meta_data( '_stripe_customer_id' ); |
|
568 | + delete_user_meta($order->get_customer_id(), '_stripe_customer_id'); |
|
569 | + $order->delete_meta_data('_stripe_customer_id'); |
|
570 | 570 | $order->save(); |
571 | 571 | } |
572 | 572 | |
573 | - return $this->process_payment( $order_id, false, $force_save_source ); |
|
574 | - } elseif ( preg_match( '/No such token/i', $response->error->message ) && $prepared_source->token_id ) { |
|
573 | + return $this->process_payment($order_id, false, $force_save_source); |
|
574 | + } elseif (preg_match('/No such token/i', $response->error->message) && $prepared_source->token_id) { |
|
575 | 575 | // Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message. |
576 | - $wc_token = WC_Payment_Tokens::get( $prepared_source->token_id ); |
|
576 | + $wc_token = WC_Payment_Tokens::get($prepared_source->token_id); |
|
577 | 577 | $wc_token->delete(); |
578 | - $localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' ); |
|
579 | - $order->add_order_note( $localized_message ); |
|
580 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
578 | + $localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe'); |
|
579 | + $order->add_order_note($localized_message); |
|
580 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
581 | 581 | } |
582 | 582 | |
583 | 583 | // We want to retry. |
584 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
585 | - if ( $retry ) { |
|
584 | + if ($this->is_retryable_error($response->error)) { |
|
585 | + if ($retry) { |
|
586 | 586 | // Don't do anymore retries after this. |
587 | - if ( 5 <= $this->retry_interval ) { |
|
587 | + if (5 <= $this->retry_interval) { |
|
588 | 588 | |
589 | - return $this->process_payment( $order_id, false, $force_save_source ); |
|
589 | + return $this->process_payment($order_id, false, $force_save_source); |
|
590 | 590 | } |
591 | 591 | |
592 | - sleep( $this->retry_interval ); |
|
592 | + sleep($this->retry_interval); |
|
593 | 593 | |
594 | 594 | $this->retry_interval++; |
595 | 595 | |
596 | - return $this->process_payment( $order_id, true, $force_save_source ); |
|
596 | + return $this->process_payment($order_id, true, $force_save_source); |
|
597 | 597 | } else { |
598 | - $localized_message = __( 'On going requests error and retries exhausted.', 'woocommerce-gateway-stripe' ); |
|
599 | - $order->add_order_note( $localized_message ); |
|
600 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
598 | + $localized_message = __('On going requests error and retries exhausted.', 'woocommerce-gateway-stripe'); |
|
599 | + $order->add_order_note($localized_message); |
|
600 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
601 | 601 | } |
602 | 602 | } |
603 | 603 | |
604 | 604 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
605 | 605 | |
606 | - if ( 'card_error' === $response->error->type ) { |
|
607 | - $localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
606 | + if ('card_error' === $response->error->type) { |
|
607 | + $localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
608 | 608 | } else { |
609 | - $localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
609 | + $localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
610 | 610 | } |
611 | 611 | |
612 | - $order->add_order_note( $localized_message ); |
|
612 | + $order->add_order_note($localized_message); |
|
613 | 613 | |
614 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
614 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
615 | 615 | } |
616 | 616 | |
617 | - do_action( 'wc_gateway_stripe_process_payment', $response, $order ); |
|
617 | + do_action('wc_gateway_stripe_process_payment', $response, $order); |
|
618 | 618 | |
619 | 619 | // Process valid response. |
620 | - $this->process_response( $response, $order ); |
|
620 | + $this->process_response($response, $order); |
|
621 | 621 | } else { |
622 | 622 | $order->payment_complete(); |
623 | 623 | } |
@@ -628,20 +628,20 @@ discard block |
||
628 | 628 | // Return thank you page redirect. |
629 | 629 | return array( |
630 | 630 | 'result' => 'success', |
631 | - 'redirect' => $this->get_return_url( $order ), |
|
631 | + 'redirect' => $this->get_return_url($order), |
|
632 | 632 | ); |
633 | 633 | |
634 | - } catch ( WC_Stripe_Exception $e ) { |
|
635 | - wc_add_notice( $e->getLocalizedMessage(), 'error' ); |
|
636 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
634 | + } catch (WC_Stripe_Exception $e) { |
|
635 | + wc_add_notice($e->getLocalizedMessage(), 'error'); |
|
636 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
637 | 637 | |
638 | - do_action( 'wc_gateway_stripe_process_payment_error', $e, $order ); |
|
638 | + do_action('wc_gateway_stripe_process_payment_error', $e, $order); |
|
639 | 639 | |
640 | 640 | /* translators: error message */ |
641 | - $order->update_status( 'failed' ); |
|
641 | + $order->update_status('failed'); |
|
642 | 642 | |
643 | - if ( $order->has_status( array( 'pending', 'failed' ) ) ) { |
|
644 | - $this->send_failed_order_email( $order_id ); |
|
643 | + if ($order->has_status(array('pending', 'failed'))) { |
|
644 | + $this->send_failed_order_email($order_id); |
|
645 | 645 | } |
646 | 646 | |
647 | 647 | return array( |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -65,9 +65,9 @@ discard block |
||
65 | 65 | public function __construct() { |
66 | 66 | $this->retry_interval = 1; |
67 | 67 | $this->id = 'stripe_sepa'; |
68 | - $this->method_title = __( 'Stripe SEPA Direct Debit', 'woocommerce-gateway-stripe' ); |
|
68 | + $this->method_title = __('Stripe SEPA Direct Debit', 'woocommerce-gateway-stripe'); |
|
69 | 69 | /* translators: link */ |
70 | - $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout§ion=stripe' ) ); |
|
70 | + $this->method_description = sprintf(__('All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe'), admin_url('admin.php?page=wc-settings&tab=checkout§ion=stripe')); |
|
71 | 71 | $this->supports = array( |
72 | 72 | 'products', |
73 | 73 | 'refunds', |
@@ -92,25 +92,25 @@ discard block |
||
92 | 92 | // Load the settings. |
93 | 93 | $this->init_settings(); |
94 | 94 | |
95 | - $main_settings = get_option( 'woocommerce_stripe_settings' ); |
|
96 | - $this->title = $this->get_option( 'title' ); |
|
97 | - $this->description = $this->get_option( 'description' ); |
|
98 | - $this->enabled = $this->get_option( 'enabled' ); |
|
99 | - $this->testmode = ( ! empty( $main_settings['testmode'] ) && 'yes' === $main_settings['testmode'] ) ? true : false; |
|
100 | - $this->saved_cards = ( ! empty( $main_settings['saved_cards'] ) && 'yes' === $main_settings['saved_cards'] ) ? true : false; |
|
101 | - $this->publishable_key = ! empty( $main_settings['publishable_key'] ) ? $main_settings['publishable_key'] : ''; |
|
102 | - $this->secret_key = ! empty( $main_settings['secret_key'] ) ? $main_settings['secret_key'] : ''; |
|
103 | - $this->statement_descriptor = ! empty( $main_settings['statement_descriptor'] ) ? $main_settings['statement_descriptor'] : ''; |
|
104 | - |
|
105 | - if ( $this->testmode ) { |
|
106 | - $this->publishable_key = ! empty( $main_settings['test_publishable_key'] ) ? $main_settings['test_publishable_key'] : ''; |
|
107 | - $this->secret_key = ! empty( $main_settings['test_secret_key'] ) ? $main_settings['test_secret_key'] : ''; |
|
95 | + $main_settings = get_option('woocommerce_stripe_settings'); |
|
96 | + $this->title = $this->get_option('title'); |
|
97 | + $this->description = $this->get_option('description'); |
|
98 | + $this->enabled = $this->get_option('enabled'); |
|
99 | + $this->testmode = ( ! empty($main_settings['testmode']) && 'yes' === $main_settings['testmode']) ? true : false; |
|
100 | + $this->saved_cards = ( ! empty($main_settings['saved_cards']) && 'yes' === $main_settings['saved_cards']) ? true : false; |
|
101 | + $this->publishable_key = ! empty($main_settings['publishable_key']) ? $main_settings['publishable_key'] : ''; |
|
102 | + $this->secret_key = ! empty($main_settings['secret_key']) ? $main_settings['secret_key'] : ''; |
|
103 | + $this->statement_descriptor = ! empty($main_settings['statement_descriptor']) ? $main_settings['statement_descriptor'] : ''; |
|
104 | + |
|
105 | + if ($this->testmode) { |
|
106 | + $this->publishable_key = ! empty($main_settings['test_publishable_key']) ? $main_settings['test_publishable_key'] : ''; |
|
107 | + $this->secret_key = ! empty($main_settings['test_secret_key']) ? $main_settings['test_secret_key'] : ''; |
|
108 | 108 | } |
109 | 109 | |
110 | - add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) ); |
|
111 | - add_action( 'admin_notices', array( $this, 'check_environment' ) ); |
|
112 | - add_action( 'admin_head', array( $this, 'remove_admin_notice' ) ); |
|
113 | - add_action( 'wp_enqueue_scripts', array( $this, 'payment_scripts' ) ); |
|
110 | + add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); |
|
111 | + add_action('admin_notices', array($this, 'check_environment')); |
|
112 | + add_action('admin_head', array($this, 'remove_admin_notice')); |
|
113 | + add_action('wp_enqueue_scripts', array($this, 'payment_scripts')); |
|
114 | 114 | } |
115 | 115 | |
116 | 116 | /** |
@@ -120,19 +120,19 @@ discard block |
||
120 | 120 | * @version 4.0.0 |
121 | 121 | */ |
122 | 122 | public function check_environment() { |
123 | - if ( ! current_user_can( 'manage_woocommerce' ) ) { |
|
123 | + if ( ! current_user_can('manage_woocommerce')) { |
|
124 | 124 | return; |
125 | 125 | } |
126 | 126 | |
127 | 127 | $environment_warning = $this->get_environment_warning(); |
128 | 128 | |
129 | - if ( $environment_warning ) { |
|
130 | - $this->add_admin_notice( 'bad_environment', 'error', $environment_warning ); |
|
129 | + if ($environment_warning) { |
|
130 | + $this->add_admin_notice('bad_environment', 'error', $environment_warning); |
|
131 | 131 | } |
132 | 132 | |
133 | - foreach ( (array) $this->notices as $notice_key => $notice ) { |
|
134 | - echo "<div class='" . esc_attr( $notice['class'] ) . "'><p>"; |
|
135 | - echo wp_kses( $notice['message'], array( 'a' => array( 'href' => array() ) ) ); |
|
133 | + foreach ((array) $this->notices as $notice_key => $notice) { |
|
134 | + echo "<div class='" . esc_attr($notice['class']) . "'><p>"; |
|
135 | + echo wp_kses($notice['message'], array('a' => array('href' => array()))); |
|
136 | 136 | echo '</p></div>'; |
137 | 137 | } |
138 | 138 | } |
@@ -145,8 +145,8 @@ discard block |
||
145 | 145 | * @version 4.0.0 |
146 | 146 | */ |
147 | 147 | public function get_environment_warning() { |
148 | - if ( 'yes' === $this->enabled && ! in_array( get_woocommerce_currency(), $this->get_supported_currency() ) ) { |
|
149 | - $message = __( 'SEPA is enabled - it requires store currency to be set to Euros.', 'woocommerce-gateway-stripe' ); |
|
148 | + if ('yes' === $this->enabled && ! in_array(get_woocommerce_currency(), $this->get_supported_currency())) { |
|
149 | + $message = __('SEPA is enabled - it requires store currency to be set to Euros.', 'woocommerce-gateway-stripe'); |
|
150 | 150 | |
151 | 151 | return $message; |
152 | 152 | } |
@@ -162,9 +162,9 @@ discard block |
||
162 | 162 | * @return array |
163 | 163 | */ |
164 | 164 | public function get_supported_currency() { |
165 | - return apply_filters( 'wc_stripe_sepa_supported_currencies', array( |
|
165 | + return apply_filters('wc_stripe_sepa_supported_currencies', array( |
|
166 | 166 | 'EUR', |
167 | - ) ); |
|
167 | + )); |
|
168 | 168 | } |
169 | 169 | |
170 | 170 | /** |
@@ -175,11 +175,11 @@ discard block |
||
175 | 175 | * @return bool |
176 | 176 | */ |
177 | 177 | public function is_available() { |
178 | - if ( ! in_array( get_woocommerce_currency(), $this->get_supported_currency() ) ) { |
|
178 | + if ( ! in_array(get_woocommerce_currency(), $this->get_supported_currency())) { |
|
179 | 179 | return false; |
180 | 180 | } |
181 | 181 | |
182 | - if ( is_add_payment_method_page() && ! $this->saved_cards ) { |
|
182 | + if (is_add_payment_method_page() && ! $this->saved_cards) { |
|
183 | 183 | return false; |
184 | 184 | } |
185 | 185 | |
@@ -200,7 +200,7 @@ discard block |
||
200 | 200 | |
201 | 201 | $icons_str .= $icons['sepa']; |
202 | 202 | |
203 | - return apply_filters( 'woocommerce_gateway_icon', $icons_str, $this->id ); |
|
203 | + return apply_filters('woocommerce_gateway_icon', $icons_str, $this->id); |
|
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
@@ -211,19 +211,19 @@ discard block |
||
211 | 211 | * @access public |
212 | 212 | */ |
213 | 213 | public function payment_scripts() { |
214 | - if ( ! is_cart() && ! is_checkout() && ! isset( $_GET['pay_for_order'] ) && ! is_add_payment_method_page() ) { |
|
214 | + if ( ! is_cart() && ! is_checkout() && ! isset($_GET['pay_for_order']) && ! is_add_payment_method_page()) { |
|
215 | 215 | return; |
216 | 216 | } |
217 | 217 | |
218 | - wp_enqueue_style( 'stripe_paymentfonts' ); |
|
219 | - wp_enqueue_script( 'woocommerce_stripe' ); |
|
218 | + wp_enqueue_style('stripe_paymentfonts'); |
|
219 | + wp_enqueue_script('woocommerce_stripe'); |
|
220 | 220 | } |
221 | 221 | |
222 | 222 | /** |
223 | 223 | * Initialize Gateway Settings Form Fields. |
224 | 224 | */ |
225 | 225 | public function init_form_fields() { |
226 | - $this->form_fields = require( WC_STRIPE_PLUGIN_PATH . '/includes/admin/stripe-sepa-settings.php' ); |
|
226 | + $this->form_fields = require(WC_STRIPE_PLUGIN_PATH . '/includes/admin/stripe-sepa-settings.php'); |
|
227 | 227 | } |
228 | 228 | |
229 | 229 | /** |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | */ |
236 | 236 | public function mandate_display() { |
237 | 237 | /* translators: statement descriptor */ |
238 | - printf( __( 'By providing your IBAN and confirming this payment, you are authorizing %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.', 'woocommerce-gateway-stripe' ), WC_Stripe_Helper::clean_statement_descriptor( $this->statement_descriptor ) ); |
|
238 | + printf(__('By providing your IBAN and confirming this payment, you are authorizing %s and Stripe, our payment service provider, to send instructions to your bank to debit your account and your bank to debit your account in accordance with those instructions. You are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.', 'woocommerce-gateway-stripe'), WC_Stripe_Helper::clean_statement_descriptor($this->statement_descriptor)); |
|
239 | 239 | } |
240 | 240 | |
241 | 241 | /** |
@@ -246,24 +246,24 @@ discard block |
||
246 | 246 | */ |
247 | 247 | public function form() { |
248 | 248 | ?> |
249 | - <fieldset id="wc-<?php echo esc_attr( $this->id ); ?>-form" class="wc-payment-form"> |
|
250 | - <?php do_action( 'woocommerce_credit_card_form_start', $this->id ); ?> |
|
249 | + <fieldset id="wc-<?php echo esc_attr($this->id); ?>-form" class="wc-payment-form"> |
|
250 | + <?php do_action('woocommerce_credit_card_form_start', $this->id); ?> |
|
251 | 251 | <p class="wc-stripe-sepa-mandate" style="margin-bottom:40px;"><?php $this->mandate_display(); ?></p> |
252 | 252 | <p class="form-row form-row-wide"> |
253 | 253 | <label for="stripe-sepa-owner"> |
254 | - <?php esc_html_e( 'IBAN Account Name.', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span> |
|
254 | + <?php esc_html_e('IBAN Account Name.', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span> |
|
255 | 255 | </label> |
256 | 256 | <input id="stripe-sepa-owner" name="stripe_sepa_owner" value="" style="border:1px solid #ddd;margin:5px 0;padding:10px 5px;background-color:#fff;outline:0;" /> |
257 | 257 | </p> |
258 | 258 | <p class="form-row form-row-wide"> |
259 | 259 | <label for="stripe-sepa-iban"> |
260 | - <?php esc_html_e( 'IBAN Account Number.', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span> |
|
260 | + <?php esc_html_e('IBAN Account Number.', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span> |
|
261 | 261 | </label> |
262 | 262 | <input id="stripe-sepa-iban" name="stripe_sepa_iban" value="" style="border:1px solid #ddd;margin:5px 0;padding:10px 5px;background-color:#fff;outline:0;" /> |
263 | 263 | </p> |
264 | 264 | <!-- Used to display form errors --> |
265 | 265 | <div class="stripe-source-errors" role="alert"></div> |
266 | - <?php do_action( 'woocommerce_credit_card_form_end', $this->id ); ?> |
|
266 | + <?php do_action('woocommerce_credit_card_form_end', $this->id); ?> |
|
267 | 267 | <div class="clear"></div> |
268 | 268 | </fieldset> |
269 | 269 | <?php |
@@ -275,42 +275,42 @@ discard block |
||
275 | 275 | public function payment_fields() { |
276 | 276 | $user = wp_get_current_user(); |
277 | 277 | $total = WC()->cart->total; |
278 | - $display_tokenization = $this->supports( 'tokenization' ) && is_checkout() && $this->saved_cards; |
|
278 | + $display_tokenization = $this->supports('tokenization') && is_checkout() && $this->saved_cards; |
|
279 | 279 | |
280 | 280 | // If paying from order, we need to get total from order not cart. |
281 | - if ( isset( $_GET['pay_for_order'] ) && ! empty( $_GET['key'] ) ) { |
|
282 | - $order = wc_get_order( wc_get_order_id_by_order_key( wc_clean( $_GET['key'] ) ) ); |
|
281 | + if (isset($_GET['pay_for_order']) && ! empty($_GET['key'])) { |
|
282 | + $order = wc_get_order(wc_get_order_id_by_order_key(wc_clean($_GET['key']))); |
|
283 | 283 | $total = $order->get_total(); |
284 | 284 | } |
285 | 285 | |
286 | - if ( is_add_payment_method_page() ) { |
|
287 | - $pay_button_text = __( 'Add Payment', 'woocommerce-gateway-stripe' ); |
|
288 | - $total = ''; |
|
286 | + if (is_add_payment_method_page()) { |
|
287 | + $pay_button_text = __('Add Payment', 'woocommerce-gateway-stripe'); |
|
288 | + $total = ''; |
|
289 | 289 | } else { |
290 | 290 | $pay_button_text = ''; |
291 | 291 | } |
292 | 292 | |
293 | 293 | echo '<div |
294 | 294 | id="stripe-sepa_debit-payment-data" |
295 | - data-amount="' . esc_attr( WC_Stripe_Helper::get_stripe_amount( $total ) ) . '" |
|
296 | - data-currency="' . esc_attr( strtolower( get_woocommerce_currency() ) ) . '">'; |
|
295 | + data-amount="' . esc_attr(WC_Stripe_Helper::get_stripe_amount($total)) . '" |
|
296 | + data-currency="' . esc_attr(strtolower(get_woocommerce_currency())) . '">'; |
|
297 | 297 | |
298 | - if ( $this->description ) { |
|
299 | - if ( $this->testmode ) { |
|
300 | - $this->description .= ' ' . __( 'TEST MODE ENABLED. In test mode, you can use IBAN number DE89370400440532013000.', 'woocommerce-gateway-stripe' ); |
|
301 | - $this->description = trim( $this->description ); |
|
298 | + if ($this->description) { |
|
299 | + if ($this->testmode) { |
|
300 | + $this->description .= ' ' . __('TEST MODE ENABLED. In test mode, you can use IBAN number DE89370400440532013000.', 'woocommerce-gateway-stripe'); |
|
301 | + $this->description = trim($this->description); |
|
302 | 302 | } |
303 | - echo apply_filters( 'wc_stripe_description', wpautop( wp_kses_post( $this->description ) ) ); |
|
303 | + echo apply_filters('wc_stripe_description', wpautop(wp_kses_post($this->description))); |
|
304 | 304 | } |
305 | 305 | |
306 | - if ( $display_tokenization ) { |
|
306 | + if ($display_tokenization) { |
|
307 | 307 | $this->tokenization_script(); |
308 | 308 | $this->saved_payment_methods(); |
309 | 309 | } |
310 | 310 | |
311 | 311 | $this->form(); |
312 | 312 | |
313 | - if ( apply_filters( 'wc_stripe_display_save_payment_method_checkbox', $display_tokenization ) && ! is_add_payment_method_page() && ! isset( $_GET['change_payment_method'] ) ) { |
|
313 | + if (apply_filters('wc_stripe_display_save_payment_method_checkbox', $display_tokenization) && ! is_add_payment_method_page() && ! isset($_GET['change_payment_method'])) { |
|
314 | 314 | $this->save_payment_method_checkbox(); |
315 | 315 | } |
316 | 316 | |
@@ -328,95 +328,95 @@ discard block |
||
328 | 328 | * |
329 | 329 | * @return array|void |
330 | 330 | */ |
331 | - public function process_payment( $order_id, $retry = true, $force_save_source = false ) { |
|
331 | + public function process_payment($order_id, $retry = true, $force_save_source = false) { |
|
332 | 332 | try { |
333 | - $order = wc_get_order( $order_id ); |
|
333 | + $order = wc_get_order($order_id); |
|
334 | 334 | |
335 | 335 | // This comes from the create account checkbox in the checkout page. |
336 | - $create_account = ! empty( $_POST['createaccount'] ) ? true : false; |
|
336 | + $create_account = ! empty($_POST['createaccount']) ? true : false; |
|
337 | 337 | |
338 | - if ( $create_account ) { |
|
338 | + if ($create_account) { |
|
339 | 339 | $new_customer_id = WC_Stripe_Helper::is_pre_30() ? $order->customer_user : $order->get_customer_id(); |
340 | - $new_stripe_customer = new WC_Stripe_Customer( $new_customer_id ); |
|
340 | + $new_stripe_customer = new WC_Stripe_Customer($new_customer_id); |
|
341 | 341 | $new_stripe_customer->create_customer(); |
342 | 342 | } |
343 | 343 | |
344 | - $prepared_source = $this->prepare_source( get_current_user_id(), $force_save_source ); |
|
344 | + $prepared_source = $this->prepare_source(get_current_user_id(), $force_save_source); |
|
345 | 345 | |
346 | - $this->save_source_to_order( $order, $prepared_source ); |
|
346 | + $this->save_source_to_order($order, $prepared_source); |
|
347 | 347 | |
348 | 348 | // Result from Stripe API request. |
349 | 349 | $response = null; |
350 | 350 | |
351 | - if ( $order->get_total() > 0 ) { |
|
351 | + if ($order->get_total() > 0) { |
|
352 | 352 | // This will throw exception if not valid. |
353 | - $this->validate_minimum_order_amount( $order ); |
|
353 | + $this->validate_minimum_order_amount($order); |
|
354 | 354 | |
355 | - WC_Stripe_Logger::log( "Info: Begin processing payment for order $order_id for the amount of {$order->get_total()}" ); |
|
355 | + WC_Stripe_Logger::log("Info: Begin processing payment for order $order_id for the amount of {$order->get_total()}"); |
|
356 | 356 | |
357 | 357 | // Make the request. |
358 | - $response = WC_Stripe_API::request( $this->generate_payment_request( $order, $prepared_source ) ); |
|
358 | + $response = WC_Stripe_API::request($this->generate_payment_request($order, $prepared_source)); |
|
359 | 359 | |
360 | - if ( ! empty( $response->error ) ) { |
|
360 | + if ( ! empty($response->error)) { |
|
361 | 361 | // Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without. |
362 | - if ( preg_match( '/No such customer/i', $response->error->message ) && $retry ) { |
|
363 | - if ( WC_Stripe_Helper::is_pre_30() ) { |
|
364 | - delete_user_meta( $order->customer_user, '_stripe_customer_id' ); |
|
365 | - delete_post_meta( $order_id, '_stripe_customer_id' ); |
|
362 | + if (preg_match('/No such customer/i', $response->error->message) && $retry) { |
|
363 | + if (WC_Stripe_Helper::is_pre_30()) { |
|
364 | + delete_user_meta($order->customer_user, '_stripe_customer_id'); |
|
365 | + delete_post_meta($order_id, '_stripe_customer_id'); |
|
366 | 366 | } else { |
367 | - delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' ); |
|
368 | - $order->delete_meta_data( '_stripe_customer_id' ); |
|
367 | + delete_user_meta($order->get_customer_id(), '_stripe_customer_id'); |
|
368 | + $order->delete_meta_data('_stripe_customer_id'); |
|
369 | 369 | $order->save(); |
370 | 370 | } |
371 | 371 | |
372 | - return $this->process_payment( $order_id, false, $force_save_source ); |
|
373 | - } elseif ( preg_match( '/No such token/i', $response->error->message ) && $prepared_source->token_id ) { |
|
372 | + return $this->process_payment($order_id, false, $force_save_source); |
|
373 | + } elseif (preg_match('/No such token/i', $response->error->message) && $prepared_source->token_id) { |
|
374 | 374 | // Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message. |
375 | - $wc_token = WC_Payment_Tokens::get( $prepared_source->token_id ); |
|
375 | + $wc_token = WC_Payment_Tokens::get($prepared_source->token_id); |
|
376 | 376 | $wc_token->delete(); |
377 | - $localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' ); |
|
378 | - $order->add_order_note( $localized_message ); |
|
379 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
377 | + $localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe'); |
|
378 | + $order->add_order_note($localized_message); |
|
379 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
380 | 380 | } |
381 | 381 | |
382 | 382 | // We want to retry. |
383 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
384 | - if ( $retry ) { |
|
383 | + if ($this->is_retryable_error($response->error)) { |
|
384 | + if ($retry) { |
|
385 | 385 | // Don't do anymore retries after this. |
386 | - if ( 5 <= $this->retry_interval ) { |
|
386 | + if (5 <= $this->retry_interval) { |
|
387 | 387 | |
388 | - return $this->process_payment( $order_id, false, $force_save_source ); |
|
388 | + return $this->process_payment($order_id, false, $force_save_source); |
|
389 | 389 | } |
390 | 390 | |
391 | - sleep( $this->retry_interval ); |
|
391 | + sleep($this->retry_interval); |
|
392 | 392 | |
393 | 393 | $this->retry_interval++; |
394 | 394 | |
395 | - return $this->process_payment( $order_id, true, $force_save_source ); |
|
395 | + return $this->process_payment($order_id, true, $force_save_source); |
|
396 | 396 | } else { |
397 | - $localized_message = __( 'On going requests error and retries exhausted.', 'woocommerce-gateway-stripe' ); |
|
398 | - $order->add_order_note( $localized_message ); |
|
399 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
397 | + $localized_message = __('On going requests error and retries exhausted.', 'woocommerce-gateway-stripe'); |
|
398 | + $order->add_order_note($localized_message); |
|
399 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
400 | 400 | } |
401 | 401 | } |
402 | 402 | |
403 | 403 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
404 | 404 | |
405 | - if ( 'card_error' === $response->error->type ) { |
|
406 | - $localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
405 | + if ('card_error' === $response->error->type) { |
|
406 | + $localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
407 | 407 | } else { |
408 | - $localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
408 | + $localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
409 | 409 | } |
410 | 410 | |
411 | - $order->add_order_note( $localized_message ); |
|
411 | + $order->add_order_note($localized_message); |
|
412 | 412 | |
413 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
413 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
414 | 414 | } |
415 | 415 | |
416 | - do_action( 'wc_gateway_stripe_process_payment', $response, $order ); |
|
416 | + do_action('wc_gateway_stripe_process_payment', $response, $order); |
|
417 | 417 | |
418 | 418 | // Process valid response. |
419 | - $this->process_response( $response, $order ); |
|
419 | + $this->process_response($response, $order); |
|
420 | 420 | } else { |
421 | 421 | $order->payment_complete(); |
422 | 422 | } |
@@ -427,17 +427,17 @@ discard block |
||
427 | 427 | // Return thank you page redirect. |
428 | 428 | return array( |
429 | 429 | 'result' => 'success', |
430 | - 'redirect' => $this->get_return_url( $order ), |
|
430 | + 'redirect' => $this->get_return_url($order), |
|
431 | 431 | ); |
432 | 432 | |
433 | - } catch ( WC_Stripe_Exception $e ) { |
|
434 | - wc_add_notice( $e->getLocalizedMessage(), 'error' ); |
|
435 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
433 | + } catch (WC_Stripe_Exception $e) { |
|
434 | + wc_add_notice($e->getLocalizedMessage(), 'error'); |
|
435 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
436 | 436 | |
437 | - do_action( 'wc_gateway_stripe_process_payment_error', $e, $order ); |
|
437 | + do_action('wc_gateway_stripe_process_payment_error', $e, $order); |
|
438 | 438 | |
439 | - if ( $order->has_status( array( 'pending', 'failed' ) ) ) { |
|
440 | - $this->send_failed_order_email( $order_id ); |
|
439 | + if ($order->has_status(array('pending', 'failed'))) { |
|
440 | + $this->send_failed_order_email($order_id); |
|
441 | 441 | } |
442 | 442 | |
443 | 443 | return array( |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -23,12 +23,12 @@ discard block |
||
23 | 23 | |
24 | 24 | $this->retry_interval = 1; |
25 | 25 | |
26 | - add_action( 'wp', array( $this, 'maybe_process_redirect_order' ) ); |
|
27 | - add_action( 'woocommerce_order_status_on-hold_to_processing', array( $this, 'capture_payment' ) ); |
|
28 | - add_action( 'woocommerce_order_status_on-hold_to_completed', array( $this, 'capture_payment' ) ); |
|
29 | - add_action( 'woocommerce_order_status_on-hold_to_cancelled', array( $this, 'cancel_payment' ) ); |
|
30 | - add_action( 'woocommerce_order_status_on-hold_to_refunded', array( $this, 'cancel_payment' ) ); |
|
31 | - add_action( 'wc_ajax_wc_stripe_validate_checkout', array( $this, 'validate_checkout' ) ); |
|
26 | + add_action('wp', array($this, 'maybe_process_redirect_order')); |
|
27 | + add_action('woocommerce_order_status_on-hold_to_processing', array($this, 'capture_payment')); |
|
28 | + add_action('woocommerce_order_status_on-hold_to_completed', array($this, 'capture_payment')); |
|
29 | + add_action('woocommerce_order_status_on-hold_to_cancelled', array($this, 'cancel_payment')); |
|
30 | + add_action('woocommerce_order_status_on-hold_to_refunded', array($this, 'cancel_payment')); |
|
31 | + add_action('wc_ajax_wc_stripe_validate_checkout', array($this, 'validate_checkout')); |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
@@ -49,25 +49,25 @@ discard block |
||
49 | 49 | * @since 4.0.0 |
50 | 50 | * @version 4.0.0 |
51 | 51 | */ |
52 | - public function process_redirect_payment( $order_id, $retry = true ) { |
|
52 | + public function process_redirect_payment($order_id, $retry = true) { |
|
53 | 53 | try { |
54 | - $source = wc_clean( $_GET['source'] ); |
|
54 | + $source = wc_clean($_GET['source']); |
|
55 | 55 | |
56 | - if ( empty( $source ) ) { |
|
56 | + if (empty($source)) { |
|
57 | 57 | return; |
58 | 58 | } |
59 | 59 | |
60 | - if ( empty( $order_id ) ) { |
|
60 | + if (empty($order_id)) { |
|
61 | 61 | return; |
62 | 62 | } |
63 | 63 | |
64 | - $order = wc_get_order( $order_id ); |
|
64 | + $order = wc_get_order($order_id); |
|
65 | 65 | |
66 | - if ( ! is_object( $order ) ) { |
|
66 | + if ( ! is_object($order)) { |
|
67 | 67 | return; |
68 | 68 | } |
69 | 69 | |
70 | - if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() || 'on-hold' === $order->get_status() ) { |
|
70 | + if ('processing' === $order->get_status() || 'completed' === $order->get_status() || 'on-hold' === $order->get_status()) { |
|
71 | 71 | return; |
72 | 72 | } |
73 | 73 | |
@@ -75,122 +75,122 @@ discard block |
||
75 | 75 | $response = null; |
76 | 76 | |
77 | 77 | // This will throw exception if not valid. |
78 | - $this->validate_minimum_order_amount( $order ); |
|
78 | + $this->validate_minimum_order_amount($order); |
|
79 | 79 | |
80 | - WC_Stripe_Logger::log( "Info: (Redirect) Begin processing payment for order $order_id for the amount of {$order->get_total()}" ); |
|
80 | + WC_Stripe_Logger::log("Info: (Redirect) Begin processing payment for order $order_id for the amount of {$order->get_total()}"); |
|
81 | 81 | |
82 | 82 | /** |
83 | 83 | * First check if the source is chargeable at this time. If not, |
84 | 84 | * webhook will take care of it later. |
85 | 85 | */ |
86 | - $source_info = WC_Stripe_API::retrieve( 'sources/' . $source ); |
|
86 | + $source_info = WC_Stripe_API::retrieve('sources/' . $source); |
|
87 | 87 | |
88 | - if ( ! empty( $source_info->error ) ) { |
|
89 | - throw new WC_Stripe_Exception( print_r( $source_info, true ), $source_info->error->message ); |
|
88 | + if ( ! empty($source_info->error)) { |
|
89 | + throw new WC_Stripe_Exception(print_r($source_info, true), $source_info->error->message); |
|
90 | 90 | } |
91 | 91 | |
92 | - if ( 'failed' === $source_info->status || 'canceled' === $source_info->status ) { |
|
93 | - throw new WC_Stripe_Exception( print_r( $source_info, true ), __( 'Unable to process this payment, please try again or use alternative method.', 'woocommerce-gateway-stripe' ) ); |
|
92 | + if ('failed' === $source_info->status || 'canceled' === $source_info->status) { |
|
93 | + throw new WC_Stripe_Exception(print_r($source_info, true), __('Unable to process this payment, please try again or use alternative method.', 'woocommerce-gateway-stripe')); |
|
94 | 94 | } |
95 | 95 | |
96 | 96 | // If already consumed, then ignore request. |
97 | - if ( 'consumed' === $source_info->status ) { |
|
97 | + if ('consumed' === $source_info->status) { |
|
98 | 98 | return; |
99 | 99 | } |
100 | 100 | |
101 | 101 | // If not chargeable, then ignore request. |
102 | - if ( 'chargeable' !== $source_info->status ) { |
|
102 | + if ('chargeable' !== $source_info->status) { |
|
103 | 103 | return; |
104 | 104 | } |
105 | 105 | |
106 | 106 | // Prep source object. |
107 | 107 | $source_object = new stdClass(); |
108 | 108 | $source_object->token_id = ''; |
109 | - $source_object->customer = $this->get_stripe_customer_id( $order ); |
|
109 | + $source_object->customer = $this->get_stripe_customer_id($order); |
|
110 | 110 | $source_object->source = $source_info->id; |
111 | 111 | |
112 | 112 | /* If we're doing a retry and source is chargeable, we need to pass |
113 | 113 | * a different idempotency key and retry for success. |
114 | 114 | */ |
115 | - if ( 1 < $this->retry_interval && 'chargeable' === $source_info->status ) { |
|
116 | - add_filter( 'wc_stripe_idempotency_key', array( $this, 'change_idempotency_key' ), 10, 2 ); |
|
115 | + if (1 < $this->retry_interval && 'chargeable' === $source_info->status) { |
|
116 | + add_filter('wc_stripe_idempotency_key', array($this, 'change_idempotency_key'), 10, 2); |
|
117 | 117 | } |
118 | 118 | |
119 | 119 | // Make the request. |
120 | - $response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ) ); |
|
120 | + $response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object)); |
|
121 | 121 | |
122 | - if ( ! empty( $response->error ) ) { |
|
122 | + if ( ! empty($response->error)) { |
|
123 | 123 | // Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without. |
124 | - if ( preg_match( '/No such customer/i', $response->error->message ) && $retry ) { |
|
125 | - if ( WC_Stripe_Helper::is_pre_30() ) { |
|
126 | - delete_user_meta( $order->customer_user, '_stripe_customer_id' ); |
|
127 | - delete_post_meta( $order_id, '_stripe_customer_id' ); |
|
124 | + if (preg_match('/No such customer/i', $response->error->message) && $retry) { |
|
125 | + if (WC_Stripe_Helper::is_pre_30()) { |
|
126 | + delete_user_meta($order->customer_user, '_stripe_customer_id'); |
|
127 | + delete_post_meta($order_id, '_stripe_customer_id'); |
|
128 | 128 | } else { |
129 | - delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' ); |
|
130 | - $order->delete_meta_data( '_stripe_customer_id' ); |
|
129 | + delete_user_meta($order->get_customer_id(), '_stripe_customer_id'); |
|
130 | + $order->delete_meta_data('_stripe_customer_id'); |
|
131 | 131 | $order->save(); |
132 | 132 | } |
133 | 133 | |
134 | - return $this->process_redirect_payment( $order_id, false ); |
|
134 | + return $this->process_redirect_payment($order_id, false); |
|
135 | 135 | |
136 | - } elseif ( preg_match( '/No such token/i', $response->error->message ) && $source_object->token_id ) { |
|
136 | + } elseif (preg_match('/No such token/i', $response->error->message) && $source_object->token_id) { |
|
137 | 137 | // Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message. |
138 | 138 | |
139 | - $wc_token = WC_Payment_Tokens::get( $source_object->token_id ); |
|
139 | + $wc_token = WC_Payment_Tokens::get($source_object->token_id); |
|
140 | 140 | $wc_token->delete(); |
141 | - $message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' ); |
|
142 | - $order->add_order_note( $message ); |
|
143 | - throw new WC_Stripe_Exception( print_r( $response, true ), $message ); |
|
141 | + $message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe'); |
|
142 | + $order->add_order_note($message); |
|
143 | + throw new WC_Stripe_Exception(print_r($response, true), $message); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | // We want to retry. |
147 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
148 | - if ( $retry ) { |
|
147 | + if ($this->is_retryable_error($response->error)) { |
|
148 | + if ($retry) { |
|
149 | 149 | // Don't do anymore retries after this. |
150 | - if ( 5 <= $this->retry_interval ) { |
|
151 | - return $this->process_redirect_payment( $order_id, false ); |
|
150 | + if (5 <= $this->retry_interval) { |
|
151 | + return $this->process_redirect_payment($order_id, false); |
|
152 | 152 | } |
153 | 153 | |
154 | - sleep( $this->retry_interval ); |
|
154 | + sleep($this->retry_interval); |
|
155 | 155 | |
156 | 156 | $this->retry_interval++; |
157 | - return $this->process_redirect_payment( $order_id, true ); |
|
157 | + return $this->process_redirect_payment($order_id, true); |
|
158 | 158 | } else { |
159 | - $localized_message = __( 'On going requests error and retries exhausted.', 'woocommerce-gateway-stripe' ); |
|
160 | - $order->add_order_note( $localized_message ); |
|
161 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
159 | + $localized_message = __('On going requests error and retries exhausted.', 'woocommerce-gateway-stripe'); |
|
160 | + $order->add_order_note($localized_message); |
|
161 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
162 | 162 | } |
163 | 163 | } |
164 | 164 | |
165 | 165 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
166 | 166 | |
167 | - if ( 'card_error' === $response->error->type ) { |
|
168 | - $message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
167 | + if ('card_error' === $response->error->type) { |
|
168 | + $message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
169 | 169 | } else { |
170 | - $message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
170 | + $message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
171 | 171 | } |
172 | 172 | |
173 | - throw new WC_Stripe_Exception( print_r( $response, true ), $message ); |
|
173 | + throw new WC_Stripe_Exception(print_r($response, true), $message); |
|
174 | 174 | } |
175 | 175 | |
176 | - do_action( 'wc_gateway_stripe_process_redirect_payment', $response, $order ); |
|
176 | + do_action('wc_gateway_stripe_process_redirect_payment', $response, $order); |
|
177 | 177 | |
178 | - $this->process_response( $response, $order ); |
|
178 | + $this->process_response($response, $order); |
|
179 | 179 | |
180 | - } catch ( WC_Stripe_Exception $e ) { |
|
181 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
180 | + } catch (WC_Stripe_Exception $e) { |
|
181 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
182 | 182 | |
183 | - do_action( 'wc_gateway_stripe_process_redirect_payment_error', $e, $order ); |
|
183 | + do_action('wc_gateway_stripe_process_redirect_payment_error', $e, $order); |
|
184 | 184 | |
185 | 185 | /* translators: error message */ |
186 | - $order->update_status( 'failed', sprintf( __( 'Stripe payment failed: %s', 'woocommerce-gateway-stripe' ), $e->getLocalizedMessage() ) ); |
|
186 | + $order->update_status('failed', sprintf(__('Stripe payment failed: %s', 'woocommerce-gateway-stripe'), $e->getLocalizedMessage())); |
|
187 | 187 | |
188 | - if ( $order->has_status( array( 'pending', 'failed' ) ) ) { |
|
189 | - $this->send_failed_order_email( $order_id ); |
|
188 | + if ($order->has_status(array('pending', 'failed'))) { |
|
189 | + $this->send_failed_order_email($order_id); |
|
190 | 190 | } |
191 | 191 | |
192 | - wc_add_notice( $e->getLocalizedMessage(), 'error' ); |
|
193 | - wp_safe_redirect( wc_get_checkout_url() ); |
|
192 | + wc_add_notice($e->getLocalizedMessage(), 'error'); |
|
193 | + wp_safe_redirect(wc_get_checkout_url()); |
|
194 | 194 | exit; |
195 | 195 | } |
196 | 196 | } |
@@ -202,13 +202,13 @@ discard block |
||
202 | 202 | * @version 4.0.0 |
203 | 203 | */ |
204 | 204 | public function maybe_process_redirect_order() { |
205 | - if ( ! is_order_received_page() || empty( $_GET['client_secret'] ) || empty( $_GET['source'] ) ) { |
|
205 | + if ( ! is_order_received_page() || empty($_GET['client_secret']) || empty($_GET['source'])) { |
|
206 | 206 | return; |
207 | 207 | } |
208 | 208 | |
209 | - $order_id = wc_clean( $_GET['order_id'] ); |
|
209 | + $order_id = wc_clean($_GET['order_id']); |
|
210 | 210 | |
211 | - $this->process_redirect_payment( $order_id ); |
|
211 | + $this->process_redirect_payment($order_id); |
|
212 | 212 | } |
213 | 213 | |
214 | 214 | /** |
@@ -218,52 +218,52 @@ discard block |
||
218 | 218 | * @version 4.0.0 |
219 | 219 | * @param int $order_id |
220 | 220 | */ |
221 | - public function capture_payment( $order_id ) { |
|
222 | - $order = wc_get_order( $order_id ); |
|
221 | + public function capture_payment($order_id) { |
|
222 | + $order = wc_get_order($order_id); |
|
223 | 223 | |
224 | - if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) { |
|
225 | - $charge = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id(); |
|
226 | - $captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true ); |
|
224 | + if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) { |
|
225 | + $charge = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id(); |
|
226 | + $captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true); |
|
227 | 227 | |
228 | - if ( $charge && 'no' === $captured ) { |
|
228 | + if ($charge && 'no' === $captured) { |
|
229 | 229 | $order_total = $order->get_total(); |
230 | 230 | |
231 | - if ( 0 < $order->get_total_refunded() ) { |
|
231 | + if (0 < $order->get_total_refunded()) { |
|
232 | 232 | $order_total = $order_total - $order->get_total_refunded(); |
233 | 233 | } |
234 | 234 | |
235 | - $result = WC_Stripe_API::request( array( |
|
236 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $order_total ), |
|
235 | + $result = WC_Stripe_API::request(array( |
|
236 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($order_total), |
|
237 | 237 | 'expand[]' => 'balance_transaction', |
238 | - ), 'charges/' . $charge . '/capture' ); |
|
238 | + ), 'charges/' . $charge . '/capture'); |
|
239 | 239 | |
240 | - if ( ! empty( $result->error ) ) { |
|
240 | + if ( ! empty($result->error)) { |
|
241 | 241 | /* translators: error message */ |
242 | - $order->update_status( 'failed', sprintf( __( 'Unable to capture charge! %s', 'woocommerce-gateway-stripe' ), $result->error->message ) ); |
|
242 | + $order->update_status('failed', sprintf(__('Unable to capture charge! %s', 'woocommerce-gateway-stripe'), $result->error->message)); |
|
243 | 243 | } else { |
244 | 244 | /* translators: transaction id */ |
245 | - $order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $result->id ) ); |
|
246 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_stripe_charge_captured', 'yes' ) : $order->update_meta_data( '_stripe_charge_captured', 'yes' ); |
|
245 | + $order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $result->id)); |
|
246 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_stripe_charge_captured', 'yes') : $order->update_meta_data('_stripe_charge_captured', 'yes'); |
|
247 | 247 | |
248 | 248 | // Store other data such as fees |
249 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_transaction_id', $result->id ) : $order->set_transaction_id( $result->id ); |
|
249 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_transaction_id', $result->id) : $order->set_transaction_id($result->id); |
|
250 | 250 | |
251 | - if ( isset( $result->balance_transaction ) && isset( $result->balance_transaction->fee ) ) { |
|
251 | + if (isset($result->balance_transaction) && isset($result->balance_transaction->fee)) { |
|
252 | 252 | // Fees and Net needs to both come from Stripe to be accurate as the returned |
253 | 253 | // values are in the local currency of the Stripe account, not from WC. |
254 | - $fee = ! empty( $result->balance_transaction->fee ) ? WC_Stripe_Helper::format_balance_fee( $result->balance_transaction, 'fee' ) : 0; |
|
255 | - $net = ! empty( $result->balance_transaction->net ) ? WC_Stripe_Helper::format_balance_fee( $result->balance_transaction, 'net' ) : 0; |
|
256 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, parent::META_NAME_FEE, $fee ) : $order->update_meta_data( parent::META_NAME_FEE, $fee ); |
|
257 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, parent::META_NAME_NET, $net ) : $order->update_meta_data( parent::META_NAME_NET, $net ); |
|
254 | + $fee = ! empty($result->balance_transaction->fee) ? WC_Stripe_Helper::format_balance_fee($result->balance_transaction, 'fee') : 0; |
|
255 | + $net = ! empty($result->balance_transaction->net) ? WC_Stripe_Helper::format_balance_fee($result->balance_transaction, 'net') : 0; |
|
256 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, parent::META_NAME_FEE, $fee) : $order->update_meta_data(parent::META_NAME_FEE, $fee); |
|
257 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, parent::META_NAME_NET, $net) : $order->update_meta_data(parent::META_NAME_NET, $net); |
|
258 | 258 | } |
259 | 259 | |
260 | - if ( is_callable( array( $order, 'save' ) ) ) { |
|
260 | + if (is_callable(array($order, 'save'))) { |
|
261 | 261 | $order->save(); |
262 | 262 | } |
263 | 263 | } |
264 | 264 | |
265 | 265 | // This hook fires when admin manually changes order status to processing or completed. |
266 | - do_action( 'woocommerce_stripe_process_manual_capture', $order, $result ); |
|
266 | + do_action('woocommerce_stripe_process_manual_capture', $order, $result); |
|
267 | 267 | } |
268 | 268 | } |
269 | 269 | } |
@@ -275,14 +275,14 @@ discard block |
||
275 | 275 | * @version 4.0.0 |
276 | 276 | * @param int $order_id |
277 | 277 | */ |
278 | - public function cancel_payment( $order_id ) { |
|
279 | - $order = wc_get_order( $order_id ); |
|
278 | + public function cancel_payment($order_id) { |
|
279 | + $order = wc_get_order($order_id); |
|
280 | 280 | |
281 | - if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) { |
|
282 | - $this->process_refund( $order_id ); |
|
281 | + if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) { |
|
282 | + $this->process_refund($order_id); |
|
283 | 283 | |
284 | 284 | // This hook fires when admin manually changes order status to cancel. |
285 | - do_action( 'woocommerce_stripe_process_manual_cancel', $order ); |
|
285 | + do_action('woocommerce_stripe_process_manual_cancel', $order); |
|
286 | 286 | } |
287 | 287 | } |
288 | 288 | |
@@ -294,21 +294,21 @@ discard block |
||
294 | 294 | * @param string $field |
295 | 295 | * @return string $error_field |
296 | 296 | */ |
297 | - public function normalize_field( $field ) { |
|
297 | + public function normalize_field($field) { |
|
298 | 298 | $checkout_fields = WC()->checkout->get_checkout_fields(); |
299 | 299 | $org_str = array(); |
300 | 300 | $replace_str = array(); |
301 | 301 | |
302 | - if ( array_key_exists( $field, $checkout_fields['billing'] ) ) { |
|
303 | - $error_field = __( 'Billing', 'woocommerce-gateway-stripe' ) . ' ' . $checkout_fields['billing'][ $field ]['label']; |
|
304 | - } elseif ( array_key_exists( $field, $checkout_fields['shipping'] ) ) { |
|
305 | - $error_field = __( 'Shipping', 'woocommerce-gateway-stripe' ) . ' ' . $checkout_fields['shipping'][ $field ]['label']; |
|
306 | - } elseif ( array_key_exists( $field, $checkout_fields['order'] ) ) { |
|
307 | - $error_field = $checkout_fields['order'][ $field ]['label']; |
|
308 | - } elseif ( array_key_exists( $field, $checkout_fields['account'] ) ) { |
|
309 | - $error_field = $checkout_fields['account'][ $field ]['label']; |
|
302 | + if (array_key_exists($field, $checkout_fields['billing'])) { |
|
303 | + $error_field = __('Billing', 'woocommerce-gateway-stripe') . ' ' . $checkout_fields['billing'][$field]['label']; |
|
304 | + } elseif (array_key_exists($field, $checkout_fields['shipping'])) { |
|
305 | + $error_field = __('Shipping', 'woocommerce-gateway-stripe') . ' ' . $checkout_fields['shipping'][$field]['label']; |
|
306 | + } elseif (array_key_exists($field, $checkout_fields['order'])) { |
|
307 | + $error_field = $checkout_fields['order'][$field]['label']; |
|
308 | + } elseif (array_key_exists($field, $checkout_fields['account'])) { |
|
309 | + $error_field = $checkout_fields['account'][$field]['label']; |
|
310 | 310 | } else { |
311 | - $error_field = str_replace( '_', ' ', $field ); |
|
311 | + $error_field = str_replace('_', ' ', $field); |
|
312 | 312 | |
313 | 313 | $org_str[] = 'stripe'; |
314 | 314 | $replace_str[] = ''; |
@@ -323,9 +323,9 @@ discard block |
||
323 | 323 | $replace_str[] = 'SOFORT'; |
324 | 324 | |
325 | 325 | $org_str[] = 'owner'; |
326 | - $replace_str[] = __( 'Owner', 'woocommerce-gateway-stripe' ); |
|
326 | + $replace_str[] = __('Owner', 'woocommerce-gateway-stripe'); |
|
327 | 327 | |
328 | - $error_field = str_replace( $org_str, $replace_str, $error_field ); |
|
328 | + $error_field = str_replace($org_str, $replace_str, $error_field); |
|
329 | 329 | } |
330 | 330 | |
331 | 331 | return $error_field; |
@@ -338,135 +338,135 @@ discard block |
||
338 | 338 | * @version 4.0.0 |
339 | 339 | */ |
340 | 340 | public function validate_checkout() { |
341 | - if ( ! wp_verify_nonce( $_POST['nonce'], '_wc_stripe_nonce' ) ) { |
|
342 | - wp_die( __( 'Cheatin’ huh?', 'woocommerce-gateway-stripe' ) ); |
|
341 | + if ( ! wp_verify_nonce($_POST['nonce'], '_wc_stripe_nonce')) { |
|
342 | + wp_die(__('Cheatin’ huh?', 'woocommerce-gateway-stripe')); |
|
343 | 343 | } |
344 | 344 | |
345 | - parse_str( $_POST['required_fields'], $required_fields ); |
|
346 | - parse_str( $_POST['all_fields'], $all_fields ); |
|
345 | + parse_str($_POST['required_fields'], $required_fields); |
|
346 | + parse_str($_POST['all_fields'], $all_fields); |
|
347 | 347 | $validate_shipping_fields = false; |
348 | 348 | $create_account = false; |
349 | 349 | $errors = new WP_Error(); |
350 | - $all_fields = apply_filters( 'wc_stripe_validate_checkout_all_fields', $all_fields ); |
|
351 | - $required_fields = apply_filters( 'wc_stripe_validate_checkout_required_fields', $required_fields ); |
|
350 | + $all_fields = apply_filters('wc_stripe_validate_checkout_all_fields', $all_fields); |
|
351 | + $required_fields = apply_filters('wc_stripe_validate_checkout_required_fields', $required_fields); |
|
352 | 352 | |
353 | - array_walk_recursive( $required_fields, 'wc_clean' ); |
|
354 | - array_walk_recursive( $all_fields, 'wc_clean' ); |
|
353 | + array_walk_recursive($required_fields, 'wc_clean'); |
|
354 | + array_walk_recursive($all_fields, 'wc_clean'); |
|
355 | 355 | |
356 | 356 | /** |
357 | 357 | * If ship to different address checkbox is checked then we need |
358 | 358 | * to validate shipping fields too. |
359 | 359 | */ |
360 | - if ( isset( $all_fields['ship_to_different_address'] ) ) { |
|
360 | + if (isset($all_fields['ship_to_different_address'])) { |
|
361 | 361 | $validate_shipping_fields = true; |
362 | 362 | } |
363 | 363 | |
364 | 364 | // Check if createaccount is checked. |
365 | - if ( isset( $all_fields['createaccount'] ) ) { |
|
365 | + if (isset($all_fields['createaccount'])) { |
|
366 | 366 | $create_account = true; |
367 | 367 | } |
368 | 368 | |
369 | 369 | // Check if required fields are empty. |
370 | - foreach ( $required_fields as $field => $field_value ) { |
|
370 | + foreach ($required_fields as $field => $field_value) { |
|
371 | 371 | // Check for shipping field. |
372 | - if ( preg_match( '/^shipping_/', $field ) && ! $validate_shipping_fields ) { |
|
372 | + if (preg_match('/^shipping_/', $field) && ! $validate_shipping_fields) { |
|
373 | 373 | continue; |
374 | 374 | } |
375 | 375 | |
376 | 376 | // Check create account name. |
377 | - if ( 'account_username' === $field && ! $create_account ) { |
|
377 | + if ('account_username' === $field && ! $create_account) { |
|
378 | 378 | continue; |
379 | 379 | } |
380 | 380 | |
381 | 381 | // Check create account password. |
382 | - if ( 'account_password' === $field && ! $create_account ) { |
|
382 | + if ('account_password' === $field && ! $create_account) { |
|
383 | 383 | continue; |
384 | 384 | } |
385 | 385 | |
386 | - if ( empty( $field_value ) || '-1' === $field_value ) { |
|
387 | - $error_field = $this->normalize_field( $field ); |
|
386 | + if (empty($field_value) || '-1' === $field_value) { |
|
387 | + $error_field = $this->normalize_field($field); |
|
388 | 388 | /* translators: error field name */ |
389 | - $errors->add( 'validation', sprintf( __( '<strong>%s</strong> cannot be empty', 'woocommerce-gateway-stripe' ), $error_field ) ); |
|
389 | + $errors->add('validation', sprintf(__('<strong>%s</strong> cannot be empty', 'woocommerce-gateway-stripe'), $error_field)); |
|
390 | 390 | } |
391 | 391 | } |
392 | 392 | |
393 | 393 | // Check if email is valid format. |
394 | - if ( ! empty( $required_fields['billing_email'] ) && ! is_email( $required_fields['billing_email'] ) ) { |
|
395 | - $errors->add( 'validation', __( '<strong>Billing Email</strong> is not valid', 'woocommerce-gateway-stripe' ) ); |
|
394 | + if ( ! empty($required_fields['billing_email']) && ! is_email($required_fields['billing_email'])) { |
|
395 | + $errors->add('validation', __('<strong>Billing Email</strong> is not valid', 'woocommerce-gateway-stripe')); |
|
396 | 396 | } |
397 | 397 | |
398 | 398 | // Check if phone number is valid format. |
399 | - if ( ! empty( $required_fields['billing_phone'] ) ) { |
|
400 | - $phone = wc_format_phone_number( $required_fields['billing_phone'] ); |
|
399 | + if ( ! empty($required_fields['billing_phone'])) { |
|
400 | + $phone = wc_format_phone_number($required_fields['billing_phone']); |
|
401 | 401 | |
402 | - if ( '' !== $phone && ! WC_Validation::is_phone( $phone ) ) { |
|
402 | + if ('' !== $phone && ! WC_Validation::is_phone($phone)) { |
|
403 | 403 | /* translators: %s: phone number */ |
404 | - $errors->add( 'validation', __( 'Please enter a valid phone number.', 'woocommerce-gateway-stripe' ) ); |
|
404 | + $errors->add('validation', __('Please enter a valid phone number.', 'woocommerce-gateway-stripe')); |
|
405 | 405 | } |
406 | 406 | } |
407 | 407 | |
408 | 408 | // Check if postal code is valid format. |
409 | - if ( ! empty( $required_fields['billing_postcode'] ) ) { |
|
410 | - $country = isset( $required_fields['billing_country'] ) ? $required_fields['billing_country'] : WC()->customer->get_billing_country(); |
|
411 | - $postcode = wc_format_postcode( $required_fields['billing_postcode'], $country ); |
|
409 | + if ( ! empty($required_fields['billing_postcode'])) { |
|
410 | + $country = isset($required_fields['billing_country']) ? $required_fields['billing_country'] : WC()->customer->get_billing_country(); |
|
411 | + $postcode = wc_format_postcode($required_fields['billing_postcode'], $country); |
|
412 | 412 | |
413 | - if ( '' !== $required_fields['billing_postcode'] && ! WC_Validation::is_postcode( $postcode, $country ) ) { |
|
414 | - $errors->add( 'validation', __( 'Please enter a valid billing postcode / ZIP.', 'woocommerce-gateway-stripe' ) ); |
|
413 | + if ('' !== $required_fields['billing_postcode'] && ! WC_Validation::is_postcode($postcode, $country)) { |
|
414 | + $errors->add('validation', __('Please enter a valid billing postcode / ZIP.', 'woocommerce-gateway-stripe')); |
|
415 | 415 | } |
416 | 416 | } |
417 | 417 | |
418 | - if ( WC()->cart->needs_shipping() && $validate_shipping_fields ) { |
|
418 | + if (WC()->cart->needs_shipping() && $validate_shipping_fields) { |
|
419 | 419 | // Check if postal code is valid format. |
420 | - if ( ! empty( $required_fields['shipping_postcode'] ) ) { |
|
421 | - $country = isset( $required_fields['shipping_country'] ) ? $required_fields['shipping_country'] : WC()->customer->get_shipping_country(); |
|
422 | - $postcode = wc_format_postcode( $required_fields['shipping_postcode'], $country ); |
|
420 | + if ( ! empty($required_fields['shipping_postcode'])) { |
|
421 | + $country = isset($required_fields['shipping_country']) ? $required_fields['shipping_country'] : WC()->customer->get_shipping_country(); |
|
422 | + $postcode = wc_format_postcode($required_fields['shipping_postcode'], $country); |
|
423 | 423 | |
424 | - if ( '' !== $required_fields['shipping_postcode'] && ! WC_Validation::is_postcode( $postcode, $country ) ) { |
|
425 | - $errors->add( 'validation', __( 'Please enter a valid shipping postcode / ZIP.', 'woocommerce-gateway-stripe' ) ); |
|
424 | + if ('' !== $required_fields['shipping_postcode'] && ! WC_Validation::is_postcode($postcode, $country)) { |
|
425 | + $errors->add('validation', __('Please enter a valid shipping postcode / ZIP.', 'woocommerce-gateway-stripe')); |
|
426 | 426 | } |
427 | 427 | } |
428 | 428 | } |
429 | 429 | |
430 | - if ( WC()->cart->needs_shipping() ) { |
|
430 | + if (WC()->cart->needs_shipping()) { |
|
431 | 431 | $shipping_country = WC()->customer->get_shipping_country(); |
432 | 432 | |
433 | - if ( empty( $shipping_country ) ) { |
|
434 | - $errors->add( 'shipping', __( 'Please enter an address to continue.', 'woocommerce-gateway-stripe' ) ); |
|
435 | - } elseif ( ! in_array( WC()->customer->get_shipping_country(), array_keys( WC()->countries->get_shipping_countries() ) ) ) { |
|
433 | + if (empty($shipping_country)) { |
|
434 | + $errors->add('shipping', __('Please enter an address to continue.', 'woocommerce-gateway-stripe')); |
|
435 | + } elseif ( ! in_array(WC()->customer->get_shipping_country(), array_keys(WC()->countries->get_shipping_countries()))) { |
|
436 | 436 | /* translators: country name */ |
437 | - $errors->add( 'shipping', sprintf( __( 'Unfortunately <strong>we do not ship %s</strong>. Please enter an alternative shipping address.', 'woocommerce-gateway-stripe' ), WC()->countries->shipping_to_prefix() . ' ' . WC()->customer->get_shipping_country() ) ); |
|
437 | + $errors->add('shipping', sprintf(__('Unfortunately <strong>we do not ship %s</strong>. Please enter an alternative shipping address.', 'woocommerce-gateway-stripe'), WC()->countries->shipping_to_prefix() . ' ' . WC()->customer->get_shipping_country())); |
|
438 | 438 | } else { |
439 | - $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' ); |
|
439 | + $chosen_shipping_methods = WC()->session->get('chosen_shipping_methods'); |
|
440 | 440 | |
441 | - foreach ( WC()->shipping->get_packages() as $i => $package ) { |
|
442 | - if ( ! isset( $chosen_shipping_methods[ $i ], $package['rates'][ $chosen_shipping_methods[ $i ] ] ) ) { |
|
443 | - $errors->add( 'shipping', __( 'No shipping method has been selected. Please double check your address, or contact us if you need any help.', 'woocommerce-gateway-stripe' ) ); |
|
441 | + foreach (WC()->shipping->get_packages() as $i => $package) { |
|
442 | + if ( ! isset($chosen_shipping_methods[$i], $package['rates'][$chosen_shipping_methods[$i]])) { |
|
443 | + $errors->add('shipping', __('No shipping method has been selected. Please double check your address, or contact us if you need any help.', 'woocommerce-gateway-stripe')); |
|
444 | 444 | } |
445 | 445 | } |
446 | 446 | } |
447 | 447 | } |
448 | 448 | |
449 | - if ( WC()->cart->needs_payment() ) { |
|
449 | + if (WC()->cart->needs_payment()) { |
|
450 | 450 | $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); |
451 | 451 | |
452 | - if ( ! isset( $available_gateways[ $all_fields['payment_method'] ] ) ) { |
|
453 | - $errors->add( 'payment', __( 'Invalid payment method.', 'woocommerce-gateway-stripe' ) ); |
|
452 | + if ( ! isset($available_gateways[$all_fields['payment_method']])) { |
|
453 | + $errors->add('payment', __('Invalid payment method.', 'woocommerce-gateway-stripe')); |
|
454 | 454 | } else { |
455 | - $available_gateways[ $all_fields['payment_method'] ]->validate_fields(); |
|
455 | + $available_gateways[$all_fields['payment_method']]->validate_fields(); |
|
456 | 456 | } |
457 | 457 | } |
458 | 458 | |
459 | - if ( empty( $all_fields['woocommerce_checkout_update_totals'] ) && empty( $all_fields['terms'] ) && apply_filters( 'woocommerce_checkout_show_terms', wc_get_page_id( 'terms' ) > 0 ) ) { |
|
460 | - $errors->add( 'terms', __( 'You must accept our Terms & Conditions.', 'woocommerce-gateway-stripe' ) ); |
|
459 | + if (empty($all_fields['woocommerce_checkout_update_totals']) && empty($all_fields['terms']) && apply_filters('woocommerce_checkout_show_terms', wc_get_page_id('terms') > 0)) { |
|
460 | + $errors->add('terms', __('You must accept our Terms & Conditions.', 'woocommerce-gateway-stripe')); |
|
461 | 461 | } |
462 | 462 | |
463 | - do_action( 'wc_stripe_validate_checkout', $required_fields, $all_fields, $errors ); |
|
463 | + do_action('wc_stripe_validate_checkout', $required_fields, $all_fields, $errors); |
|
464 | 464 | |
465 | - if ( 0 === count( $errors->errors ) ) { |
|
466 | - wp_send_json( 'success' ); |
|
465 | + if (0 === count($errors->errors)) { |
|
466 | + wp_send_json('success'); |
|
467 | 467 | } else { |
468 | - foreach ( $errors->get_error_messages() as $message ) { |
|
469 | - wc_add_notice( $message, 'error' ); |
|
468 | + foreach ($errors->get_error_messages() as $message) { |
|
469 | + wc_add_notice($message, 'error'); |
|
470 | 470 | } |
471 | 471 | |
472 | 472 | $this->send_ajax_failure_response(); |
@@ -480,9 +480,9 @@ discard block |
||
480 | 480 | * @version 4.0.0 |
481 | 481 | */ |
482 | 482 | public function send_ajax_failure_response() { |
483 | - if ( is_ajax() ) { |
|
483 | + if (is_ajax()) { |
|
484 | 484 | // only print notices if not reloading the checkout, otherwise they're lost in the page reload. |
485 | - if ( ! isset( WC()->session->reload_checkout ) ) { |
|
485 | + if ( ! isset(WC()->session->reload_checkout)) { |
|
486 | 486 | ob_start(); |
487 | 487 | wc_print_notices(); |
488 | 488 | $messages = ob_get_clean(); |
@@ -490,14 +490,14 @@ discard block |
||
490 | 490 | |
491 | 491 | $response = array( |
492 | 492 | 'result' => 'failure', |
493 | - 'messages' => isset( $messages ) ? $messages : '', |
|
494 | - 'refresh' => isset( WC()->session->refresh_totals ), |
|
495 | - 'reload' => isset( WC()->session->reload_checkout ), |
|
493 | + 'messages' => isset($messages) ? $messages : '', |
|
494 | + 'refresh' => isset(WC()->session->refresh_totals), |
|
495 | + 'reload' => isset(WC()->session->reload_checkout), |
|
496 | 496 | ); |
497 | 497 | |
498 | - unset( WC()->session->refresh_totals, WC()->session->reload_checkout ); |
|
498 | + unset(WC()->session->refresh_totals, WC()->session->reload_checkout); |
|
499 | 499 | |
500 | - wp_send_json( $response ); |
|
500 | + wp_send_json($response); |
|
501 | 501 | } |
502 | 502 | } |
503 | 503 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -32,9 +32,9 @@ discard block |
||
32 | 32 | */ |
33 | 33 | public function __construct() { |
34 | 34 | $this->retry_interval = 2; |
35 | - $stripe_settings = get_option( 'woocommerce_stripe_settings', array() ); |
|
36 | - $this->testmode = ( ! empty( $stripe_settings['testmode'] ) && 'yes' === $stripe_settings['testmode'] ) ? true : false; |
|
37 | - add_action( 'woocommerce_api_wc_stripe', array( $this, 'check_for_webhook' ) ); |
|
35 | + $stripe_settings = get_option('woocommerce_stripe_settings', array()); |
|
36 | + $this->testmode = ( ! empty($stripe_settings['testmode']) && 'yes' === $stripe_settings['testmode']) ? true : false; |
|
37 | + add_action('woocommerce_api_wc_stripe', array($this, 'check_for_webhook')); |
|
38 | 38 | } |
39 | 39 | |
40 | 40 | /** |
@@ -44,24 +44,24 @@ discard block |
||
44 | 44 | * @version 4.0.0 |
45 | 45 | */ |
46 | 46 | public function check_for_webhook() { |
47 | - if ( ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) |
|
48 | - || ! isset( $_GET['wc-api'] ) |
|
49 | - || ( 'wc_stripe' !== $_GET['wc-api'] ) |
|
47 | + if (('POST' !== $_SERVER['REQUEST_METHOD']) |
|
48 | + || ! isset($_GET['wc-api']) |
|
49 | + || ('wc_stripe' !== $_GET['wc-api']) |
|
50 | 50 | ) { |
51 | 51 | return; |
52 | 52 | } |
53 | 53 | |
54 | - $request_body = file_get_contents( 'php://input' ); |
|
55 | - $request_headers = array_change_key_case( $this->get_request_headers(), CASE_UPPER ); |
|
54 | + $request_body = file_get_contents('php://input'); |
|
55 | + $request_headers = array_change_key_case($this->get_request_headers(), CASE_UPPER); |
|
56 | 56 | |
57 | 57 | // Validate it to make sure it is legit. |
58 | - if ( $this->is_valid_request( $request_headers, $request_body ) ) { |
|
59 | - $this->process_webhook( $request_body ); |
|
60 | - status_header( 200 ); |
|
58 | + if ($this->is_valid_request($request_headers, $request_body)) { |
|
59 | + $this->process_webhook($request_body); |
|
60 | + status_header(200); |
|
61 | 61 | exit; |
62 | 62 | } else { |
63 | - WC_Stripe_Logger::log( 'Incoming webhook failed validation: ' . print_r( $request_body, true ) ); |
|
64 | - status_header( 400 ); |
|
63 | + WC_Stripe_Logger::log('Incoming webhook failed validation: ' . print_r($request_body, true)); |
|
64 | + status_header(400); |
|
65 | 65 | exit; |
66 | 66 | } |
67 | 67 | } |
@@ -76,12 +76,12 @@ discard block |
||
76 | 76 | * @param string $request_body The request body from Stripe. |
77 | 77 | * @return bool |
78 | 78 | */ |
79 | - public function is_valid_request( $request_headers = null, $request_body = null ) { |
|
80 | - if ( null === $request_headers || null === $request_body ) { |
|
79 | + public function is_valid_request($request_headers = null, $request_body = null) { |
|
80 | + if (null === $request_headers || null === $request_body) { |
|
81 | 81 | return false; |
82 | 82 | } |
83 | 83 | |
84 | - if ( ! empty( $request_headers['USER-AGENT'] ) && ! preg_match( '/Stripe/', $request_headers['USER-AGENT'] ) ) { |
|
84 | + if ( ! empty($request_headers['USER-AGENT']) && ! preg_match('/Stripe/', $request_headers['USER-AGENT'])) { |
|
85 | 85 | return false; |
86 | 86 | } |
87 | 87 | |
@@ -97,11 +97,11 @@ discard block |
||
97 | 97 | * @version 4.0.0 |
98 | 98 | */ |
99 | 99 | public function get_request_headers() { |
100 | - if ( ! function_exists( 'getallheaders' ) ) { |
|
100 | + if ( ! function_exists('getallheaders')) { |
|
101 | 101 | $headers = []; |
102 | - foreach ( $_SERVER as $name => $value ) { |
|
103 | - if ( 'HTTP_' === substr( $name, 0, 5 ) ) { |
|
104 | - $headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value; |
|
102 | + foreach ($_SERVER as $name => $value) { |
|
103 | + if ('HTTP_' === substr($name, 0, 5)) { |
|
104 | + $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; |
|
105 | 105 | } |
106 | 106 | } |
107 | 107 | |
@@ -120,30 +120,30 @@ discard block |
||
120 | 120 | * @param object $notification |
121 | 121 | * @param bool $retry |
122 | 122 | */ |
123 | - public function process_webhook_payment( $notification, $retry = true ) { |
|
123 | + public function process_webhook_payment($notification, $retry = true) { |
|
124 | 124 | // The following 2 payment methods are synchronous so does not need to be handle via webhook. |
125 | - if ( 'card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type ) { |
|
125 | + if ('card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type) { |
|
126 | 126 | return; |
127 | 127 | } |
128 | 128 | |
129 | - $order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id ); |
|
129 | + $order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id); |
|
130 | 130 | |
131 | - if ( ! $order ) { |
|
132 | - WC_Stripe_Logger::log( 'Could not find order via source ID: ' . $notification->data->object->id ); |
|
131 | + if ( ! $order) { |
|
132 | + WC_Stripe_Logger::log('Could not find order via source ID: ' . $notification->data->object->id); |
|
133 | 133 | return; |
134 | 134 | } |
135 | 135 | |
136 | 136 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
137 | 137 | $source_id = $notification->data->object->id; |
138 | 138 | |
139 | - $is_pending_receiver = ( 'receiver' === $notification->data->object->flow ); |
|
139 | + $is_pending_receiver = ('receiver' === $notification->data->object->flow); |
|
140 | 140 | |
141 | 141 | try { |
142 | - if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() ) { |
|
142 | + if ('processing' === $order->get_status() || 'completed' === $order->get_status()) { |
|
143 | 143 | return; |
144 | 144 | } |
145 | 145 | |
146 | - if ( 'on-hold' === $order->get_status() && ! $is_pending_receiver ) { |
|
146 | + if ('on-hold' === $order->get_status() && ! $is_pending_receiver) { |
|
147 | 147 | return; |
148 | 148 | } |
149 | 149 | |
@@ -151,88 +151,88 @@ discard block |
||
151 | 151 | $response = null; |
152 | 152 | |
153 | 153 | // This will throw exception if not valid. |
154 | - $this->validate_minimum_order_amount( $order ); |
|
154 | + $this->validate_minimum_order_amount($order); |
|
155 | 155 | |
156 | - WC_Stripe_Logger::log( "Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}" ); |
|
156 | + WC_Stripe_Logger::log("Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}"); |
|
157 | 157 | |
158 | 158 | // Prep source object. |
159 | 159 | $source_object = new stdClass(); |
160 | 160 | $source_object->token_id = ''; |
161 | - $source_object->customer = $this->get_stripe_customer_id( $order ); |
|
161 | + $source_object->customer = $this->get_stripe_customer_id($order); |
|
162 | 162 | $source_object->source = $source_id; |
163 | 163 | |
164 | 164 | // Make the request. |
165 | - $response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ) ); |
|
165 | + $response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object)); |
|
166 | 166 | |
167 | - if ( ! empty( $response->error ) ) { |
|
167 | + if ( ! empty($response->error)) { |
|
168 | 168 | // We want to retry. |
169 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
170 | - if ( $retry ) { |
|
169 | + if ($this->is_retryable_error($response->error)) { |
|
170 | + if ($retry) { |
|
171 | 171 | // Don't do anymore retries after this. |
172 | - if ( 5 <= $this->retry_interval ) { |
|
172 | + if (5 <= $this->retry_interval) { |
|
173 | 173 | |
174 | - return $this->process_webhook_payment( $notification, false ); |
|
174 | + return $this->process_webhook_payment($notification, false); |
|
175 | 175 | } |
176 | 176 | |
177 | - sleep( $this->retry_interval ); |
|
177 | + sleep($this->retry_interval); |
|
178 | 178 | |
179 | 179 | $this->retry_interval++; |
180 | - return $this->process_webhook_payment( $notification, true ); |
|
180 | + return $this->process_webhook_payment($notification, true); |
|
181 | 181 | } else { |
182 | - $localized_message = __( 'On going requests error and retries exhausted.', 'woocommerce-gateway-stripe' ); |
|
183 | - $order->add_order_note( $localized_message ); |
|
184 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
182 | + $localized_message = __('On going requests error and retries exhausted.', 'woocommerce-gateway-stripe'); |
|
183 | + $order->add_order_note($localized_message); |
|
184 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
185 | 185 | } |
186 | 186 | } |
187 | 187 | |
188 | 188 | // Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without. |
189 | - if ( preg_match( '/No such customer/i', $response->error->message ) && $retry ) { |
|
190 | - if ( WC_Stripe_Helper::is_pre_30() ) { |
|
191 | - delete_user_meta( $order->customer_user, '_stripe_customer_id' ); |
|
192 | - delete_post_meta( $order_id, '_stripe_customer_id' ); |
|
189 | + if (preg_match('/No such customer/i', $response->error->message) && $retry) { |
|
190 | + if (WC_Stripe_Helper::is_pre_30()) { |
|
191 | + delete_user_meta($order->customer_user, '_stripe_customer_id'); |
|
192 | + delete_post_meta($order_id, '_stripe_customer_id'); |
|
193 | 193 | } else { |
194 | - delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' ); |
|
195 | - $order->delete_meta_data( '_stripe_customer_id' ); |
|
194 | + delete_user_meta($order->get_customer_id(), '_stripe_customer_id'); |
|
195 | + $order->delete_meta_data('_stripe_customer_id'); |
|
196 | 196 | $order->save(); |
197 | 197 | } |
198 | 198 | |
199 | - return $this->process_webhook_payment( $notification, false ); |
|
199 | + return $this->process_webhook_payment($notification, false); |
|
200 | 200 | |
201 | - } elseif ( preg_match( '/No such token/i', $response->error->message ) && $source_object->token_id ) { |
|
201 | + } elseif (preg_match('/No such token/i', $response->error->message) && $source_object->token_id) { |
|
202 | 202 | // Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message. |
203 | - $wc_token = WC_Payment_Tokens::get( $source_object->token_id ); |
|
203 | + $wc_token = WC_Payment_Tokens::get($source_object->token_id); |
|
204 | 204 | $wc_token->delete(); |
205 | - $message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' ); |
|
206 | - $order->add_order_note( $message ); |
|
207 | - throw new WC_Stripe_Exception( print_r( $response, true ), $message ); |
|
205 | + $message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe'); |
|
206 | + $order->add_order_note($message); |
|
207 | + throw new WC_Stripe_Exception(print_r($response, true), $message); |
|
208 | 208 | } |
209 | 209 | |
210 | 210 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
211 | 211 | |
212 | - if ( 'card_error' === $response->error->type ) { |
|
213 | - $localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
212 | + if ('card_error' === $response->error->type) { |
|
213 | + $localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
214 | 214 | } else { |
215 | - $localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
215 | + $localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
216 | 216 | } |
217 | 217 | |
218 | - $order->add_order_note( $localized_message ); |
|
218 | + $order->add_order_note($localized_message); |
|
219 | 219 | |
220 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
220 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
221 | 221 | } |
222 | 222 | |
223 | - do_action( 'wc_gateway_stripe_process_webhook_payment', $response, $order ); |
|
223 | + do_action('wc_gateway_stripe_process_webhook_payment', $response, $order); |
|
224 | 224 | |
225 | - $this->process_response( $response, $order ); |
|
225 | + $this->process_response($response, $order); |
|
226 | 226 | |
227 | - } catch ( WC_Stripe_Exception $e ) { |
|
228 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
227 | + } catch (WC_Stripe_Exception $e) { |
|
228 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
229 | 229 | |
230 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $e, $order ); |
|
230 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $e, $order); |
|
231 | 231 | |
232 | - $statuses = array( 'pending', 'failed' ); |
|
232 | + $statuses = array('pending', 'failed'); |
|
233 | 233 | |
234 | - if ( $order->has_status( $statuses ) ) { |
|
235 | - $this->send_failed_order_email( $order_id ); |
|
234 | + if ($order->has_status($statuses)) { |
|
235 | + $this->send_failed_order_email($order_id); |
|
236 | 236 | } |
237 | 237 | } |
238 | 238 | } |
@@ -245,21 +245,21 @@ discard block |
||
245 | 245 | * @since 4.0.0 |
246 | 246 | * @param object $notification |
247 | 247 | */ |
248 | - public function process_webhook_dispute( $notification ) { |
|
249 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge ); |
|
248 | + public function process_webhook_dispute($notification) { |
|
249 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge); |
|
250 | 250 | |
251 | - if ( ! $order ) { |
|
252 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge ); |
|
251 | + if ( ! $order) { |
|
252 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge); |
|
253 | 253 | return; |
254 | 254 | } |
255 | 255 | |
256 | 256 | /* translators: 1) The URL to the order. */ |
257 | - $order->update_status( 'on-hold', sprintf( __( 'A dispute was created for this order. Response is needed. Please go to your <a href="%s" title="Stripe Dashboard" target="_blank">Stripe Dashboard</a> to review this dispute.', 'woocommerce-gateway-stripe' ), $this->get_transaction_url( $order ) ) ); |
|
257 | + $order->update_status('on-hold', sprintf(__('A dispute was created for this order. Response is needed. Please go to your <a href="%s" title="Stripe Dashboard" target="_blank">Stripe Dashboard</a> to review this dispute.', 'woocommerce-gateway-stripe'), $this->get_transaction_url($order))); |
|
258 | 258 | |
259 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
259 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
260 | 260 | |
261 | 261 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
262 | - $this->send_failed_order_email( $order_id ); |
|
262 | + $this->send_failed_order_email($order_id); |
|
263 | 263 | } |
264 | 264 | |
265 | 265 | /** |
@@ -270,41 +270,41 @@ discard block |
||
270 | 270 | * @version 4.0.0 |
271 | 271 | * @param object $notification |
272 | 272 | */ |
273 | - public function process_webhook_capture( $notification ) { |
|
274 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
273 | + public function process_webhook_capture($notification) { |
|
274 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
275 | 275 | |
276 | - if ( ! $order ) { |
|
277 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
276 | + if ( ! $order) { |
|
277 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
278 | 278 | return; |
279 | 279 | } |
280 | 280 | |
281 | 281 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
282 | 282 | |
283 | - if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) { |
|
284 | - $charge = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id(); |
|
285 | - $captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true ); |
|
283 | + if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) { |
|
284 | + $charge = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id(); |
|
285 | + $captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true); |
|
286 | 286 | |
287 | - if ( $charge && 'no' === $captured ) { |
|
288 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_stripe_charge_captured', 'yes' ) : $order->update_meta_data( '_stripe_charge_captured', 'yes' ); |
|
287 | + if ($charge && 'no' === $captured) { |
|
288 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_stripe_charge_captured', 'yes') : $order->update_meta_data('_stripe_charge_captured', 'yes'); |
|
289 | 289 | |
290 | 290 | // Store other data such as fees |
291 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id ); |
|
291 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id); |
|
292 | 292 | |
293 | - if ( isset( $notification->data->object->balance_transaction ) ) { |
|
294 | - $this->update_fees( $order, $notification->data->object->balance_transaction ); |
|
293 | + if (isset($notification->data->object->balance_transaction)) { |
|
294 | + $this->update_fees($order, $notification->data->object->balance_transaction); |
|
295 | 295 | } |
296 | 296 | |
297 | - if ( is_callable( array( $order, 'save' ) ) ) { |
|
297 | + if (is_callable(array($order, 'save'))) { |
|
298 | 298 | $order->save(); |
299 | 299 | } |
300 | 300 | |
301 | 301 | /* translators: transaction id */ |
302 | - $order->update_status( $order->needs_processing() ? 'processing' : 'completed', sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) ); |
|
302 | + $order->update_status($order->needs_processing() ? 'processing' : 'completed', sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id)); |
|
303 | 303 | |
304 | 304 | // Check and see if capture is partial. |
305 | - if ( $this->is_partial_capture( $notification ) ) { |
|
306 | - $order->set_total( $this->get_partial_amount_to_charge( $notification ) ); |
|
307 | - $order->add_order_note( __( 'This charge was partially captured via Stripe Dashboard', 'woocommerce-gateway-stripe' ) ); |
|
305 | + if ($this->is_partial_capture($notification)) { |
|
306 | + $order->set_total($this->get_partial_amount_to_charge($notification)); |
|
307 | + $order->add_order_note(__('This charge was partially captured via Stripe Dashboard', 'woocommerce-gateway-stripe')); |
|
308 | 308 | $order->save(); |
309 | 309 | } |
310 | 310 | } |
@@ -319,38 +319,38 @@ discard block |
||
319 | 319 | * @version 4.0.0 |
320 | 320 | * @param object $notification |
321 | 321 | */ |
322 | - public function process_webhook_charge_succeeded( $notification ) { |
|
322 | + public function process_webhook_charge_succeeded($notification) { |
|
323 | 323 | // The following payment methods are synchronous so does not need to be handle via webhook. |
324 | - if ( ( isset( $notification->data->object->source->type ) && 'card' === $notification->data->object->source->type ) || ( isset( $notification->data->object->source->type ) && 'three_d_secure' === $notification->data->object->source->type ) ) { |
|
324 | + if ((isset($notification->data->object->source->type) && 'card' === $notification->data->object->source->type) || (isset($notification->data->object->source->type) && 'three_d_secure' === $notification->data->object->source->type)) { |
|
325 | 325 | return; |
326 | 326 | } |
327 | 327 | |
328 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
328 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
329 | 329 | |
330 | - if ( ! $order ) { |
|
331 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
330 | + if ( ! $order) { |
|
331 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
332 | 332 | return; |
333 | 333 | } |
334 | 334 | |
335 | 335 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
336 | 336 | |
337 | - if ( 'on-hold' !== $order->get_status() ) { |
|
337 | + if ('on-hold' !== $order->get_status()) { |
|
338 | 338 | return; |
339 | 339 | } |
340 | 340 | |
341 | 341 | // Store other data such as fees |
342 | - WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id ); |
|
342 | + WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id); |
|
343 | 343 | |
344 | - if ( isset( $notification->data->object->balance_transaction ) ) { |
|
345 | - $this->update_fees( $order, $notification->data->object->balance_transaction ); |
|
344 | + if (isset($notification->data->object->balance_transaction)) { |
|
345 | + $this->update_fees($order, $notification->data->object->balance_transaction); |
|
346 | 346 | } |
347 | 347 | |
348 | - if ( is_callable( array( $order, 'save' ) ) ) { |
|
348 | + if (is_callable(array($order, 'save'))) { |
|
349 | 349 | $order->save(); |
350 | 350 | } |
351 | 351 | |
352 | 352 | /* translators: transaction id */ |
353 | - $order->update_status( $order->needs_processing() ? 'processing' : 'completed', sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) ); |
|
353 | + $order->update_status($order->needs_processing() ? 'processing' : 'completed', sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id)); |
|
354 | 354 | } |
355 | 355 | |
356 | 356 | /** |
@@ -361,23 +361,23 @@ discard block |
||
361 | 361 | * @version 4.0.0 |
362 | 362 | * @param object $notification |
363 | 363 | */ |
364 | - public function process_webhook_charge_failed( $notification ) { |
|
365 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
364 | + public function process_webhook_charge_failed($notification) { |
|
365 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
366 | 366 | |
367 | - if ( ! $order ) { |
|
368 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
367 | + if ( ! $order) { |
|
368 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
369 | 369 | return; |
370 | 370 | } |
371 | 371 | |
372 | 372 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
373 | 373 | |
374 | - if ( 'on-hold' !== $order->get_status() ) { |
|
374 | + if ('on-hold' !== $order->get_status()) { |
|
375 | 375 | return; |
376 | 376 | } |
377 | 377 | |
378 | - $order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) ); |
|
378 | + $order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe')); |
|
379 | 379 | |
380 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
380 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
381 | 381 | } |
382 | 382 | |
383 | 383 | /** |
@@ -388,23 +388,23 @@ discard block |
||
388 | 388 | * @version 4.0.0 |
389 | 389 | * @param object $notification |
390 | 390 | */ |
391 | - public function process_webhook_source_canceled( $notification ) { |
|
392 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
391 | + public function process_webhook_source_canceled($notification) { |
|
392 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
393 | 393 | |
394 | - if ( ! $order ) { |
|
395 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
394 | + if ( ! $order) { |
|
395 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
396 | 396 | return; |
397 | 397 | } |
398 | 398 | |
399 | 399 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
400 | 400 | |
401 | - if ( 'on-hold' !== $order->get_status() || 'cancelled' !== $order->get_status() ) { |
|
401 | + if ('on-hold' !== $order->get_status() || 'cancelled' !== $order->get_status()) { |
|
402 | 402 | return; |
403 | 403 | } |
404 | 404 | |
405 | - $order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) ); |
|
405 | + $order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe')); |
|
406 | 406 | |
407 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
407 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
408 | 408 | } |
409 | 409 | |
410 | 410 | /** |
@@ -415,42 +415,42 @@ discard block |
||
415 | 415 | * @version 4.0.0 |
416 | 416 | * @param object $notification |
417 | 417 | */ |
418 | - public function process_webhook_refund( $notification ) { |
|
419 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
418 | + public function process_webhook_refund($notification) { |
|
419 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
420 | 420 | |
421 | - if ( ! $order ) { |
|
422 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
421 | + if ( ! $order) { |
|
422 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
423 | 423 | return; |
424 | 424 | } |
425 | 425 | |
426 | 426 | $order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id(); |
427 | 427 | |
428 | - if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) { |
|
429 | - $charge = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id(); |
|
430 | - $captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true ); |
|
431 | - $refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_refund_id', true ) : $order->get_meta( '_stripe_refund_id', true ); |
|
428 | + if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) { |
|
429 | + $charge = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id(); |
|
430 | + $captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true); |
|
431 | + $refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_refund_id', true) : $order->get_meta('_stripe_refund_id', true); |
|
432 | 432 | |
433 | 433 | // If the refund ID matches, don't continue to prevent double refunding. |
434 | - if ( $notification->data->object->refunds->data[0]->id === $refund_id ) { |
|
434 | + if ($notification->data->object->refunds->data[0]->id === $refund_id) { |
|
435 | 435 | return; |
436 | 436 | } |
437 | 437 | |
438 | 438 | // Only refund captured charge. |
439 | - if ( $charge ) { |
|
440 | - $reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' ); |
|
439 | + if ($charge) { |
|
440 | + $reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe'); |
|
441 | 441 | |
442 | 442 | // Create the refund. |
443 | - $refund = wc_create_refund( array( |
|
443 | + $refund = wc_create_refund(array( |
|
444 | 444 | 'order_id' => $order_id, |
445 | - 'amount' => $this->get_refund_amount( $notification ), |
|
445 | + 'amount' => $this->get_refund_amount($notification), |
|
446 | 446 | 'reason' => $reason, |
447 | - ) ); |
|
447 | + )); |
|
448 | 448 | |
449 | - if ( is_wp_error( $refund ) ) { |
|
450 | - WC_Stripe_Logger::log( $refund->get_error_message() ); |
|
449 | + if (is_wp_error($refund)) { |
|
450 | + WC_Stripe_Logger::log($refund->get_error_message()); |
|
451 | 451 | } |
452 | 452 | |
453 | - $order->add_order_note( $reason ); |
|
453 | + $order->add_order_note($reason); |
|
454 | 454 | } |
455 | 455 | } |
456 | 456 | } |
@@ -461,21 +461,21 @@ discard block |
||
461 | 461 | * @since 4.0.6 |
462 | 462 | * @param object $notification |
463 | 463 | */ |
464 | - public function process_review_opened( $notification ) { |
|
465 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge ); |
|
464 | + public function process_review_opened($notification) { |
|
465 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge); |
|
466 | 466 | |
467 | - if ( ! $order ) { |
|
468 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge ); |
|
467 | + if ( ! $order) { |
|
468 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge); |
|
469 | 469 | return; |
470 | 470 | } |
471 | 471 | |
472 | 472 | /* translators: 1) The URL to the order. 2) The reason type. */ |
473 | - $message = sprintf( __( 'A review has been opened for this order. Action is needed. Please go to your <a href="%1$s" title="Stripe Dashboard" target="_blank">Stripe Dashboard</a> to review the issue. Reason: (%2$s)', 'woocommerce-gateway-stripe' ), $this->get_transaction_url( $order ), $notification->data->object->reason ); |
|
473 | + $message = sprintf(__('A review has been opened for this order. Action is needed. Please go to your <a href="%1$s" title="Stripe Dashboard" target="_blank">Stripe Dashboard</a> to review the issue. Reason: (%2$s)', 'woocommerce-gateway-stripe'), $this->get_transaction_url($order), $notification->data->object->reason); |
|
474 | 474 | |
475 | - if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) { |
|
476 | - $order->update_status( 'on-hold', $message ); |
|
475 | + if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) { |
|
476 | + $order->update_status('on-hold', $message); |
|
477 | 477 | } else { |
478 | - $order->add_order_note( $message ); |
|
478 | + $order->add_order_note($message); |
|
479 | 479 | } |
480 | 480 | } |
481 | 481 | |
@@ -485,25 +485,25 @@ discard block |
||
485 | 485 | * @since 4.0.6 |
486 | 486 | * @param object $notification |
487 | 487 | */ |
488 | - public function process_review_closed( $notification ) { |
|
489 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge ); |
|
488 | + public function process_review_closed($notification) { |
|
489 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge); |
|
490 | 490 | |
491 | - if ( ! $order ) { |
|
492 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge ); |
|
491 | + if ( ! $order) { |
|
492 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge); |
|
493 | 493 | return; |
494 | 494 | } |
495 | 495 | |
496 | 496 | /* translators: 1) The reason type. */ |
497 | - $message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason ); |
|
497 | + $message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason); |
|
498 | 498 | |
499 | - if ( 'on-hold' === $order->get_status() ) { |
|
500 | - if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) { |
|
501 | - $order->update_status( 'processing', $message ); |
|
499 | + if ('on-hold' === $order->get_status()) { |
|
500 | + if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) { |
|
501 | + $order->update_status('processing', $message); |
|
502 | 502 | } else { |
503 | - $order->add_order_note( $message ); |
|
503 | + $order->add_order_note($message); |
|
504 | 504 | } |
505 | 505 | } else { |
506 | - $order->add_order_note( $message ); |
|
506 | + $order->add_order_note($message); |
|
507 | 507 | } |
508 | 508 | } |
509 | 509 | |
@@ -514,7 +514,7 @@ discard block |
||
514 | 514 | * @version 4.0.0 |
515 | 515 | * @param object $notification |
516 | 516 | */ |
517 | - public function is_partial_capture( $notification ) { |
|
517 | + public function is_partial_capture($notification) { |
|
518 | 518 | return 0 < $notification->data->object->amount_refunded; |
519 | 519 | } |
520 | 520 | |
@@ -525,11 +525,11 @@ discard block |
||
525 | 525 | * @version 4.0.0 |
526 | 526 | * @param object $notification |
527 | 527 | */ |
528 | - public function get_refund_amount( $notification ) { |
|
529 | - if ( $this->is_partial_capture( $notification ) ) { |
|
528 | + public function get_refund_amount($notification) { |
|
529 | + if ($this->is_partial_capture($notification)) { |
|
530 | 530 | $amount = $notification->data->object->amount_refunded / 100; |
531 | 531 | |
532 | - if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) { |
|
532 | + if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) { |
|
533 | 533 | $amount = $notification->data->object->amount_refunded; |
534 | 534 | } |
535 | 535 | |
@@ -546,12 +546,12 @@ discard block |
||
546 | 546 | * @version 4.0.0 |
547 | 547 | * @param object $notification |
548 | 548 | */ |
549 | - public function get_partial_amount_to_charge( $notification ) { |
|
550 | - if ( $this->is_partial_capture( $notification ) ) { |
|
551 | - $amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100; |
|
549 | + public function get_partial_amount_to_charge($notification) { |
|
550 | + if ($this->is_partial_capture($notification)) { |
|
551 | + $amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100; |
|
552 | 552 | |
553 | - if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) { |
|
554 | - $amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ); |
|
553 | + if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) { |
|
554 | + $amount = ($notification->data->object->amount - $notification->data->object->amount_refunded); |
|
555 | 555 | } |
556 | 556 | |
557 | 557 | return $amount; |
@@ -567,44 +567,44 @@ discard block |
||
567 | 567 | * @version 4.0.0 |
568 | 568 | * @param string $request_body |
569 | 569 | */ |
570 | - public function process_webhook( $request_body ) { |
|
571 | - $notification = json_decode( $request_body ); |
|
570 | + public function process_webhook($request_body) { |
|
571 | + $notification = json_decode($request_body); |
|
572 | 572 | |
573 | - switch ( $notification->type ) { |
|
573 | + switch ($notification->type) { |
|
574 | 574 | case 'source.chargeable': |
575 | - $this->process_webhook_payment( $notification ); |
|
575 | + $this->process_webhook_payment($notification); |
|
576 | 576 | break; |
577 | 577 | |
578 | 578 | case 'source.canceled': |
579 | - $this->process_webhook_source_canceled( $notification ); |
|
579 | + $this->process_webhook_source_canceled($notification); |
|
580 | 580 | break; |
581 | 581 | |
582 | 582 | case 'charge.succeeded': |
583 | - $this->process_webhook_charge_succeeded( $notification ); |
|
583 | + $this->process_webhook_charge_succeeded($notification); |
|
584 | 584 | break; |
585 | 585 | |
586 | 586 | case 'charge.failed': |
587 | - $this->process_webhook_charge_failed( $notification ); |
|
587 | + $this->process_webhook_charge_failed($notification); |
|
588 | 588 | break; |
589 | 589 | |
590 | 590 | case 'charge.captured': |
591 | - $this->process_webhook_capture( $notification ); |
|
591 | + $this->process_webhook_capture($notification); |
|
592 | 592 | break; |
593 | 593 | |
594 | 594 | case 'charge.dispute.created': |
595 | - $this->process_webhook_dispute( $notification ); |
|
595 | + $this->process_webhook_dispute($notification); |
|
596 | 596 | break; |
597 | 597 | |
598 | 598 | case 'charge.refunded': |
599 | - $this->process_webhook_refund( $notification ); |
|
599 | + $this->process_webhook_refund($notification); |
|
600 | 600 | break; |
601 | 601 | |
602 | 602 | case 'review.opened': |
603 | - $this->process_review_opened( $notification ); |
|
603 | + $this->process_review_opened($notification); |
|
604 | 604 | break; |
605 | 605 | |
606 | 606 | case 'review.closed': |
607 | - $this->process_review_closed( $notification ); |
|
607 | + $this->process_review_closed($notification); |
|
608 | 608 | break; |
609 | 609 | |
610 | 610 | } |