Completed
Pull Request — master (#1042)
by Radoslav
02:32
created
includes/class-wc-stripe-webhook-handler.php 1 patch
Spacing   +241 added lines, -241 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
 
@@ -39,12 +39,12 @@  discard block
 block discarded – undo
39 39
 	 */
40 40
 	public function __construct() {
41 41
 		$this->retry_interval = 2;
42
-		$stripe_settings      = get_option( 'woocommerce_stripe_settings', array() );
43
-		$this->testmode       = ( ! empty( $stripe_settings['testmode'] ) && 'yes' === $stripe_settings['testmode'] ) ? true : false;
44
-		$secret_key           = ( $this->testmode ? 'test_' : '' ) . 'webhook_secret';
45
-		$this->secret         = ! empty( $stripe_settings[ $secret_key ] ) ? $stripe_settings[ $secret_key ] : false;
42
+		$stripe_settings      = get_option('woocommerce_stripe_settings', array());
43
+		$this->testmode       = ( ! empty($stripe_settings['testmode']) && 'yes' === $stripe_settings['testmode']) ? true : false;
44
+		$secret_key           = ($this->testmode ? 'test_' : '') . 'webhook_secret';
45
+		$this->secret         = ! empty($stripe_settings[$secret_key]) ? $stripe_settings[$secret_key] : false;
46 46
 
47
-		add_action( 'woocommerce_api_wc_stripe', array( $this, 'check_for_webhook' ) );
47
+		add_action('woocommerce_api_wc_stripe', array($this, 'check_for_webhook'));
48 48
 	}
49 49
 
50 50
 	/**
@@ -54,24 +54,24 @@  discard block
 block discarded – undo
54 54
 	 * @version 4.0.0
55 55
 	 */
56 56
 	public function check_for_webhook() {
57
-		if ( ( 'POST' !== $_SERVER['REQUEST_METHOD'] )
58
-			|| ! isset( $_GET['wc-api'] )
59
-			|| ( 'wc_stripe' !== $_GET['wc-api'] )
57
+		if (('POST' !== $_SERVER['REQUEST_METHOD'])
58
+			|| ! isset($_GET['wc-api'])
59
+			|| ('wc_stripe' !== $_GET['wc-api'])
60 60
 		) {
61 61
 			return;
62 62
 		}
63 63
 
64
-		$request_body    = file_get_contents( 'php://input' );
65
-		$request_headers = array_change_key_case( $this->get_request_headers(), CASE_UPPER );
64
+		$request_body    = file_get_contents('php://input');
65
+		$request_headers = array_change_key_case($this->get_request_headers(), CASE_UPPER);
66 66
 
67 67
 		// Validate it to make sure it is legit.
68
-		if ( $this->is_valid_request( $request_headers, $request_body ) ) {
69
-			$this->process_webhook( $request_body );
70
-			status_header( 200 );
68
+		if ($this->is_valid_request($request_headers, $request_body)) {
69
+			$this->process_webhook($request_body);
70
+			status_header(200);
71 71
 			exit;
72 72
 		} else {
73
-			WC_Stripe_Logger::log( 'Incoming webhook failed validation: ' . print_r( $request_body, true ) );
74
-			status_header( 400 );
73
+			WC_Stripe_Logger::log('Incoming webhook failed validation: ' . print_r($request_body, true));
74
+			status_header(400);
75 75
 			exit;
76 76
 		}
77 77
 	}
@@ -85,34 +85,34 @@  discard block
 block discarded – undo
85 85
 	 * @param string $request_body The request body from Stripe.
86 86
 	 * @return bool
87 87
 	 */
88
-	public function is_valid_request( $request_headers = null, $request_body = null ) {
89
-		if ( null === $request_headers || null === $request_body ) {
88
+	public function is_valid_request($request_headers = null, $request_body = null) {
89
+		if (null === $request_headers || null === $request_body) {
90 90
 			return false;
91 91
 		}
92 92
 
93
-		if ( ! empty( $request_headers['USER-AGENT'] ) && ! preg_match( '/Stripe/', $request_headers['USER-AGENT'] ) ) {
93
+		if ( ! empty($request_headers['USER-AGENT']) && ! preg_match('/Stripe/', $request_headers['USER-AGENT'])) {
94 94
 			return false;
95 95
 		}
96 96
 
97
-		if ( ! empty( $this->secret ) ) {
97
+		if ( ! empty($this->secret)) {
98 98
 			// Check for a valid signature.
99 99
 			$signature_format = '/^t=(?P<timestamp>\d+)(?P<signatures>(,v\d+=[a-z0-9]+){1,2})$/';
100
-			if ( empty( $request_headers['STRIPE-SIGNATURE'] ) || ! preg_match( $signature_format, $request_headers['STRIPE-SIGNATURE'], $matches ) ) {
100
+			if (empty($request_headers['STRIPE-SIGNATURE']) || ! preg_match($signature_format, $request_headers['STRIPE-SIGNATURE'], $matches)) {
101 101
 				return false;
102 102
 			}
103 103
 
104 104
 			// Verify the timestamp.
105
-			$timestamp = intval( $matches['timestamp'] );
106
-			if ( abs( $timestamp - time() ) > 5 * MINUTE_IN_SECONDS ) {
105
+			$timestamp = intval($matches['timestamp']);
106
+			if (abs($timestamp - time()) > 5 * MINUTE_IN_SECONDS) {
107 107
 				return;
108 108
 			}
109 109
 
110 110
 			// Generate the expected signature.
111 111
 			$signed_payload     = $timestamp . '.' . $request_body;
112
-			$expected_signature = hash_hmac( 'sha256', $signed_payload, $this->secret );
112
+			$expected_signature = hash_hmac('sha256', $signed_payload, $this->secret);
113 113
 
114 114
 			// Check if the expected signature is present.
115
-			if ( ! preg_match( '/,v\d+=' . preg_quote( $expected_signature, '/' ) . '/', $matches['signatures'] ) ) {
115
+			if ( ! preg_match('/,v\d+=' . preg_quote($expected_signature, '/') . '/', $matches['signatures'])) {
116 116
 				return false;
117 117
 			}
118 118
 		}
@@ -129,12 +129,12 @@  discard block
 block discarded – undo
129 129
 	 * @version 4.0.0
130 130
 	 */
131 131
 	public function get_request_headers() {
132
-		if ( ! function_exists( 'getallheaders' ) ) {
132
+		if ( ! function_exists('getallheaders')) {
133 133
 			$headers = array();
134 134
 
135
-			foreach ( $_SERVER as $name => $value ) {
136
-				if ( 'HTTP_' === substr( $name, 0, 5 ) ) {
137
-					$headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
135
+			foreach ($_SERVER as $name => $value) {
136
+				if ('HTTP_' === substr($name, 0, 5)) {
137
+					$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
138 138
 				}
139 139
 			}
140 140
 
@@ -153,30 +153,30 @@  discard block
 block discarded – undo
153 153
 	 * @param object $notification
154 154
 	 * @param bool $retry
155 155
 	 */
156
-	public function process_webhook_payment( $notification, $retry = true ) {
156
+	public function process_webhook_payment($notification, $retry = true) {
157 157
 		// The following 3 payment methods are synchronous so does not need to be handle via webhook.
158
-		if ( 'card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $notification->data->object->type ) {
158
+		if ('card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $notification->data->object->type) {
159 159
 			return;
160 160
 		}
161 161
 
162
-		$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
162
+		$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
163 163
 
164
-		if ( ! $order ) {
165
-			WC_Stripe_Logger::log( 'Could not find order via source ID: ' . $notification->data->object->id );
164
+		if ( ! $order) {
165
+			WC_Stripe_Logger::log('Could not find order via source ID: ' . $notification->data->object->id);
166 166
 			return;
167 167
 		}
168 168
 
169
-		$order_id  = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
169
+		$order_id  = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
170 170
 		$source_id = $notification->data->object->id;
171 171
 
172
-		$is_pending_receiver = ( 'receiver' === $notification->data->object->flow );
172
+		$is_pending_receiver = ('receiver' === $notification->data->object->flow);
173 173
 
174 174
 		try {
175
-			if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() ) {
175
+			if ('processing' === $order->get_status() || 'completed' === $order->get_status()) {
176 176
 				return;
177 177
 			}
178 178
 
179
-			if ( 'on-hold' === $order->get_status() && ! $is_pending_receiver ) {
179
+			if ('on-hold' === $order->get_status() && ! $is_pending_receiver) {
180 180
 				return;
181 181
 			}
182 182
 
@@ -184,94 +184,94 @@  discard block
 block discarded – undo
184 184
 			$response = null;
185 185
 
186 186
 			// This will throw exception if not valid.
187
-			$this->validate_minimum_order_amount( $order );
187
+			$this->validate_minimum_order_amount($order);
188 188
 
189
-			WC_Stripe_Logger::log( "Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}" );
189
+			WC_Stripe_Logger::log("Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}");
190 190
 
191 191
 			// Prep source object.
192 192
 			$source_object           = new stdClass();
193 193
 			$source_object->token_id = '';
194
-			$source_object->customer = $this->get_stripe_customer_id( $order );
194
+			$source_object->customer = $this->get_stripe_customer_id($order);
195 195
 			$source_object->source   = $source_id;
196 196
 
197 197
 			// Make the request.
198
-			$response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ), 'charges', 'POST', true );
198
+			$response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object), 'charges', 'POST', true);
199 199
 			$headers  = $response['headers'];
200 200
 			$response = $response['body'];
201 201
 
202
-			if ( ! empty( $response->error ) ) {
202
+			if ( ! empty($response->error)) {
203 203
 				// Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without.
204
-				if ( $this->is_no_such_customer_error( $response->error ) ) {
205
-					if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) {
206
-						delete_user_meta( $order->customer_user, '_stripe_customer_id' );
207
-						delete_post_meta( $order_id, '_stripe_customer_id' );
204
+				if ($this->is_no_such_customer_error($response->error)) {
205
+					if (WC_Stripe_Helper::is_wc_lt('3.0')) {
206
+						delete_user_meta($order->customer_user, '_stripe_customer_id');
207
+						delete_post_meta($order_id, '_stripe_customer_id');
208 208
 					} else {
209
-						delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' );
210
-						$order->delete_meta_data( '_stripe_customer_id' );
209
+						delete_user_meta($order->get_customer_id(), '_stripe_customer_id');
210
+						$order->delete_meta_data('_stripe_customer_id');
211 211
 						$order->save();
212 212
 					}
213 213
 				}
214 214
 
215
-				if ( $this->is_no_such_token_error( $response->error ) && $prepared_source->token_id ) {
215
+				if ($this->is_no_such_token_error($response->error) && $prepared_source->token_id) {
216 216
 					// Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message.
217
-					$wc_token = WC_Payment_Tokens::get( $prepared_source->token_id );
217
+					$wc_token = WC_Payment_Tokens::get($prepared_source->token_id);
218 218
 					$wc_token->delete();
219
-					$localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' );
220
-					$order->add_order_note( $localized_message );
221
-					throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
219
+					$localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe');
220
+					$order->add_order_note($localized_message);
221
+					throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
222 222
 				}
223 223
 
224 224
 				// We want to retry.
225
-				if ( $this->is_retryable_error( $response->error ) ) {
226
-					if ( $retry ) {
225
+				if ($this->is_retryable_error($response->error)) {
226
+					if ($retry) {
227 227
 						// Don't do anymore retries after this.
228
-						if ( 5 <= $this->retry_interval ) {
228
+						if (5 <= $this->retry_interval) {
229 229
 
230
-							return $this->process_webhook_payment( $notification, false );
230
+							return $this->process_webhook_payment($notification, false);
231 231
 						}
232 232
 
233
-						sleep( $this->retry_interval );
233
+						sleep($this->retry_interval);
234 234
 
235 235
 						$this->retry_interval++;
236
-						return $this->process_webhook_payment( $notification, true );
236
+						return $this->process_webhook_payment($notification, true);
237 237
 					} else {
238
-						$localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' );
239
-						$order->add_order_note( $localized_message );
240
-						throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
238
+						$localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe');
239
+						$order->add_order_note($localized_message);
240
+						throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
241 241
 					}
242 242
 				}
243 243
 
244 244
 				$localized_messages = WC_Stripe_Helper::get_localized_messages();
245 245
 
246
-				if ( 'card_error' === $response->error->type ) {
247
-					$localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message;
246
+				if ('card_error' === $response->error->type) {
247
+					$localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message;
248 248
 				} else {
249
-					$localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message;
249
+					$localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message;
250 250
 				}
251 251
 
252
-				$order->add_order_note( $localized_message );
252
+				$order->add_order_note($localized_message);
253 253
 
254
-				throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
254
+				throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
255 255
 			}
256 256
 
257 257
 			// To prevent double processing the order on WC side.
258
-			if ( ! $this->is_original_request( $headers ) ) {
258
+			if ( ! $this->is_original_request($headers)) {
259 259
 				return;
260 260
 			}
261 261
 
262
-			do_action( 'wc_gateway_stripe_process_webhook_payment', $response, $order );
262
+			do_action('wc_gateway_stripe_process_webhook_payment', $response, $order);
263 263
 
264
-			$this->process_response( $response, $order );
264
+			$this->process_response($response, $order);
265 265
 
266
-		} catch ( WC_Stripe_Exception $e ) {
267
-			WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() );
266
+		} catch (WC_Stripe_Exception $e) {
267
+			WC_Stripe_Logger::log('Error: ' . $e->getMessage());
268 268
 
269
-			do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e );
269
+			do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e);
270 270
 
271
-			$statuses = array( 'pending', 'failed' );
271
+			$statuses = array('pending', 'failed');
272 272
 
273
-			if ( $order->has_status( $statuses ) ) {
274
-				$this->send_failed_order_email( $order_id );
273
+			if ($order->has_status($statuses)) {
274
+				$this->send_failed_order_email($order_id);
275 275
 			}
276 276
 		}
277 277
 	}
@@ -284,21 +284,21 @@  discard block
 block discarded – undo
284 284
 	 * @since 4.0.0
285 285
 	 * @param object $notification
286 286
 	 */
287
-	public function process_webhook_dispute( $notification ) {
288
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
287
+	public function process_webhook_dispute($notification) {
288
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
289 289
 
290
-		if ( ! $order ) {
291
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
290
+		if ( ! $order) {
291
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
292 292
 			return;
293 293
 		}
294 294
 
295 295
 		/* translators: 1) The URL to the order. */
296
-		$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 ) ) );
296
+		$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)));
297 297
 
298
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
298
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
299 299
 
300
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
301
-		$this->send_failed_order_email( $order_id );
300
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
301
+		$this->send_failed_order_email($order_id);
302 302
 	}
303 303
 
304 304
 	/**
@@ -309,45 +309,45 @@  discard block
 block discarded – undo
309 309
 	 * @version 4.0.0
310 310
 	 * @param object $notification
311 311
 	 */
312
-	public function process_webhook_capture( $notification ) {
313
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
312
+	public function process_webhook_capture($notification) {
313
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
314 314
 
315
-		if ( ! $order ) {
316
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
315
+		if ( ! $order) {
316
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
317 317
 			return;
318 318
 		}
319 319
 
320
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
320
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
321 321
 
322
-		if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) {
323
-			$charge   = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
324
-			$captured = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
322
+		if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) {
323
+			$charge   = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
324
+			$captured = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
325 325
 
326
-			if ( $charge && 'no' === $captured ) {
327
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_stripe_charge_captured', 'yes' ) : $order->update_meta_data( '_stripe_charge_captured', 'yes' );
326
+			if ($charge && 'no' === $captured) {
327
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_stripe_charge_captured', 'yes') : $order->update_meta_data('_stripe_charge_captured', 'yes');
328 328
 
329 329
 				// Store other data such as fees
330
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id );
330
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id);
331 331
 
332
-				if ( isset( $notification->data->object->balance_transaction ) ) {
333
-					$this->update_fees( $order, $notification->data->object->balance_transaction );
332
+				if (isset($notification->data->object->balance_transaction)) {
333
+					$this->update_fees($order, $notification->data->object->balance_transaction);
334 334
 				}
335 335
 
336 336
 				// Check and see if capture is partial.
337
-				if ( $this->is_partial_capture( $notification ) ) {
338
-					$partial_amount = $this->get_partial_amount_to_charge( $notification );
339
-					$order->set_total( $partial_amount );
340
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
337
+				if ($this->is_partial_capture($notification)) {
338
+					$partial_amount = $this->get_partial_amount_to_charge($notification);
339
+					$order->set_total($partial_amount);
340
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
341 341
 					/* translators: partial captured amount */
342
-					$order->add_order_note( sprintf( __( 'This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe' ), $partial_amount ) );
342
+					$order->add_order_note(sprintf(__('This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe'), $partial_amount));
343 343
 				} else {
344
-					$order->payment_complete( $notification->data->object->id );
344
+					$order->payment_complete($notification->data->object->id);
345 345
 
346 346
 					/* translators: transaction id */
347
-					$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
347
+					$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
348 348
 				}
349 349
 
350
-				if ( is_callable( array( $order, 'save' ) ) ) {
350
+				if (is_callable(array($order, 'save'))) {
351 351
 					$order->save();
352 352
 				}
353 353
 			}
@@ -362,43 +362,43 @@  discard block
 block discarded – undo
362 362
 	 * @version 4.0.0
363 363
 	 * @param object $notification
364 364
 	 */
365
-	public function process_webhook_charge_succeeded( $notification ) {
365
+	public function process_webhook_charge_succeeded($notification) {
366 366
 		// Ignore the notification for charges, created through PaymentIntents.
367
-		if ( isset( $notification->data->object->payment_intent ) && $notification->data->object->payment_intent ) {
367
+		if (isset($notification->data->object->payment_intent) && $notification->data->object->payment_intent) {
368 368
 			return;
369 369
 		}
370 370
 
371 371
 		// The following payment methods are synchronous so does not need to be handle via webhook.
372
-		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 ) ) {
372
+		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)) {
373 373
 			return;
374 374
 		}
375 375
 
376
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
376
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
377 377
 
378
-		if ( ! $order ) {
379
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
378
+		if ( ! $order) {
379
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
380 380
 			return;
381 381
 		}
382 382
 
383
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
383
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
384 384
 
385
-		if ( 'on-hold' !== $order->get_status() ) {
385
+		if ('on-hold' !== $order->get_status()) {
386 386
 			return;
387 387
 		}
388 388
 
389 389
 		// Store other data such as fees
390
-		WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id );
390
+		WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id);
391 391
 
392
-		if ( isset( $notification->data->object->balance_transaction ) ) {
393
-			$this->update_fees( $order, $notification->data->object->balance_transaction );
392
+		if (isset($notification->data->object->balance_transaction)) {
393
+			$this->update_fees($order, $notification->data->object->balance_transaction);
394 394
 		}
395 395
 
396
-		$order->payment_complete( $notification->data->object->id );
396
+		$order->payment_complete($notification->data->object->id);
397 397
 
398 398
 		/* translators: transaction id */
399
-		$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
399
+		$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
400 400
 
401
-		if ( is_callable( array( $order, 'save' ) ) ) {
401
+		if (is_callable(array($order, 'save'))) {
402 402
 			$order->save();
403 403
 		}
404 404
 	}
@@ -410,24 +410,24 @@  discard block
 block discarded – undo
410 410
 	 * @since 4.1.5 Can handle any fail payments from any methods.
411 411
 	 * @param object $notification
412 412
 	 */
413
-	public function process_webhook_charge_failed( $notification ) {
414
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
413
+	public function process_webhook_charge_failed($notification) {
414
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
415 415
 
416
-		if ( ! $order ) {
417
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
416
+		if ( ! $order) {
417
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
418 418
 			return;
419 419
 		}
420 420
 
421
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
421
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
422 422
 
423 423
 		// If order status is already in failed status don't continue.
424
-		if ( 'failed' === $order->get_status() ) {
424
+		if ('failed' === $order->get_status()) {
425 425
 			return;
426 426
 		}
427 427
 
428
-		$order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) );
428
+		$order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe'));
429 429
 
430
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
430
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
431 431
 	}
432 432
 
433 433
 	/**
@@ -438,30 +438,30 @@  discard block
 block discarded – undo
438 438
 	 * @since 4.1.15 Add check to make sure order is processed by Stripe.
439 439
 	 * @param object $notification
440 440
 	 */
441
-	public function process_webhook_source_canceled( $notification ) {
442
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
441
+	public function process_webhook_source_canceled($notification) {
442
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
443 443
 
444 444
 		// If can't find order by charge ID, try source ID.
445
-		if ( ! $order ) {
446
-			$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
445
+		if ( ! $order) {
446
+			$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
447 447
 
448
-			if ( ! $order ) {
449
-				WC_Stripe_Logger::log( 'Could not find order via charge/source ID: ' . $notification->data->object->id );
448
+			if ( ! $order) {
449
+				WC_Stripe_Logger::log('Could not find order via charge/source ID: ' . $notification->data->object->id);
450 450
 				return;
451 451
 			}
452 452
 		}
453 453
 
454 454
 		// Don't proceed if payment method isn't Stripe.
455
-		if ( 'stripe' !== $order->get_payment_method() ) {
456
-			WC_Stripe_Logger::log( 'Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id() );
455
+		if ('stripe' !== $order->get_payment_method()) {
456
+			WC_Stripe_Logger::log('Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id());
457 457
 			return;
458 458
 		}
459 459
 
460
-		if ( 'cancelled' !== $order->get_status() ) {
461
-			$order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) );
460
+		if ('cancelled' !== $order->get_status()) {
461
+			$order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe'));
462 462
 		}
463 463
 
464
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
464
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
465 465
 	}
466 466
 
467 467
 	/**
@@ -471,59 +471,59 @@  discard block
 block discarded – undo
471 471
 	 * @version 4.0.0
472 472
 	 * @param object $notification
473 473
 	 */
474
-	public function process_webhook_refund( $notification ) {
475
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
474
+	public function process_webhook_refund($notification) {
475
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
476 476
 
477
-		if ( ! $order ) {
478
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
477
+		if ( ! $order) {
478
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
479 479
 			return;
480 480
 		}
481 481
 
482
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
482
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
483 483
 
484
-		if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) {
485
-			$charge    = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
486
-			$captured  = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
487
-			$refund_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_stripe_refund_id', true ) : $order->get_meta( '_stripe_refund_id', true );
484
+		if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) {
485
+			$charge    = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
486
+			$captured  = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
487
+			$refund_id = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_stripe_refund_id', true) : $order->get_meta('_stripe_refund_id', true);
488 488
 
489 489
 			// If the refund ID matches, don't continue to prevent double refunding.
490
-			if ( $notification->data->object->refunds->data[0]->id === $refund_id ) {
490
+			if ($notification->data->object->refunds->data[0]->id === $refund_id) {
491 491
 				return;
492 492
 			}
493 493
 
494 494
 			// Only refund captured charge.
495
-			if ( $charge ) {
496
-				$reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
495
+			if ($charge) {
496
+				$reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
497 497
 
498 498
 				// Create the refund.
499 499
 				$refund = wc_create_refund(
500 500
 					array(
501 501
 						'order_id' => $order_id,
502
-						'amount'   => $this->get_refund_amount( $notification ),
502
+						'amount'   => $this->get_refund_amount($notification),
503 503
 						'reason'   => $reason,
504 504
 					)
505 505
 				);
506 506
 
507
-				if ( is_wp_error( $refund ) ) {
508
-					WC_Stripe_Logger::log( $refund->get_error_message() );
507
+				if (is_wp_error($refund)) {
508
+					WC_Stripe_Logger::log($refund->get_error_message());
509 509
 				}
510 510
 
511
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_stripe_refund_id', $notification->data->object->refunds->data[0]->id ) : $order->update_meta_data( '_stripe_refund_id', $notification->data->object->refunds->data[0]->id );
511
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_stripe_refund_id', $notification->data->object->refunds->data[0]->id) : $order->update_meta_data('_stripe_refund_id', $notification->data->object->refunds->data[0]->id);
512 512
 
513
-				$amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 );
513
+				$amount = wc_price($notification->data->object->refunds->data[0]->amount / 100);
514 514
 
515
-				if ( in_array( strtolower( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->get_order_currency() : $order->get_currency() ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
516
-					$amount = wc_price( $notification->data->object->refunds->data[0]->amount );
515
+				if (in_array(strtolower(WC_Stripe_Helper::is_wc_lt('3.0') ? $order->get_order_currency() : $order->get_currency()), WC_Stripe_Helper::no_decimal_currencies())) {
516
+					$amount = wc_price($notification->data->object->refunds->data[0]->amount);
517 517
 				}
518 518
 
519
-				if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) {
520
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
519
+				if (isset($notification->data->object->refunds->data[0]->balance_transaction)) {
520
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
521 521
 				}
522 522
 
523 523
 				/* translators: 1) dollar amount 2) transaction id 3) refund message */
524
-				$refund_message = ( isset( $captured ) && 'yes' === $captured ) ? sprintf( __( 'Refunded %1$s - Refund ID: %2$s - %3$s', 'woocommerce-gateway-stripe' ), $amount, $notification->data->object->refunds->data[0]->id, $reason ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
524
+				$refund_message = (isset($captured) && 'yes' === $captured) ? sprintf(__('Refunded %1$s - Refund ID: %2$s - %3$s', 'woocommerce-gateway-stripe'), $amount, $notification->data->object->refunds->data[0]->id, $reason) : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
525 525
 
526
-				$order->add_order_note( $refund_message );
526
+				$order->add_order_note($refund_message);
527 527
 			}
528 528
 		}
529 529
 	}
@@ -534,30 +534,30 @@  discard block
 block discarded – undo
534 534
 	 * @since 4.0.6
535 535
 	 * @param object $notification
536 536
 	 */
537
-	public function process_review_opened( $notification ) {
538
-		if ( isset( $notification->data->object->payment_intent ) ) {
539
-			$order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent );
537
+	public function process_review_opened($notification) {
538
+		if (isset($notification->data->object->payment_intent)) {
539
+			$order = WC_Stripe_Helper::get_order_by_intent_id($notification->data->object->payment_intent);
540 540
 
541
-			if ( ! $order ) {
542
-				WC_Stripe_Logger::log( '[Review Opened] Could not find order via intent ID: ' . $notification->data->object->payment_intent );
541
+			if ( ! $order) {
542
+				WC_Stripe_Logger::log('[Review Opened] Could not find order via intent ID: ' . $notification->data->object->payment_intent);
543 543
 				return;
544 544
 			}
545 545
 		} else {
546
-			$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
546
+			$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
547 547
 
548
-			if ( ! $order ) {
549
-				WC_Stripe_Logger::log( '[Review Opened] Could not find order via charge ID: ' . $notification->data->object->charge );
548
+			if ( ! $order) {
549
+				WC_Stripe_Logger::log('[Review Opened] Could not find order via charge ID: ' . $notification->data->object->charge);
550 550
 				return;
551 551
 			}
552 552
 		}
553 553
 
554 554
 		/* translators: 1) The URL to the order. 2) The reason type. */
555
-		$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 );
555
+		$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);
556 556
 
557
-		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
558
-			$order->update_status( 'on-hold', $message );
557
+		if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
558
+			$order->update_status('on-hold', $message);
559 559
 		} else {
560
-			$order->add_order_note( $message );
560
+			$order->add_order_note($message);
561 561
 		}
562 562
 	}
563 563
 
@@ -567,34 +567,34 @@  discard block
 block discarded – undo
567 567
 	 * @since 4.0.6
568 568
 	 * @param object $notification
569 569
 	 */
570
-	public function process_review_closed( $notification ) {
571
-		if ( isset( $notification->data->object->payment_intent ) ) {
572
-			$order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent );
570
+	public function process_review_closed($notification) {
571
+		if (isset($notification->data->object->payment_intent)) {
572
+			$order = WC_Stripe_Helper::get_order_by_intent_id($notification->data->object->payment_intent);
573 573
 
574
-			if ( ! $order ) {
575
-				WC_Stripe_Logger::log( '[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent );
574
+			if ( ! $order) {
575
+				WC_Stripe_Logger::log('[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent);
576 576
 				return;
577 577
 			}
578 578
 		} else {
579
-			$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
579
+			$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
580 580
 
581
-			if ( ! $order ) {
582
-				WC_Stripe_Logger::log( '[Review Closed] Could not find order via charge ID: ' . $notification->data->object->charge );
581
+			if ( ! $order) {
582
+				WC_Stripe_Logger::log('[Review Closed] Could not find order via charge ID: ' . $notification->data->object->charge);
583 583
 				return;
584 584
 			}
585 585
 		}
586 586
 
587 587
 		/* translators: 1) The reason type. */
588
-		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
588
+		$message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason);
589 589
 
590
-		if ( 'on-hold' === $order->get_status() ) {
591
-			if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
592
-				$order->update_status( 'processing', $message );
590
+		if ('on-hold' === $order->get_status()) {
591
+			if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
592
+				$order->update_status('processing', $message);
593 593
 			} else {
594
-				$order->add_order_note( $message );
594
+				$order->add_order_note($message);
595 595
 			}
596 596
 		} else {
597
-			$order->add_order_note( $message );
597
+			$order->add_order_note($message);
598 598
 		}
599 599
 	}
600 600
 
@@ -605,7 +605,7 @@  discard block
 block discarded – undo
605 605
 	 * @version 4.0.0
606 606
 	 * @param object $notification
607 607
 	 */
608
-	public function is_partial_capture( $notification ) {
608
+	public function is_partial_capture($notification) {
609 609
 		return 0 < $notification->data->object->amount_refunded;
610 610
 	}
611 611
 
@@ -616,11 +616,11 @@  discard block
 block discarded – undo
616 616
 	 * @version 4.0.0
617 617
 	 * @param object $notification
618 618
 	 */
619
-	public function get_refund_amount( $notification ) {
620
-		if ( $this->is_partial_capture( $notification ) ) {
619
+	public function get_refund_amount($notification) {
620
+		if ($this->is_partial_capture($notification)) {
621 621
 			$amount = $notification->data->object->refunds->data[0]->amount / 100;
622 622
 
623
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
623
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
624 624
 				$amount = $notification->data->object->refunds->data[0]->amount;
625 625
 			}
626 626
 
@@ -637,12 +637,12 @@  discard block
 block discarded – undo
637 637
 	 * @version 4.0.0
638 638
 	 * @param object $notification
639 639
 	 */
640
-	public function get_partial_amount_to_charge( $notification ) {
641
-		if ( $this->is_partial_capture( $notification ) ) {
642
-			$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100;
640
+	public function get_partial_amount_to_charge($notification) {
641
+		if ($this->is_partial_capture($notification)) {
642
+			$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100;
643 643
 
644
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
645
-				$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded );
644
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
645
+				$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded);
646 646
 			}
647 647
 
648 648
 			return $amount;
@@ -651,69 +651,69 @@  discard block
 block discarded – undo
651 651
 		return false;
652 652
 	}
653 653
 
654
-	public function process_payment_intent_success( $notification ) {
654
+	public function process_payment_intent_success($notification) {
655 655
 		$intent = $notification->data->object;
656
-		$order = WC_Stripe_Helper::get_order_by_intent_id( $intent->id );
656
+		$order = WC_Stripe_Helper::get_order_by_intent_id($intent->id);
657 657
 
658
-		if ( ! $order ) {
659
-			WC_Stripe_Logger::log( 'Could not find order via intent ID: ' . $intent->id );
658
+		if ( ! $order) {
659
+			WC_Stripe_Logger::log('Could not find order via intent ID: ' . $intent->id);
660 660
 			return;
661 661
 		}
662 662
 
663
-		if ( 'pending' !== $order->get_status() && 'failed' !== $order->get_status() ) {
663
+		if ('pending' !== $order->get_status() && 'failed' !== $order->get_status()) {
664 664
 			return;
665 665
 		}
666 666
 
667
-		if ( $this->lock_order_payment( $order, $intent ) ) {
667
+		if ($this->lock_order_payment($order, $intent)) {
668 668
 			return;
669 669
 		}
670 670
 
671
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
672
-		if ( 'payment_intent.succeeded' === $notification->type || 'payment_intent.amount_capturable_updated' === $notification->type ) {
673
-			$charge = end( $intent->charges->data );
674
-			WC_Stripe_Logger::log( "Stripe PaymentIntent $intent->id succeeded for order $order_id" );
671
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
672
+		if ('payment_intent.succeeded' === $notification->type || 'payment_intent.amount_capturable_updated' === $notification->type) {
673
+			$charge = end($intent->charges->data);
674
+			WC_Stripe_Logger::log("Stripe PaymentIntent $intent->id succeeded for order $order_id");
675 675
 
676
-			do_action( 'wc_gateway_stripe_process_payment', $charge, $order );
676
+			do_action('wc_gateway_stripe_process_payment', $charge, $order);
677 677
 
678 678
 			// Process valid response.
679
-			$this->process_response( $charge, $order );
679
+			$this->process_response($charge, $order);
680 680
 
681 681
 		} else {
682 682
 			$error_message = $intent->last_payment_error ? $intent->last_payment_error->message : "";
683 683
 
684 684
 			/* translators: 1) The error message that was received from Stripe. */
685
-			$order->update_status( 'failed', sprintf( __( 'Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe' ), $error_message ) );
685
+			$order->update_status('failed', sprintf(__('Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe'), $error_message));
686 686
 
687
-			do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
687
+			do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
688 688
 
689
-			$this->send_failed_order_email( $order_id );
689
+			$this->send_failed_order_email($order_id);
690 690
 		}
691 691
 
692
-		$this->unlock_order_payment( $order );
692
+		$this->unlock_order_payment($order);
693 693
 	}
694 694
 
695
-	public function process_setup_intent( $notification ) {
695
+	public function process_setup_intent($notification) {
696 696
 		$intent = $notification->data->object;
697
-		$order = WC_Stripe_Helper::get_order_by_setup_intent_id( $intent->id );
697
+		$order = WC_Stripe_Helper::get_order_by_setup_intent_id($intent->id);
698 698
 
699
-		if ( ! $order ) {
700
-			WC_Stripe_Logger::log( 'Could not find order via setup intent ID: ' . $intent->id );
699
+		if ( ! $order) {
700
+			WC_Stripe_Logger::log('Could not find order via setup intent ID: ' . $intent->id);
701 701
 			return;
702 702
 		}
703 703
 
704
-		if ( 'pending' !== $order->get_status() && 'failed' !== $order->get_status() ) {
704
+		if ('pending' !== $order->get_status() && 'failed' !== $order->get_status()) {
705 705
 			return;
706 706
 		}
707 707
 
708
-		if ( $this->lock_order_payment( $order, $intent ) ) {
708
+		if ($this->lock_order_payment($order, $intent)) {
709 709
 			return;
710 710
 		}
711 711
 
712
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
713
-		if ( 'setup_intent.succeeded' === $notification->type ) {
714
-			WC_Stripe_Logger::log( "Stripe SetupIntent $intent->id succeeded for order $order_id" );
715
-			if ( WC_Stripe_Helper::is_pre_orders_exists() && WC_Pre_Orders_Order::order_contains_pre_order( $order ) ) {
716
-				WC_Pre_Orders_Order::mark_order_as_pre_ordered( $order );
712
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
713
+		if ('setup_intent.succeeded' === $notification->type) {
714
+			WC_Stripe_Logger::log("Stripe SetupIntent $intent->id succeeded for order $order_id");
715
+			if (WC_Stripe_Helper::is_pre_orders_exists() && WC_Pre_Orders_Order::order_contains_pre_order($order)) {
716
+				WC_Pre_Orders_Order::mark_order_as_pre_ordered($order);
717 717
 			} else {
718 718
 				$order->payment_complete();
719 719
 			}
@@ -721,12 +721,12 @@  discard block
 block discarded – undo
721 721
 			$error_message = $intent->last_setup_error ? $intent->last_setup_error->message : "";
722 722
 
723 723
 			/* translators: 1) The error message that was received from Stripe. */
724
-			$order->update_status( 'failed', sprintf( __( 'Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe' ), $error_message ) );
724
+			$order->update_status('failed', sprintf(__('Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe'), $error_message));
725 725
 
726
-			$this->send_failed_order_email( $order_id );
726
+			$this->send_failed_order_email($order_id);
727 727
 		}
728 728
 
729
-		$this->unlock_order_payment( $order );
729
+		$this->unlock_order_payment($order);
730 730
 	}
731 731
 
732 732
 	/**
@@ -736,55 +736,55 @@  discard block
 block discarded – undo
736 736
 	 * @version 4.0.0
737 737
 	 * @param string $request_body
738 738
 	 */
739
-	public function process_webhook( $request_body ) {
740
-		$notification = json_decode( $request_body );
739
+	public function process_webhook($request_body) {
740
+		$notification = json_decode($request_body);
741 741
 
742
-		switch ( $notification->type ) {
742
+		switch ($notification->type) {
743 743
 			case 'source.chargeable':
744
-				$this->process_webhook_payment( $notification );
744
+				$this->process_webhook_payment($notification);
745 745
 				break;
746 746
 
747 747
 			case 'source.canceled':
748
-				$this->process_webhook_source_canceled( $notification );
748
+				$this->process_webhook_source_canceled($notification);
749 749
 				break;
750 750
 
751 751
 			case 'charge.succeeded':
752
-				$this->process_webhook_charge_succeeded( $notification );
752
+				$this->process_webhook_charge_succeeded($notification);
753 753
 				break;
754 754
 
755 755
 			case 'charge.failed':
756
-				$this->process_webhook_charge_failed( $notification );
756
+				$this->process_webhook_charge_failed($notification);
757 757
 				break;
758 758
 
759 759
 			case 'charge.captured':
760
-				$this->process_webhook_capture( $notification );
760
+				$this->process_webhook_capture($notification);
761 761
 				break;
762 762
 
763 763
 			case 'charge.dispute.created':
764
-				$this->process_webhook_dispute( $notification );
764
+				$this->process_webhook_dispute($notification);
765 765
 				break;
766 766
 
767 767
 			case 'charge.refunded':
768
-				$this->process_webhook_refund( $notification );
768
+				$this->process_webhook_refund($notification);
769 769
 				break;
770 770
 
771 771
 			case 'review.opened':
772
-				$this->process_review_opened( $notification );
772
+				$this->process_review_opened($notification);
773 773
 				break;
774 774
 
775 775
 			case 'review.closed':
776
-				$this->process_review_closed( $notification );
776
+				$this->process_review_closed($notification);
777 777
 				break;
778 778
 
779 779
 			case 'payment_intent.succeeded':
780 780
 			case 'payment_intent.payment_failed':
781 781
 			case 'payment_intent.amount_capturable_updated':
782
-				$this->process_payment_intent_success( $notification );
782
+				$this->process_payment_intent_success($notification);
783 783
 				break;
784 784
 
785 785
 			case 'setup_intent.succeeded':
786 786
 			case 'setup_intent.setup_failed':
787
-				$this->process_setup_intent( $notification );
787
+				$this->process_setup_intent($notification);
788 788
 
789 789
 		}
790 790
 	}
Please login to merge, or discard this patch.
includes/compat/class-wc-stripe-pre-orders-compat.php 1 patch
Spacing   +49 added lines, -49 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
 
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 	public $saved_cards;
12 12
 
13 13
 	public function __construct() {
14
-		$this->saved_cards = WC_Stripe_Helper::get_settings( 'stripe', 'saved_cards' );
14
+		$this->saved_cards = WC_Stripe_Helper::get_settings('stripe', 'saved_cards');
15 15
 	}
16 16
 
17 17
 	/**
@@ -19,22 +19,22 @@  discard block
 block discarded – undo
19 19
 	 * @param  int  $order_id
20 20
 	 * @return boolean
21 21
 	 */
22
-	public function is_pre_order( $order_id ) {
23
-		return WC_Pre_Orders_Order::order_contains_pre_order( $order_id );
22
+	public function is_pre_order($order_id) {
23
+		return WC_Pre_Orders_Order::order_contains_pre_order($order_id);
24 24
 	}
25 25
 
26 26
 	/**
27 27
 	 * Remove order meta
28 28
 	 * @param object $order
29 29
 	 */
30
-	public function remove_order_source_before_retry( $order ) {
31
-		if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) {
32
-			delete_post_meta( $order->id, '_stripe_source_id' );
30
+	public function remove_order_source_before_retry($order) {
31
+		if (WC_Stripe_Helper::is_wc_lt('3.0')) {
32
+			delete_post_meta($order->id, '_stripe_source_id');
33 33
 			// For BW compat will remove in the future.
34
-			delete_post_meta( $order->id, '_stripe_card_id' );
34
+			delete_post_meta($order->id, '_stripe_card_id');
35 35
 		} else {
36
-			$order->delete_meta_data( '_stripe_source_id' );
37
-			$order->delete_meta_data( '_stripe_card_id' );
36
+			$order->delete_meta_data('_stripe_source_id');
37
+			$order->delete_meta_data('_stripe_card_id');
38 38
 			$order->save();
39 39
 		}
40 40
 	}
@@ -43,31 +43,31 @@  discard block
 block discarded – undo
43 43
 	 * Process the pre-order when pay upon release is used.
44 44
 	 * @param int $order_id
45 45
 	 */
46
-	public function process_pre_order( $order_id ) {
46
+	public function process_pre_order($order_id) {
47 47
 		try {
48
-			$order = wc_get_order( $order_id );
48
+			$order = wc_get_order($order_id);
49 49
 
50 50
 			// This will throw exception if not valid.
51
-			$this->validate_minimum_order_amount( $order );
51
+			$this->validate_minimum_order_amount($order);
52 52
 
53
-			$prepared_source = $this->prepare_source( get_current_user_id(), true );
53
+			$prepared_source = $this->prepare_source(get_current_user_id(), true);
54 54
 
55 55
 			// We need a source on file to continue.
56
-			if ( empty( $prepared_source->customer ) || empty( $prepared_source->source ) ) {
57
-				throw new WC_Stripe_Exception( __( 'Unable to store payment details. Please try again.', 'woocommerce-gateway-stripe' ) );
56
+			if (empty($prepared_source->customer) || empty($prepared_source->source)) {
57
+				throw new WC_Stripe_Exception(__('Unable to store payment details. Please try again.', 'woocommerce-gateway-stripe'));
58 58
 			}
59 59
 
60 60
 			// Setup the response early to allow later modifications.
61 61
 			$response = array(
62 62
 				'result'   => 'success',
63
-				'redirect' => $this->get_return_url( $order ),
63
+				'redirect' => $this->get_return_url($order),
64 64
 			);
65 65
 
66
-			$this->save_source_to_order( $order, $prepared_source );
66
+			$this->save_source_to_order($order, $prepared_source);
67 67
 
68 68
 			// Try setting up a payment intent.
69
-			$intent_secret = $this->setup_intent( $order, $prepared_source );
70
-			if ( ! empty( $intent_secret ) ) {
69
+			$intent_secret = $this->setup_intent($order, $prepared_source);
70
+			if ( ! empty($intent_secret)) {
71 71
 				$response['setup_intent_secret'] = $intent_secret;
72 72
 				return $response;
73 73
 			}
@@ -76,17 +76,17 @@  discard block
 block discarded – undo
76 76
 			WC()->cart->empty_cart();
77 77
 
78 78
 			// Is pre ordered!
79
-			WC_Pre_Orders_Order::mark_order_as_pre_ordered( $order );
79
+			WC_Pre_Orders_Order::mark_order_as_pre_ordered($order);
80 80
 
81 81
 			// Return thank you page redirect
82 82
 			return $response;
83
-		} catch ( WC_Stripe_Exception $e ) {
84
-			wc_add_notice( $e->getLocalizedMessage(), 'error' );
85
-			WC_Stripe_Logger::log( 'Pre Orders Error: ' . $e->getMessage() );
83
+		} catch (WC_Stripe_Exception $e) {
84
+			wc_add_notice($e->getLocalizedMessage(), 'error');
85
+			WC_Stripe_Logger::log('Pre Orders Error: ' . $e->getMessage());
86 86
 
87 87
 			return array(
88 88
 				'result'   => 'success',
89
-				'redirect' => $order->get_checkout_payment_url( true ),
89
+				'redirect' => $order->get_checkout_payment_url(true),
90 90
 			);
91 91
 		}
92 92
 	}
@@ -99,50 +99,50 @@  discard block
 block discarded – undo
99 99
 	 *
100 100
 	 * @return void
101 101
 	 */
102
-	public function process_pre_order_release_payment( $order, $retry = true ) {
102
+	public function process_pre_order_release_payment($order, $retry = true) {
103 103
 		try {
104
-			$source   = $this->prepare_order_source( $order );
105
-			$response = $this->create_and_confirm_intent_for_off_session( $order, $source );
104
+			$source   = $this->prepare_order_source($order);
105
+			$response = $this->create_and_confirm_intent_for_off_session($order, $source);
106 106
 
107
-			$is_authentication_required = $this->is_authentication_required_for_payment( $response );
107
+			$is_authentication_required = $this->is_authentication_required_for_payment($response);
108 108
 
109
-			if ( ! empty( $response->error ) && ! $is_authentication_required ) {
110
-				if ( ! $retry ) {
111
-					throw new Exception( $response->error->message );
109
+			if ( ! empty($response->error) && ! $is_authentication_required) {
110
+				if ( ! $retry) {
111
+					throw new Exception($response->error->message);
112 112
 				}
113
-				$this->remove_order_source_before_retry( $order );
114
-				$this->process_pre_order_release_payment( $order, false );
115
-			} else if ( $is_authentication_required ) {
116
-				$charge = end( $response->error->payment_intent->charges->data );
113
+				$this->remove_order_source_before_retry($order);
114
+				$this->process_pre_order_release_payment($order, false);
115
+			} else if ($is_authentication_required) {
116
+				$charge = end($response->error->payment_intent->charges->data);
117 117
 				$id = $charge->id;
118
-				$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
118
+				$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
119 119
 
120
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_transaction_id', $id ) : $order->set_transaction_id( $id );
121
-				$order->update_status( 'failed', sprintf( __( 'Stripe charge awaiting authentication by user: %s.', 'woocommerce-gateway-stripe' ), $id ) );
122
-				if ( is_callable( array( $order, 'save' ) ) ) {
120
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $id) : $order->set_transaction_id($id);
121
+				$order->update_status('failed', sprintf(__('Stripe charge awaiting authentication by user: %s.', 'woocommerce-gateway-stripe'), $id));
122
+				if (is_callable(array($order, 'save'))) {
123 123
 					$order->save();
124 124
 				}
125 125
 
126 126
 				WC_Emails::instance();
127 127
 
128
-				do_action( 'wc_gateway_stripe_process_payment_authentication_required', $order );
128
+				do_action('wc_gateway_stripe_process_payment_authentication_required', $order);
129 129
 
130
-				throw new WC_Stripe_Exception( print_r( $response, true ), $response->error->message );
130
+				throw new WC_Stripe_Exception(print_r($response, true), $response->error->message);
131 131
 			} else {
132 132
 				// Successful
133
-				$this->process_response( end( $response->charges->data ), $order );
133
+				$this->process_response(end($response->charges->data), $order);
134 134
 			}
135
-		} catch ( Exception $e ) {
136
-			$error_message = is_callable( array( $e, 'getLocalizedMessage' ) ) ? $e->getLocalizedMessage() : $e->getMessage();
135
+		} catch (Exception $e) {
136
+			$error_message = is_callable(array($e, 'getLocalizedMessage')) ? $e->getLocalizedMessage() : $e->getMessage();
137 137
 			/* translators: error message */
138
-			$order_note = sprintf( __( 'Stripe Transaction Failed (%s)', 'woocommerce-gateway-stripe' ), $error_message );
138
+			$order_note = sprintf(__('Stripe Transaction Failed (%s)', 'woocommerce-gateway-stripe'), $error_message);
139 139
 
140 140
 			// Mark order as failed if not already set,
141 141
 			// otherwise, make sure we add the order note so we can detect when someone fails to check out multiple times
142
-			if ( ! $order->has_status( 'failed' ) ) {
143
-				$order->update_status( 'failed', $order_note );
142
+			if ( ! $order->has_status('failed')) {
143
+				$order->update_status('failed', $order_note);
144 144
 			} else {
145
-				$order->add_order_note( $order_note );
145
+				$order->add_order_note($order_note);
146 146
 			}
147 147
 		}
148 148
 	}
Please login to merge, or discard this patch.