Completed
Push — master ( 3f5bac...4fadef )
by Roy
02:27
created
includes/payment-methods/class-wc-gateway-stripe-sepa.php 1 patch
Spacing   +96 added lines, -96 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if ( ! defined('ABSPATH')) {
3 3
 	exit;
4 4
 }
5 5
 
@@ -72,9 +72,9 @@  discard block
 block discarded – undo
72 72
 	public function __construct() {
73 73
 		$this->retry_interval       = 1;
74 74
 		$this->id                   = 'stripe_sepa';
75
-		$this->method_title         = __( 'Stripe SEPA Direct Debit', 'woocommerce-gateway-stripe' );
75
+		$this->method_title         = __('Stripe SEPA Direct Debit', 'woocommerce-gateway-stripe');
76 76
 		/* translators: link */
77
-		$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&section=stripe' ) );
77
+		$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&section=stripe'));
78 78
 		$this->supports             = array(
79 79
 			'products',
80 80
 			'refunds',
@@ -99,28 +99,28 @@  discard block
 block discarded – undo
99 99
 		// Load the settings.
100 100
 		$this->init_settings();
101 101
 
102
-		$main_settings              = get_option( 'woocommerce_stripe_settings' );
103
-		$this->title                = $this->get_option( 'title' );
104
-		$this->description          = $this->get_option( 'description' );
105
-		$this->enabled              = $this->get_option( 'enabled' );
106
-		$this->testmode             = ( ! empty( $main_settings['testmode'] ) && 'yes' === $main_settings['testmode'] ) ? true : false;
107
-		$this->saved_cards          = ( ! empty( $main_settings['saved_cards'] ) && 'yes' === $main_settings['saved_cards'] ) ? true : false;
108
-		$this->publishable_key      = ! empty( $main_settings['publishable_key'] ) ? $main_settings['publishable_key'] : '';
109
-		$this->secret_key           = ! empty( $main_settings['secret_key'] ) ? $main_settings['secret_key'] : '';
110
-		$this->statement_descriptor = ! empty( $main_settings['statement_descriptor'] ) ? $main_settings['statement_descriptor'] : '';
111
-
112
-		if ( $this->testmode ) {
113
-			$this->publishable_key = ! empty( $main_settings['test_publishable_key'] ) ? $main_settings['test_publishable_key'] : '';
114
-			$this->secret_key      = ! empty( $main_settings['test_secret_key'] ) ? $main_settings['test_secret_key'] : '';
102
+		$main_settings              = get_option('woocommerce_stripe_settings');
103
+		$this->title                = $this->get_option('title');
104
+		$this->description          = $this->get_option('description');
105
+		$this->enabled              = $this->get_option('enabled');
106
+		$this->testmode             = ( ! empty($main_settings['testmode']) && 'yes' === $main_settings['testmode']) ? true : false;
107
+		$this->saved_cards          = ( ! empty($main_settings['saved_cards']) && 'yes' === $main_settings['saved_cards']) ? true : false;
108
+		$this->publishable_key      = ! empty($main_settings['publishable_key']) ? $main_settings['publishable_key'] : '';
109
+		$this->secret_key           = ! empty($main_settings['secret_key']) ? $main_settings['secret_key'] : '';
110
+		$this->statement_descriptor = ! empty($main_settings['statement_descriptor']) ? $main_settings['statement_descriptor'] : '';
111
+
112
+		if ($this->testmode) {
113
+			$this->publishable_key = ! empty($main_settings['test_publishable_key']) ? $main_settings['test_publishable_key'] : '';
114
+			$this->secret_key      = ! empty($main_settings['test_secret_key']) ? $main_settings['test_secret_key'] : '';
115 115
 		}
116 116
 
117
-		add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) );
118
-		add_action( 'wp_enqueue_scripts', array( $this, 'payment_scripts' ) );
117
+		add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options'));
118
+		add_action('wp_enqueue_scripts', array($this, 'payment_scripts'));
119 119
 
120
-		if ( WC_Stripe_Helper::is_pre_orders_exists() ) {
120
+		if (WC_Stripe_Helper::is_pre_orders_exists()) {
121 121
 			$this->pre_orders = new WC_Stripe_Pre_Orders_Compat();
122 122
 
123
-			add_action( 'wc_pre_orders_process_pre_order_completion_payment_' . $this->id, array( $this->pre_orders, 'process_pre_order_release_payment' ) );
123
+			add_action('wc_pre_orders_process_pre_order_completion_payment_' . $this->id, array($this->pre_orders, 'process_pre_order_release_payment'));
124 124
 		}
125 125
 	}
126 126
 
@@ -132,9 +132,9 @@  discard block
 block discarded – undo
132 132
 	 * @return array
133 133
 	 */
134 134
 	public function get_supported_currency() {
135
-		return apply_filters( 'wc_stripe_sepa_supported_currencies', array(
135
+		return apply_filters('wc_stripe_sepa_supported_currencies', array(
136 136
 			'EUR',
137
-		) );
137
+		));
138 138
 	}
139 139
 
140 140
 	/**
@@ -145,11 +145,11 @@  discard block
 block discarded – undo
145 145
 	 * @return bool
146 146
 	 */
147 147
 	public function is_available() {
148
-		if ( ! in_array( get_woocommerce_currency(), $this->get_supported_currency() ) ) {
148
+		if ( ! in_array(get_woocommerce_currency(), $this->get_supported_currency())) {
149 149
 			return false;
150 150
 		}
151 151
 
152
-		if ( is_add_payment_method_page() && ! $this->saved_cards ) {
152
+		if (is_add_payment_method_page() && ! $this->saved_cards) {
153 153
 			return false;
154 154
 		}
155 155
 
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
 
171 171
 		$icons_str .= $icons['sepa'];
172 172
 
173
-		return apply_filters( 'woocommerce_gateway_icon', $icons_str, $this->id );
173
+		return apply_filters('woocommerce_gateway_icon', $icons_str, $this->id);
174 174
 	}
175 175
 
176 176
 	/**
@@ -181,19 +181,19 @@  discard block
 block discarded – undo
181 181
 	 * @access public
182 182
 	 */
183 183
 	public function payment_scripts() {
184
-		if ( ! is_cart() && ! is_checkout() && ! isset( $_GET['pay_for_order'] ) && ! is_add_payment_method_page() ) {
184
+		if ( ! is_cart() && ! is_checkout() && ! isset($_GET['pay_for_order']) && ! is_add_payment_method_page()) {
185 185
 			return;
186 186
 		}
187 187
 
188
-		wp_enqueue_style( 'stripe_styles' );
189
-		wp_enqueue_script( 'woocommerce_stripe' );
188
+		wp_enqueue_style('stripe_styles');
189
+		wp_enqueue_script('woocommerce_stripe');
190 190
 	}
191 191
 
192 192
 	/**
193 193
 	 * Initialize Gateway Settings Form Fields.
194 194
 	 */
195 195
 	public function init_form_fields() {
196
-		$this->form_fields = require( WC_STRIPE_PLUGIN_PATH . '/includes/admin/stripe-sepa-settings.php' );
196
+		$this->form_fields = require(WC_STRIPE_PLUGIN_PATH . '/includes/admin/stripe-sepa-settings.php');
197 197
 	}
198 198
 
199 199
 	/**
@@ -205,7 +205,7 @@  discard block
 block discarded – undo
205 205
 	 */
206 206
 	public function mandate_display() {
207 207
 		/* translators: statement descriptor */
208
-		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 ) );
208
+		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));
209 209
 	}
210 210
 
211 211
 	/**
@@ -216,24 +216,24 @@  discard block
 block discarded – undo
216 216
 	 */
217 217
 	public function form() {
218 218
 		?>
219
-		<fieldset id="wc-<?php echo esc_attr( $this->id ); ?>-form" class="wc-payment-form">
220
-			<?php do_action( 'woocommerce_credit_card_form_start', $this->id ); ?>
219
+		<fieldset id="wc-<?php echo esc_attr($this->id); ?>-form" class="wc-payment-form">
220
+			<?php do_action('woocommerce_credit_card_form_start', $this->id); ?>
221 221
 			<p class="wc-stripe-sepa-mandate" style="margin-bottom:40px;"><?php $this->mandate_display(); ?></p>
222 222
 			<p class="form-row form-row-wide">
223 223
 				<label for="stripe-sepa-owner">
224
-					<?php esc_html_e( 'IBAN Account Name.', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span>
224
+					<?php esc_html_e('IBAN Account Name.', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span>
225 225
 				</label>
226 226
 				<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;" />
227 227
 			</p>
228 228
 			<p class="form-row form-row-wide">
229 229
 				<label for="stripe-sepa-iban">
230
-					<?php esc_html_e( 'IBAN Account Number.', 'woocommerce-gateway-stripe' ); ?> <span class="required">*</span>
230
+					<?php esc_html_e('IBAN Account Number.', 'woocommerce-gateway-stripe'); ?> <span class="required">*</span>
231 231
 				</label>
232 232
 				<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;" />
233 233
 			</p>
234 234
 			<!-- Used to display form errors -->
235 235
 			<div class="stripe-source-errors" role="alert"></div>
236
-			<?php do_action( 'woocommerce_credit_card_form_end', $this->id ); ?>
236
+			<?php do_action('woocommerce_credit_card_form_end', $this->id); ?>
237 237
 			<div class="clear"></div>
238 238
 		</fieldset>
239 239
 		<?php
@@ -244,40 +244,40 @@  discard block
 block discarded – undo
244 244
 	 */
245 245
 	public function payment_fields() {
246 246
 		$total                = WC()->cart->total;
247
-		$display_tokenization = $this->supports( 'tokenization' ) && is_checkout() && $this->saved_cards;
247
+		$display_tokenization = $this->supports('tokenization') && is_checkout() && $this->saved_cards;
248 248
 		$description          = $this->get_description() ? $this->get_description() : '';
249 249
 
250 250
 		// If paying from order, we need to get total from order not cart.
251
-		if ( isset( $_GET['pay_for_order'] ) && ! empty( $_GET['key'] ) ) {
252
-			$order = wc_get_order( wc_get_order_id_by_order_key( wc_clean( $_GET['key'] ) ) );
251
+		if (isset($_GET['pay_for_order']) && ! empty($_GET['key'])) {
252
+			$order = wc_get_order(wc_get_order_id_by_order_key(wc_clean($_GET['key'])));
253 253
 			$total = $order->get_total();
254 254
 		}
255 255
 
256
-		if ( is_add_payment_method_page() ) {
256
+		if (is_add_payment_method_page()) {
257 257
 			$total = '';
258 258
 		}
259 259
 
260 260
 		echo '<div
261 261
 			id="stripe-sepa_debit-payment-data"
262
-			data-amount="' . esc_attr( WC_Stripe_Helper::get_stripe_amount( $total ) ) . '"
263
-			data-currency="' . esc_attr( strtolower( get_woocommerce_currency() ) ) . '">';
262
+			data-amount="' . esc_attr(WC_Stripe_Helper::get_stripe_amount($total)) . '"
263
+			data-currency="' . esc_attr(strtolower(get_woocommerce_currency())) . '">';
264 264
 
265
-		if ( $description ) {
266
-			if ( $this->testmode ) {
267
-				$description .= ' ' . __( 'TEST MODE ENABLED. In test mode, you can use IBAN number DE89370400440532013000.', 'woocommerce-gateway-stripe' );
268
-				$description  = trim( $description );
265
+		if ($description) {
266
+			if ($this->testmode) {
267
+				$description .= ' ' . __('TEST MODE ENABLED. In test mode, you can use IBAN number DE89370400440532013000.', 'woocommerce-gateway-stripe');
268
+				$description  = trim($description);
269 269
 			}
270
-			echo apply_filters( 'wc_stripe_description', wpautop( wp_kses_post( $description ) ), $this->id );
270
+			echo apply_filters('wc_stripe_description', wpautop(wp_kses_post($description)), $this->id);
271 271
 		}
272 272
 
273
-		if ( $display_tokenization ) {
273
+		if ($display_tokenization) {
274 274
 			$this->tokenization_script();
275 275
 			$this->saved_payment_methods();
276 276
 		}
277 277
 
278 278
 		$this->form();
279 279
 
280
-		if ( apply_filters( 'wc_stripe_display_save_payment_method_checkbox', $display_tokenization ) && ! is_add_payment_method_page() && ! isset( $_GET['change_payment_method'] ) ) {
280
+		if (apply_filters('wc_stripe_display_save_payment_method_checkbox', $display_tokenization) && ! is_add_payment_method_page() && ! isset($_GET['change_payment_method'])) {
281 281
 			$this->save_payment_method_checkbox();
282 282
 		}
283 283
 
@@ -295,99 +295,99 @@  discard block
 block discarded – undo
295 295
 	 *
296 296
 	 * @return array|void
297 297
 	 */
298
-	public function process_payment( $order_id, $retry = true, $force_save_source = false ) {
298
+	public function process_payment($order_id, $retry = true, $force_save_source = false) {
299 299
 		try {
300
-			$order = wc_get_order( $order_id );
300
+			$order = wc_get_order($order_id);
301 301
 
302
-			if ( $this->maybe_process_pre_orders( $order_id ) ) {
303
-				return $this->pre_orders->process_pre_order( $order_id );
302
+			if ($this->maybe_process_pre_orders($order_id)) {
303
+				return $this->pre_orders->process_pre_order($order_id);
304 304
 			}
305 305
 
306 306
 			// This comes from the create account checkbox in the checkout page.
307
-			$create_account = ! empty( $_POST['createaccount'] ) ? true : false;
307
+			$create_account = ! empty($_POST['createaccount']) ? true : false;
308 308
 
309
-			if ( $create_account ) {
309
+			if ($create_account) {
310 310
 				$new_customer_id     = WC_Stripe_Helper::is_pre_30() ? $order->customer_user : $order->get_customer_id();
311
-				$new_stripe_customer = new WC_Stripe_Customer( $new_customer_id );
311
+				$new_stripe_customer = new WC_Stripe_Customer($new_customer_id);
312 312
 				$new_stripe_customer->create_customer();
313 313
 			}
314 314
 
315
-			$prepared_source = $this->prepare_source( get_current_user_id(), $force_save_source );
315
+			$prepared_source = $this->prepare_source(get_current_user_id(), $force_save_source);
316 316
 
317
-			$this->save_source_to_order( $order, $prepared_source );
317
+			$this->save_source_to_order($order, $prepared_source);
318 318
 
319 319
 			// Result from Stripe API request.
320 320
 			$response = null;
321 321
 
322
-			if ( $order->get_total() > 0 ) {
322
+			if ($order->get_total() > 0) {
323 323
 				// This will throw exception if not valid.
324
-				$this->validate_minimum_order_amount( $order );
324
+				$this->validate_minimum_order_amount($order);
325 325
 
326
-				WC_Stripe_Logger::log( "Info: Begin processing payment for order $order_id for the amount of {$order->get_total()}" );
326
+				WC_Stripe_Logger::log("Info: Begin processing payment for order $order_id for the amount of {$order->get_total()}");
327 327
 
328 328
 				// Make the request.
329
-				$response = WC_Stripe_API::request( $this->generate_payment_request( $order, $prepared_source ) );
329
+				$response = WC_Stripe_API::request($this->generate_payment_request($order, $prepared_source));
330 330
 
331
-				if ( ! empty( $response->error ) ) {
331
+				if ( ! empty($response->error)) {
332 332
 					// Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without.
333
-					if ( $this->is_no_such_customer_error( $response->error ) ) {
334
-						if ( WC_Stripe_Helper::is_pre_30() ) {
335
-							delete_user_meta( $order->customer_user, '_stripe_customer_id' );
336
-							delete_post_meta( $order_id, '_stripe_customer_id' );
333
+					if ($this->is_no_such_customer_error($response->error)) {
334
+						if (WC_Stripe_Helper::is_pre_30()) {
335
+							delete_user_meta($order->customer_user, '_stripe_customer_id');
336
+							delete_post_meta($order_id, '_stripe_customer_id');
337 337
 						} else {
338
-							delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' );
339
-							$order->delete_meta_data( '_stripe_customer_id' );
338
+							delete_user_meta($order->get_customer_id(), '_stripe_customer_id');
339
+							$order->delete_meta_data('_stripe_customer_id');
340 340
 							$order->save();
341 341
 						}
342 342
 					}
343 343
 
344
-					if ( $this->is_no_such_token_error( $response->error ) && $prepared_source->token_id ) {
344
+					if ($this->is_no_such_token_error($response->error) && $prepared_source->token_id) {
345 345
 						// Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message.
346
-						$wc_token = WC_Payment_Tokens::get( $prepared_source->token_id );
346
+						$wc_token = WC_Payment_Tokens::get($prepared_source->token_id);
347 347
 						$wc_token->delete();
348
-						$localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' );
349
-						$order->add_order_note( $localized_message );
350
-						throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
348
+						$localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe');
349
+						$order->add_order_note($localized_message);
350
+						throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
351 351
 					}
352 352
 
353 353
 					// We want to retry.
354
-					if ( $this->is_retryable_error( $response->error ) ) {
355
-						if ( $retry ) {
354
+					if ($this->is_retryable_error($response->error)) {
355
+						if ($retry) {
356 356
 							// Don't do anymore retries after this.
357
-							if ( 5 <= $this->retry_interval ) {
357
+							if (5 <= $this->retry_interval) {
358 358
 
359
-								return $this->process_payment( $order_id, false, $force_save_source );
359
+								return $this->process_payment($order_id, false, $force_save_source);
360 360
 							}
361 361
 
362
-							sleep( $this->retry_interval );
362
+							sleep($this->retry_interval);
363 363
 
364 364
 							$this->retry_interval++;
365 365
 
366
-							return $this->process_payment( $order_id, true, $force_save_source );
366
+							return $this->process_payment($order_id, true, $force_save_source);
367 367
 						} else {
368
-							$localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' );
369
-							$order->add_order_note( $localized_message );
370
-							throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
368
+							$localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe');
369
+							$order->add_order_note($localized_message);
370
+							throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
371 371
 						}
372 372
 					}
373 373
 
374 374
 					$localized_messages = WC_Stripe_Helper::get_localized_messages();
375 375
 
376
-					if ( 'card_error' === $response->error->type ) {
377
-						$localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message;
376
+					if ('card_error' === $response->error->type) {
377
+						$localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message;
378 378
 					} else {
379
-						$localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message;
379
+						$localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message;
380 380
 					}
381 381
 
382
-					$order->add_order_note( $localized_message );
382
+					$order->add_order_note($localized_message);
383 383
 
384
-					throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
384
+					throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
385 385
 				}
386 386
 
387
-				do_action( 'wc_gateway_stripe_process_payment', $response, $order );
387
+				do_action('wc_gateway_stripe_process_payment', $response, $order);
388 388
 
389 389
 				// Process valid response.
390
-				$this->process_response( $response, $order );
390
+				$this->process_response($response, $order);
391 391
 			} else {
392 392
 				$order->payment_complete();
393 393
 			}
@@ -398,17 +398,17 @@  discard block
 block discarded – undo
398 398
 			// Return thank you page redirect.
399 399
 			return array(
400 400
 				'result'   => 'success',
401
-				'redirect' => $this->get_return_url( $order ),
401
+				'redirect' => $this->get_return_url($order),
402 402
 			);
403 403
 
404
-		} catch ( WC_Stripe_Exception $e ) {
405
-			wc_add_notice( $e->getLocalizedMessage(), 'error' );
406
-			WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() );
404
+		} catch (WC_Stripe_Exception $e) {
405
+			wc_add_notice($e->getLocalizedMessage(), 'error');
406
+			WC_Stripe_Logger::log('Error: ' . $e->getMessage());
407 407
 
408
-			do_action( 'wc_gateway_stripe_process_payment_error', $e, $order );
408
+			do_action('wc_gateway_stripe_process_payment_error', $e, $order);
409 409
 
410
-			if ( $order->has_status( array( 'pending', 'failed' ) ) ) {
411
-				$this->send_failed_order_email( $order_id );
410
+			if ($order->has_status(array('pending', 'failed'))) {
411
+				$this->send_failed_order_email($order_id);
412 412
 			}
413 413
 
414 414
 			return array(
Please login to merge, or discard this patch.