Completed
Push — master ( d5bb38...49ed8e )
by Marcin
01:38
created
includes/class-wc-stripe-webhook-handler.php 2 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -84,7 +84,7 @@
 block discarded – undo
84 84
 	 * @todo Implement proper webhook signature validation. Ref https://stripe.com/docs/webhooks#signatures
85 85
 	 * @param string $request_headers The request headers from Stripe.
86 86
 	 * @param string $request_body The request body from Stripe.
87
-	 * @return bool
87
+	 * @return null|boolean
88 88
 	 */
89 89
 	public function is_valid_request( $request_headers = null, $request_body = null ) {
90 90
 		if ( null === $request_headers || null === $request_body ) {
Please login to merge, or discard this patch.
Spacing   +218 added lines, -218 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
 	}
@@ -86,34 +86,34 @@  discard block
 block discarded – undo
86 86
 	 * @param string $request_body The request body from Stripe.
87 87
 	 * @return bool
88 88
 	 */
89
-	public function is_valid_request( $request_headers = null, $request_body = null ) {
90
-		if ( null === $request_headers || null === $request_body ) {
89
+	public function is_valid_request($request_headers = null, $request_body = null) {
90
+		if (null === $request_headers || null === $request_body) {
91 91
 			return false;
92 92
 		}
93 93
 
94
-		if ( ! empty( $request_headers['USER-AGENT'] ) && ! preg_match( '/Stripe/', $request_headers['USER-AGENT'] ) ) {
94
+		if ( ! empty($request_headers['USER-AGENT']) && ! preg_match('/Stripe/', $request_headers['USER-AGENT'])) {
95 95
 			return false;
96 96
 		}
97 97
 
98
-		if ( ! empty( $this->secret ) ) {
98
+		if ( ! empty($this->secret)) {
99 99
 			// Check for a valid signature.
100 100
 			$signature_format = '/^t=(?P<timestamp>\d+)(?P<signatures>(,v\d+=[a-z0-9]+){1,2})$/';
101
-			if ( empty( $request_headers['STRIPE-SIGNATURE'] ) || ! preg_match( $signature_format, $request_headers['STRIPE-SIGNATURE'], $matches ) ) {
101
+			if (empty($request_headers['STRIPE-SIGNATURE']) || ! preg_match($signature_format, $request_headers['STRIPE-SIGNATURE'], $matches)) {
102 102
 				return false;
103 103
 			}
104 104
 
105 105
 			// Verify the timestamp.
106
-			$timestamp = intval( $matches['timestamp'] );
107
-			if ( abs( $timestamp - time() ) > MINUTE_IN_SECONDS ) {
106
+			$timestamp = intval($matches['timestamp']);
107
+			if (abs($timestamp - time()) > MINUTE_IN_SECONDS) {
108 108
 				return;
109 109
 			}
110 110
 
111 111
 			// Generate the expected signature.
112 112
 			$signed_payload     = $timestamp . '.' . $request_body;
113
-			$expected_signature = hash_hmac( 'sha256', $signed_payload, $this->secret );
113
+			$expected_signature = hash_hmac('sha256', $signed_payload, $this->secret);
114 114
 
115 115
 			// Check if the expected signature is present.
116
-			if ( ! preg_match( '/,v\d+=' . preg_quote( $expected_signature, '/' ) . '/', $matches['signatures'] ) ) {
116
+			if ( ! preg_match('/,v\d+=' . preg_quote($expected_signature, '/') . '/', $matches['signatures'])) {
117 117
 				return false;
118 118
 			}
119 119
 		}
@@ -130,12 +130,12 @@  discard block
 block discarded – undo
130 130
 	 * @version 4.0.0
131 131
 	 */
132 132
 	public function get_request_headers() {
133
-		if ( ! function_exists( 'getallheaders' ) ) {
133
+		if ( ! function_exists('getallheaders')) {
134 134
 			$headers = array();
135 135
 
136
-			foreach ( $_SERVER as $name => $value ) {
137
-				if ( 'HTTP_' === substr( $name, 0, 5 ) ) {
138
-					$headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
136
+			foreach ($_SERVER as $name => $value) {
137
+				if ('HTTP_' === substr($name, 0, 5)) {
138
+					$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
139 139
 				}
140 140
 			}
141 141
 
@@ -154,30 +154,30 @@  discard block
 block discarded – undo
154 154
 	 * @param object $notification
155 155
 	 * @param bool $retry
156 156
 	 */
157
-	public function process_webhook_payment( $notification, $retry = true ) {
157
+	public function process_webhook_payment($notification, $retry = true) {
158 158
 		// The following 3 payment methods are synchronous so does not need to be handle via webhook.
159
-		if ( 'card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $notification->data->object->type ) {
159
+		if ('card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $notification->data->object->type) {
160 160
 			return;
161 161
 		}
162 162
 
163
-		$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
163
+		$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
164 164
 
165
-		if ( ! $order ) {
166
-			WC_Stripe_Logger::log( 'Could not find order via source ID: ' . $notification->data->object->id );
165
+		if ( ! $order) {
166
+			WC_Stripe_Logger::log('Could not find order via source ID: ' . $notification->data->object->id);
167 167
 			return;
168 168
 		}
169 169
 
170
-		$order_id  = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
170
+		$order_id  = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
171 171
 		$source_id = $notification->data->object->id;
172 172
 
173
-		$is_pending_receiver = ( 'receiver' === $notification->data->object->flow );
173
+		$is_pending_receiver = ('receiver' === $notification->data->object->flow);
174 174
 
175 175
 		try {
176
-			if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() ) {
176
+			if ('processing' === $order->get_status() || 'completed' === $order->get_status()) {
177 177
 				return;
178 178
 			}
179 179
 
180
-			if ( 'on-hold' === $order->get_status() && ! $is_pending_receiver ) {
180
+			if ('on-hold' === $order->get_status() && ! $is_pending_receiver) {
181 181
 				return;
182 182
 			}
183 183
 
@@ -185,94 +185,94 @@  discard block
 block discarded – undo
185 185
 			$response = null;
186 186
 
187 187
 			// This will throw exception if not valid.
188
-			$this->validate_minimum_order_amount( $order );
188
+			$this->validate_minimum_order_amount($order);
189 189
 
190
-			WC_Stripe_Logger::log( "Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}" );
190
+			WC_Stripe_Logger::log("Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}");
191 191
 
192 192
 			// Prep source object.
193 193
 			$source_object           = new stdClass();
194 194
 			$source_object->token_id = '';
195
-			$source_object->customer = $this->get_stripe_customer_id( $order );
195
+			$source_object->customer = $this->get_stripe_customer_id($order);
196 196
 			$source_object->source   = $source_id;
197 197
 
198 198
 			// Make the request.
199
-			$response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ), 'charges', 'POST', true );
199
+			$response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object), 'charges', 'POST', true);
200 200
 			$headers  = $response['headers'];
201 201
 			$response = $response['body'];
202 202
 
203
-			if ( ! empty( $response->error ) ) {
203
+			if ( ! empty($response->error)) {
204 204
 				// Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without.
205
-				if ( $this->is_no_such_customer_error( $response->error ) ) {
206
-					if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) {
207
-						delete_user_meta( $order->customer_user, '_stripe_customer_id' );
208
-						delete_post_meta( $order_id, '_stripe_customer_id' );
205
+				if ($this->is_no_such_customer_error($response->error)) {
206
+					if (WC_Stripe_Helper::is_wc_lt('3.0')) {
207
+						delete_user_meta($order->customer_user, '_stripe_customer_id');
208
+						delete_post_meta($order_id, '_stripe_customer_id');
209 209
 					} else {
210
-						delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' );
211
-						$order->delete_meta_data( '_stripe_customer_id' );
210
+						delete_user_meta($order->get_customer_id(), '_stripe_customer_id');
211
+						$order->delete_meta_data('_stripe_customer_id');
212 212
 						$order->save();
213 213
 					}
214 214
 				}
215 215
 
216
-				if ( $this->is_no_such_token_error( $response->error ) && $prepared_source->token_id ) {
216
+				if ($this->is_no_such_token_error($response->error) && $prepared_source->token_id) {
217 217
 					// Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message.
218
-					$wc_token = WC_Payment_Tokens::get( $prepared_source->token_id );
218
+					$wc_token = WC_Payment_Tokens::get($prepared_source->token_id);
219 219
 					$wc_token->delete();
220
-					$localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' );
221
-					$order->add_order_note( $localized_message );
222
-					throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
220
+					$localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe');
221
+					$order->add_order_note($localized_message);
222
+					throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
223 223
 				}
224 224
 
225 225
 				// We want to retry.
226
-				if ( $this->is_retryable_error( $response->error ) ) {
227
-					if ( $retry ) {
226
+				if ($this->is_retryable_error($response->error)) {
227
+					if ($retry) {
228 228
 						// Don't do anymore retries after this.
229
-						if ( 5 <= $this->retry_interval ) {
229
+						if (5 <= $this->retry_interval) {
230 230
 
231
-							return $this->process_webhook_payment( $notification, false );
231
+							return $this->process_webhook_payment($notification, false);
232 232
 						}
233 233
 
234
-						sleep( $this->retry_interval );
234
+						sleep($this->retry_interval);
235 235
 
236 236
 						$this->retry_interval++;
237
-						return $this->process_webhook_payment( $notification, true );
237
+						return $this->process_webhook_payment($notification, true);
238 238
 					} else {
239
-						$localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' );
240
-						$order->add_order_note( $localized_message );
241
-						throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
239
+						$localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe');
240
+						$order->add_order_note($localized_message);
241
+						throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
242 242
 					}
243 243
 				}
244 244
 
245 245
 				$localized_messages = WC_Stripe_Helper::get_localized_messages();
246 246
 
247
-				if ( 'card_error' === $response->error->type ) {
248
-					$localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message;
247
+				if ('card_error' === $response->error->type) {
248
+					$localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message;
249 249
 				} else {
250
-					$localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message;
250
+					$localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message;
251 251
 				}
252 252
 
253
-				$order->add_order_note( $localized_message );
253
+				$order->add_order_note($localized_message);
254 254
 
255
-				throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
255
+				throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
256 256
 			}
257 257
 
258 258
 			// To prevent double processing the order on WC side.
259
-			if ( ! $this->is_original_request( $headers ) ) {
259
+			if ( ! $this->is_original_request($headers)) {
260 260
 				return;
261 261
 			}
262 262
 
263
-			do_action( 'wc_gateway_stripe_process_webhook_payment', $response, $order );
263
+			do_action('wc_gateway_stripe_process_webhook_payment', $response, $order);
264 264
 
265
-			$this->process_response( $response, $order );
265
+			$this->process_response($response, $order);
266 266
 
267
-		} catch ( WC_Stripe_Exception $e ) {
268
-			WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() );
267
+		} catch (WC_Stripe_Exception $e) {
268
+			WC_Stripe_Logger::log('Error: ' . $e->getMessage());
269 269
 
270
-			do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e );
270
+			do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e);
271 271
 
272
-			$statuses = array( 'pending', 'failed' );
272
+			$statuses = array('pending', 'failed');
273 273
 
274
-			if ( $order->has_status( $statuses ) ) {
275
-				$this->send_failed_order_email( $order_id );
274
+			if ($order->has_status($statuses)) {
275
+				$this->send_failed_order_email($order_id);
276 276
 			}
277 277
 		}
278 278
 	}
@@ -285,21 +285,21 @@  discard block
 block discarded – undo
285 285
 	 * @since 4.0.0
286 286
 	 * @param object $notification
287 287
 	 */
288
-	public function process_webhook_dispute( $notification ) {
289
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
288
+	public function process_webhook_dispute($notification) {
289
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
290 290
 
291
-		if ( ! $order ) {
292
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
291
+		if ( ! $order) {
292
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
293 293
 			return;
294 294
 		}
295 295
 
296 296
 		/* translators: 1) The URL to the order. */
297
-		$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
+		$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)));
298 298
 
299
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
299
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
300 300
 
301
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
302
-		$this->send_failed_order_email( $order_id );
301
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
302
+		$this->send_failed_order_email($order_id);
303 303
 	}
304 304
 
305 305
 	/**
@@ -310,45 +310,45 @@  discard block
 block discarded – undo
310 310
 	 * @version 4.0.0
311 311
 	 * @param object $notification
312 312
 	 */
313
-	public function process_webhook_capture( $notification ) {
314
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
313
+	public function process_webhook_capture($notification) {
314
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
315 315
 
316
-		if ( ! $order ) {
317
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
316
+		if ( ! $order) {
317
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
318 318
 			return;
319 319
 		}
320 320
 
321
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
321
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
322 322
 
323
-		if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) {
324
-			$charge   = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
325
-			$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 );
323
+		if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) {
324
+			$charge   = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
325
+			$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);
326 326
 
327
-			if ( $charge && 'no' === $captured ) {
328
-				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' );
327
+			if ($charge && 'no' === $captured) {
328
+				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');
329 329
 
330 330
 				// Store other data such as fees
331
-				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
+				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);
332 332
 
333
-				if ( isset( $notification->data->object->balance_transaction ) ) {
334
-					$this->update_fees( $order, $notification->data->object->balance_transaction );
333
+				if (isset($notification->data->object->balance_transaction)) {
334
+					$this->update_fees($order, $notification->data->object->balance_transaction);
335 335
 				}
336 336
 
337 337
 				// Check and see if capture is partial.
338
-				if ( $this->is_partial_capture( $notification ) ) {
339
-					$partial_amount = $this->get_partial_amount_to_charge( $notification );
340
-					$order->set_total( $partial_amount );
341
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
338
+				if ($this->is_partial_capture($notification)) {
339
+					$partial_amount = $this->get_partial_amount_to_charge($notification);
340
+					$order->set_total($partial_amount);
341
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
342 342
 					/* translators: partial captured amount */
343
-					$order->add_order_note( sprintf( __( 'This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe' ), $partial_amount ) );
343
+					$order->add_order_note(sprintf(__('This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe'), $partial_amount));
344 344
 				} else {
345
-					$order->payment_complete( $notification->data->object->id );
345
+					$order->payment_complete($notification->data->object->id);
346 346
 
347 347
 					/* translators: transaction id */
348
-					$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
348
+					$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
349 349
 				}
350 350
 
351
-				if ( is_callable( array( $order, 'save' ) ) ) {
351
+				if (is_callable(array($order, 'save'))) {
352 352
 					$order->save();
353 353
 				}
354 354
 			}
@@ -363,43 +363,43 @@  discard block
 block discarded – undo
363 363
 	 * @version 4.0.0
364 364
 	 * @param object $notification
365 365
 	 */
366
-	public function process_webhook_charge_succeeded( $notification ) {
366
+	public function process_webhook_charge_succeeded($notification) {
367 367
 		// Ignore the notification for charges, created through PaymentIntents.
368
-		if ( isset( $notification->data->object->payment_intent ) && $notification->data->object->payment_intent ) {
368
+		if (isset($notification->data->object->payment_intent) && $notification->data->object->payment_intent) {
369 369
 			return;
370 370
 		}
371 371
 
372 372
 		// The following payment methods are synchronous so does not need to be handle via webhook.
373
-		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
+		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)) {
374 374
 			return;
375 375
 		}
376 376
 
377
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
377
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
378 378
 
379
-		if ( ! $order ) {
380
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
379
+		if ( ! $order) {
380
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
381 381
 			return;
382 382
 		}
383 383
 
384
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
384
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
385 385
 
386
-		if ( 'on-hold' !== $order->get_status() ) {
386
+		if ('on-hold' !== $order->get_status()) {
387 387
 			return;
388 388
 		}
389 389
 
390 390
 		// Store other data such as fees
391
-		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
+		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);
392 392
 
393
-		if ( isset( $notification->data->object->balance_transaction ) ) {
394
-			$this->update_fees( $order, $notification->data->object->balance_transaction );
393
+		if (isset($notification->data->object->balance_transaction)) {
394
+			$this->update_fees($order, $notification->data->object->balance_transaction);
395 395
 		}
396 396
 
397
-		$order->payment_complete( $notification->data->object->id );
397
+		$order->payment_complete($notification->data->object->id);
398 398
 
399 399
 		/* translators: transaction id */
400
-		$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
400
+		$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
401 401
 
402
-		if ( is_callable( array( $order, 'save' ) ) ) {
402
+		if (is_callable(array($order, 'save'))) {
403 403
 			$order->save();
404 404
 		}
405 405
 	}
@@ -411,24 +411,24 @@  discard block
 block discarded – undo
411 411
 	 * @since 4.1.5 Can handle any fail payments from any methods.
412 412
 	 * @param object $notification
413 413
 	 */
414
-	public function process_webhook_charge_failed( $notification ) {
415
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
414
+	public function process_webhook_charge_failed($notification) {
415
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
416 416
 
417
-		if ( ! $order ) {
418
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
417
+		if ( ! $order) {
418
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
419 419
 			return;
420 420
 		}
421 421
 
422
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
422
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
423 423
 
424 424
 		// If order status is already in failed status don't continue.
425
-		if ( 'failed' === $order->get_status() ) {
425
+		if ('failed' === $order->get_status()) {
426 426
 			return;
427 427
 		}
428 428
 
429
-		$order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) );
429
+		$order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe'));
430 430
 
431
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
431
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
432 432
 	}
433 433
 
434 434
 	/**
@@ -439,30 +439,30 @@  discard block
 block discarded – undo
439 439
 	 * @since 4.1.15 Add check to make sure order is processed by Stripe.
440 440
 	 * @param object $notification
441 441
 	 */
442
-	public function process_webhook_source_canceled( $notification ) {
443
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
442
+	public function process_webhook_source_canceled($notification) {
443
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
444 444
 
445 445
 		// If can't find order by charge ID, try source ID.
446
-		if ( ! $order ) {
447
-			$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
446
+		if ( ! $order) {
447
+			$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
448 448
 
449
-			if ( ! $order ) {
450
-				WC_Stripe_Logger::log( 'Could not find order via charge/source ID: ' . $notification->data->object->id );
449
+			if ( ! $order) {
450
+				WC_Stripe_Logger::log('Could not find order via charge/source ID: ' . $notification->data->object->id);
451 451
 				return;
452 452
 			}
453 453
 		}
454 454
 
455 455
 		// Don't proceed if payment method isn't Stripe.
456
-		if ( 'stripe' !== $order->get_payment_method() ) {
457
-			WC_Stripe_Logger::log( 'Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id() );
456
+		if ('stripe' !== $order->get_payment_method()) {
457
+			WC_Stripe_Logger::log('Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id());
458 458
 			return;
459 459
 		}
460 460
 
461
-		if ( 'cancelled' !== $order->get_status() ) {
462
-			$order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) );
461
+		if ('cancelled' !== $order->get_status()) {
462
+			$order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe'));
463 463
 		}
464 464
 
465
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
465
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
466 466
 	}
467 467
 
468 468
 	/**
@@ -472,59 +472,59 @@  discard block
 block discarded – undo
472 472
 	 * @version 4.0.0
473 473
 	 * @param object $notification
474 474
 	 */
475
-	public function process_webhook_refund( $notification ) {
476
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
475
+	public function process_webhook_refund($notification) {
476
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
477 477
 
478
-		if ( ! $order ) {
479
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
478
+		if ( ! $order) {
479
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
480 480
 			return;
481 481
 		}
482 482
 
483
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
483
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
484 484
 
485
-		if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) {
486
-			$charge    = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
487
-			$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 );
488
-			$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 );
485
+		if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) {
486
+			$charge    = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
487
+			$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);
488
+			$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);
489 489
 
490 490
 			// If the refund ID matches, don't continue to prevent double refunding.
491
-			if ( $notification->data->object->refunds->data[0]->id === $refund_id ) {
491
+			if ($notification->data->object->refunds->data[0]->id === $refund_id) {
492 492
 				return;
493 493
 			}
494 494
 
495 495
 			// Only refund captured charge.
496
-			if ( $charge ) {
497
-				$reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
496
+			if ($charge) {
497
+				$reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
498 498
 
499 499
 				// Create the refund.
500 500
 				$refund = wc_create_refund(
501 501
 					array(
502 502
 						'order_id' => $order_id,
503
-						'amount'   => $this->get_refund_amount( $notification ),
503
+						'amount'   => $this->get_refund_amount($notification),
504 504
 						'reason'   => $reason,
505 505
 					)
506 506
 				);
507 507
 
508
-				if ( is_wp_error( $refund ) ) {
509
-					WC_Stripe_Logger::log( $refund->get_error_message() );
508
+				if (is_wp_error($refund)) {
509
+					WC_Stripe_Logger::log($refund->get_error_message());
510 510
 				}
511 511
 
512
-				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
+				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);
513 513
 
514
-				$amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 );
514
+				$amount = wc_price($notification->data->object->refunds->data[0]->amount / 100);
515 515
 
516
-				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() ) ) {
517
-					$amount = wc_price( $notification->data->object->refunds->data[0]->amount );
516
+				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())) {
517
+					$amount = wc_price($notification->data->object->refunds->data[0]->amount);
518 518
 				}
519 519
 
520
-				if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) {
521
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
520
+				if (isset($notification->data->object->refunds->data[0]->balance_transaction)) {
521
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
522 522
 				}
523 523
 
524 524
 				/* translators: 1) dollar amount 2) transaction id 3) refund message */
525
-				$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
+				$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');
526 526
 
527
-				$order->add_order_note( $refund_message );
527
+				$order->add_order_note($refund_message);
528 528
 			}
529 529
 		}
530 530
 	}
@@ -535,21 +535,21 @@  discard block
 block discarded – undo
535 535
 	 * @since 4.0.6
536 536
 	 * @param object $notification
537 537
 	 */
538
-	public function process_review_opened( $notification ) {
539
-		$order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent );
538
+	public function process_review_opened($notification) {
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
 
546 546
 		/* translators: 1) The URL to the order. 2) The reason type. */
547
-		$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 );
547
+		$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);
548 548
 
549
-		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
550
-			$order->update_status( 'on-hold', $message );
549
+		if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
550
+			$order->update_status('on-hold', $message);
551 551
 		} else {
552
-			$order->add_order_note( $message );
552
+			$order->add_order_note($message);
553 553
 		}
554 554
 	}
555 555
 
@@ -559,25 +559,25 @@  discard block
 block discarded – undo
559 559
 	 * @since 4.0.6
560 560
 	 * @param object $notification
561 561
 	 */
562
-	public function process_review_closed( $notification ) {
563
-		$order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent );
562
+	public function process_review_closed($notification) {
563
+		$order = WC_Stripe_Helper::get_order_by_intent_id($notification->data->object->payment_intent);
564 564
 
565
-		if ( ! $order ) {
566
-			WC_Stripe_Logger::log( '[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent );
565
+		if ( ! $order) {
566
+			WC_Stripe_Logger::log('[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent);
567 567
 			return;
568 568
 		}
569 569
 
570 570
 		/* translators: 1) The reason type. */
571
-		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
571
+		$message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason);
572 572
 
573
-		if ( 'on-hold' === $order->get_status() ) {
574
-			if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
575
-				$order->update_status( 'processing', $message );
573
+		if ('on-hold' === $order->get_status()) {
574
+			if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
575
+				$order->update_status('processing', $message);
576 576
 			} else {
577
-				$order->add_order_note( $message );
577
+				$order->add_order_note($message);
578 578
 			}
579 579
 		} else {
580
-			$order->add_order_note( $message );
580
+			$order->add_order_note($message);
581 581
 		}
582 582
 	}
583 583
 
@@ -588,7 +588,7 @@  discard block
 block discarded – undo
588 588
 	 * @version 4.0.0
589 589
 	 * @param object $notification
590 590
 	 */
591
-	public function is_partial_capture( $notification ) {
591
+	public function is_partial_capture($notification) {
592 592
 		return 0 < $notification->data->object->amount_refunded;
593 593
 	}
594 594
 
@@ -599,11 +599,11 @@  discard block
 block discarded – undo
599 599
 	 * @version 4.0.0
600 600
 	 * @param object $notification
601 601
 	 */
602
-	public function get_refund_amount( $notification ) {
603
-		if ( $this->is_partial_capture( $notification ) ) {
602
+	public function get_refund_amount($notification) {
603
+		if ($this->is_partial_capture($notification)) {
604 604
 			$amount = $notification->data->object->refunds->data[0]->amount / 100;
605 605
 
606
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
606
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
607 607
 				$amount = $notification->data->object->refunds->data[0]->amount;
608 608
 			}
609 609
 
@@ -620,12 +620,12 @@  discard block
 block discarded – undo
620 620
 	 * @version 4.0.0
621 621
 	 * @param object $notification
622 622
 	 */
623
-	public function get_partial_amount_to_charge( $notification ) {
624
-		if ( $this->is_partial_capture( $notification ) ) {
625
-			$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100;
623
+	public function get_partial_amount_to_charge($notification) {
624
+		if ($this->is_partial_capture($notification)) {
625
+			$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100;
626 626
 
627
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
628
-				$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded );
627
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
628
+				$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded);
629 629
 			}
630 630
 
631 631
 			return $amount;
@@ -634,45 +634,45 @@  discard block
 block discarded – undo
634 634
 		return false;
635 635
 	}
636 636
 
637
-	public function process_payment_intent_success( $notification ) {
637
+	public function process_payment_intent_success($notification) {
638 638
 		$intent = $notification->data->object;
639
-		$order = WC_Stripe_Helper::get_order_by_intent_id( $intent->id );
639
+		$order = WC_Stripe_Helper::get_order_by_intent_id($intent->id);
640 640
 
641
-		if ( ! $order ) {
642
-			WC_Stripe_Logger::log( 'Could not find order via intent ID: ' . $intent->id );
641
+		if ( ! $order) {
642
+			WC_Stripe_Logger::log('Could not find order via intent ID: ' . $intent->id);
643 643
 			return;
644 644
 		}
645 645
 
646
-		if ( 'pending' !== $order->get_status() && 'failed' !== $order->get_status() ) {
646
+		if ('pending' !== $order->get_status() && 'failed' !== $order->get_status()) {
647 647
 			return;
648 648
 		}
649 649
 
650
-		if ( $this->lock_order_payment( $order, $intent ) ) {
650
+		if ($this->lock_order_payment($order, $intent)) {
651 651
 			return;
652 652
 		}
653 653
 
654
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
655
-		if ( 'payment_intent.succeeded' === $notification->type || 'payment_intent.amount_capturable_updated' === $notification->type ) {
656
-			$charge = end( $intent->charges->data );
657
-			WC_Stripe_Logger::log( "Stripe PaymentIntent $intent->id succeeded for order $order_id" );
654
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
655
+		if ('payment_intent.succeeded' === $notification->type || 'payment_intent.amount_capturable_updated' === $notification->type) {
656
+			$charge = end($intent->charges->data);
657
+			WC_Stripe_Logger::log("Stripe PaymentIntent $intent->id succeeded for order $order_id");
658 658
 
659
-			do_action( 'wc_gateway_stripe_process_payment', $charge, $order );
659
+			do_action('wc_gateway_stripe_process_payment', $charge, $order);
660 660
 
661 661
 			// Process valid response.
662
-			$this->process_response( $charge, $order );
662
+			$this->process_response($charge, $order);
663 663
 
664 664
 		} else {
665 665
 			$error_message = $intent->last_payment_error ? $intent->last_payment_error->message : "";
666 666
 
667 667
 			/* translators: 1) The error message that was received from Stripe. */
668
-			$order->update_status( 'failed', sprintf( __( 'Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe' ), $error_message ) );
668
+			$order->update_status('failed', sprintf(__('Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe'), $error_message));
669 669
 
670
-			do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
670
+			do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
671 671
 
672
-			$this->send_failed_order_email( $order_id );
672
+			$this->send_failed_order_email($order_id);
673 673
 		}
674 674
 
675
-		$this->unlock_order_payment( $order );
675
+		$this->unlock_order_payment($order);
676 676
 	}
677 677
 
678 678
 	/**
@@ -682,50 +682,50 @@  discard block
 block discarded – undo
682 682
 	 * @version 4.0.0
683 683
 	 * @param string $request_body
684 684
 	 */
685
-	public function process_webhook( $request_body ) {
686
-		$notification = json_decode( $request_body );
685
+	public function process_webhook($request_body) {
686
+		$notification = json_decode($request_body);
687 687
 
688
-		switch ( $notification->type ) {
688
+		switch ($notification->type) {
689 689
 			case 'source.chargeable':
690
-				$this->process_webhook_payment( $notification );
690
+				$this->process_webhook_payment($notification);
691 691
 				break;
692 692
 
693 693
 			case 'source.canceled':
694
-				$this->process_webhook_source_canceled( $notification );
694
+				$this->process_webhook_source_canceled($notification);
695 695
 				break;
696 696
 
697 697
 			case 'charge.succeeded':
698
-				$this->process_webhook_charge_succeeded( $notification );
698
+				$this->process_webhook_charge_succeeded($notification);
699 699
 				break;
700 700
 
701 701
 			case 'charge.failed':
702
-				$this->process_webhook_charge_failed( $notification );
702
+				$this->process_webhook_charge_failed($notification);
703 703
 				break;
704 704
 
705 705
 			case 'charge.captured':
706
-				$this->process_webhook_capture( $notification );
706
+				$this->process_webhook_capture($notification);
707 707
 				break;
708 708
 
709 709
 			case 'charge.dispute.created':
710
-				$this->process_webhook_dispute( $notification );
710
+				$this->process_webhook_dispute($notification);
711 711
 				break;
712 712
 
713 713
 			case 'charge.refunded':
714
-				$this->process_webhook_refund( $notification );
714
+				$this->process_webhook_refund($notification);
715 715
 				break;
716 716
 
717 717
 			case 'review.opened':
718
-				$this->process_review_opened( $notification );
718
+				$this->process_review_opened($notification);
719 719
 				break;
720 720
 
721 721
 			case 'review.closed':
722
-				$this->process_review_closed( $notification );
722
+				$this->process_review_closed($notification);
723 723
 				break;
724 724
 
725 725
 			case 'payment_intent.succeeded':
726 726
 			case 'payment_intent.payment_failed':
727 727
 			case 'payment_intent.amount_capturable_updated':
728
-				$this->process_payment_intent_success( $notification );
728
+				$this->process_payment_intent_success($notification);
729 729
 
730 730
 		}
731 731
 	}
Please login to merge, or discard this patch.
includes/admin/stripe-settings.php 1 patch
Spacing   +56 added lines, -56 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
 
@@ -7,160 +7,160 @@  discard block
 block discarded – undo
7 7
 	'wc_stripe_settings',
8 8
 	array(
9 9
 		'enabled'                       => array(
10
-			'title'       => __( 'Enable/Disable', 'woocommerce-gateway-stripe' ),
11
-			'label'       => __( 'Enable Stripe', 'woocommerce-gateway-stripe' ),
10
+			'title'       => __('Enable/Disable', 'woocommerce-gateway-stripe'),
11
+			'label'       => __('Enable Stripe', 'woocommerce-gateway-stripe'),
12 12
 			'type'        => 'checkbox',
13 13
 			'description' => '',
14 14
 			'default'     => 'no',
15 15
 		),
16 16
 		'title'                         => array(
17
-			'title'       => __( 'Title', 'woocommerce-gateway-stripe' ),
17
+			'title'       => __('Title', 'woocommerce-gateway-stripe'),
18 18
 			'type'        => 'text',
19
-			'description' => __( 'This controls the title which the user sees during checkout.', 'woocommerce-gateway-stripe' ),
20
-			'default'     => __( 'Credit Card (Stripe)', 'woocommerce-gateway-stripe' ),
19
+			'description' => __('This controls the title which the user sees during checkout.', 'woocommerce-gateway-stripe'),
20
+			'default'     => __('Credit Card (Stripe)', 'woocommerce-gateway-stripe'),
21 21
 			'desc_tip'    => true,
22 22
 		),
23 23
 		'description'                   => array(
24
-			'title'       => __( 'Description', 'woocommerce-gateway-stripe' ),
24
+			'title'       => __('Description', 'woocommerce-gateway-stripe'),
25 25
 			'type'        => 'text',
26
-			'description' => __( 'This controls the description which the user sees during checkout.', 'woocommerce-gateway-stripe' ),
27
-			'default'     => __( 'Pay with your credit card via Stripe.', 'woocommerce-gateway-stripe' ),
26
+			'description' => __('This controls the description which the user sees during checkout.', 'woocommerce-gateway-stripe'),
27
+			'default'     => __('Pay with your credit card via Stripe.', 'woocommerce-gateway-stripe'),
28 28
 			'desc_tip'    => true,
29 29
 		),
30 30
 		'webhook'                       => array(
31
-			'title'       => __( 'Webhook Endpoints', 'woocommerce-gateway-stripe' ),
31
+			'title'       => __('Webhook Endpoints', 'woocommerce-gateway-stripe'),
32 32
 			'type'        => 'title',
33 33
 			/* translators: webhook URL */
34 34
 			'description' => $this->display_admin_settings_webhook_description(),
35 35
 		),
36 36
 		'testmode'                      => array(
37
-			'title'       => __( 'Test mode', 'woocommerce-gateway-stripe' ),
38
-			'label'       => __( 'Enable Test Mode', 'woocommerce-gateway-stripe' ),
37
+			'title'       => __('Test mode', 'woocommerce-gateway-stripe'),
38
+			'label'       => __('Enable Test Mode', 'woocommerce-gateway-stripe'),
39 39
 			'type'        => 'checkbox',
40
-			'description' => __( 'Place the payment gateway in test mode using test API keys.', 'woocommerce-gateway-stripe' ),
40
+			'description' => __('Place the payment gateway in test mode using test API keys.', 'woocommerce-gateway-stripe'),
41 41
 			'default'     => 'yes',
42 42
 			'desc_tip'    => true,
43 43
 		),
44 44
 		'test_publishable_key'          => array(
45
-			'title'       => __( 'Test Publishable Key', 'woocommerce-gateway-stripe' ),
45
+			'title'       => __('Test Publishable Key', 'woocommerce-gateway-stripe'),
46 46
 			'type'        => 'text',
47
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
47
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
48 48
 			'default'     => '',
49 49
 			'desc_tip'    => true,
50 50
 		),
51 51
 		'test_secret_key'               => array(
52
-			'title'       => __( 'Test Secret Key', 'woocommerce-gateway-stripe' ),
52
+			'title'       => __('Test Secret Key', 'woocommerce-gateway-stripe'),
53 53
 			'type'        => 'password',
54
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
54
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
55 55
 			'default'     => '',
56 56
 			'desc_tip'    => true,
57 57
 		),
58 58
 		'test_webhook_secret'           => array(
59
-			'title'       => __( 'Test Webhook Secret', 'woocommerce-gateway-stripe' ),
59
+			'title'       => __('Test Webhook Secret', 'woocommerce-gateway-stripe'),
60 60
 			'type'        => 'password',
61
-			'description' => __( 'Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe' ),
61
+			'description' => __('Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe'),
62 62
 			'default'     => '',
63 63
 			'desc_tip'    => true,
64 64
 		),
65 65
 		'publishable_key'               => array(
66
-			'title'       => __( 'Live Publishable Key', 'woocommerce-gateway-stripe' ),
66
+			'title'       => __('Live Publishable Key', 'woocommerce-gateway-stripe'),
67 67
 			'type'        => 'text',
68
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
68
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
69 69
 			'default'     => '',
70 70
 			'desc_tip'    => true,
71 71
 		),
72 72
 		'secret_key'                    => array(
73
-			'title'       => __( 'Live Secret Key', 'woocommerce-gateway-stripe' ),
73
+			'title'       => __('Live Secret Key', 'woocommerce-gateway-stripe'),
74 74
 			'type'        => 'password',
75
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
75
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
76 76
 			'default'     => '',
77 77
 			'desc_tip'    => true,
78 78
 		),
79 79
 		'webhook_secret'               => array(
80
-			'title'       => __( 'Webhook Secret', 'woocommerce-gateway-stripe' ),
80
+			'title'       => __('Webhook Secret', 'woocommerce-gateway-stripe'),
81 81
 			'type'        => 'password',
82
-			'description' => __( 'Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe' ),
82
+			'description' => __('Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe'),
83 83
 			'default'     => '',
84 84
 			'desc_tip'    => true,
85 85
 		),
86 86
 		'inline_cc_form'                => array(
87
-			'title'       => __( 'Inline Credit Card Form', 'woocommerce-gateway-stripe' ),
87
+			'title'       => __('Inline Credit Card Form', 'woocommerce-gateway-stripe'),
88 88
 			'type'        => 'checkbox',
89
-			'description' => __( 'Choose the style you want to show for your credit card form. When unchecked, the credit card form will display separate credit card number field, expiry date field and cvc field.', 'woocommerce-gateway-stripe' ),
89
+			'description' => __('Choose the style you want to show for your credit card form. When unchecked, the credit card form will display separate credit card number field, expiry date field and cvc field.', 'woocommerce-gateway-stripe'),
90 90
 			'default'     => 'no',
91 91
 			'desc_tip'    => true,
92 92
 		),
93 93
 		'statement_descriptor'          => array(
94
-			'title'       => __( 'Statement Descriptor', 'woocommerce-gateway-stripe' ),
94
+			'title'       => __('Statement Descriptor', 'woocommerce-gateway-stripe'),
95 95
 			'type'        => 'text',
96
-			'description' => __( 'Statement descriptors are limited to 22 characters, cannot use the special characters >, <, ", \, \', *, and must not consist solely of numbers. This will appear on your customer\'s statement in capital letters.', 'woocommerce-gateway-stripe' ),
96
+			'description' => __('Statement descriptors are limited to 22 characters, cannot use the special characters >, <, ", \, \', *, and must not consist solely of numbers. This will appear on your customer\'s statement in capital letters.', 'woocommerce-gateway-stripe'),
97 97
 			'default'     => '',
98 98
 			'desc_tip'    => true,
99 99
 		),
100 100
 		'capture'                       => array(
101
-			'title'       => __( 'Capture', 'woocommerce-gateway-stripe' ),
102
-			'label'       => __( 'Capture charge immediately', 'woocommerce-gateway-stripe' ),
101
+			'title'       => __('Capture', 'woocommerce-gateway-stripe'),
102
+			'label'       => __('Capture charge immediately', 'woocommerce-gateway-stripe'),
103 103
 			'type'        => 'checkbox',
104
-			'description' => __( 'Whether or not to immediately capture the charge. When unchecked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days.', 'woocommerce-gateway-stripe' ),
104
+			'description' => __('Whether or not to immediately capture the charge. When unchecked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days.', 'woocommerce-gateway-stripe'),
105 105
 			'default'     => 'yes',
106 106
 			'desc_tip'    => true,
107 107
 		),
108 108
 		'payment_request'               => array(
109
-			'title'       => __( 'Payment Request Buttons', 'woocommerce-gateway-stripe' ),
109
+			'title'       => __('Payment Request Buttons', 'woocommerce-gateway-stripe'),
110 110
 			/* translators: 1) br tag 2) opening anchor tag 3) closing anchor tag */
111
-			'label'       => sprintf( __( 'Enable Payment Request Buttons. (Apple Pay/Chrome Payment Request API) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service.', 'woocommerce-gateway-stripe' ), '<br />', '<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>', '<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>' ),
111
+			'label'       => sprintf(__('Enable Payment Request Buttons. (Apple Pay/Chrome Payment Request API) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service.', 'woocommerce-gateway-stripe'), '<br />', '<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>', '<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>'),
112 112
 			'type'        => 'checkbox',
113
-			'description' => __( 'If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe' ),
113
+			'description' => __('If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe'),
114 114
 			'default'     => 'yes',
115 115
 			'desc_tip'    => true,
116 116
 		),
117 117
 		'payment_request_button_type'   => array(
118
-			'title'       => __( 'Payment Request Button Type', 'woocommerce-gateway-stripe' ),
119
-			'label'       => __( 'Button Type', 'woocommerce-gateway-stripe' ),
118
+			'title'       => __('Payment Request Button Type', 'woocommerce-gateway-stripe'),
119
+			'label'       => __('Button Type', 'woocommerce-gateway-stripe'),
120 120
 			'type'        => 'select',
121
-			'description' => __( 'Select the button type you would like to show.', 'woocommerce-gateway-stripe' ),
121
+			'description' => __('Select the button type you would like to show.', 'woocommerce-gateway-stripe'),
122 122
 			'default'     => 'buy',
123 123
 			'desc_tip'    => true,
124 124
 			'options'     => array(
125
-				'default' => __( 'Default', 'woocommerce-gateway-stripe' ),
126
-				'buy'     => __( 'Buy', 'woocommerce-gateway-stripe' ),
127
-				'donate'  => __( 'Donate', 'woocommerce-gateway-stripe' ),
125
+				'default' => __('Default', 'woocommerce-gateway-stripe'),
126
+				'buy'     => __('Buy', 'woocommerce-gateway-stripe'),
127
+				'donate'  => __('Donate', 'woocommerce-gateway-stripe'),
128 128
 			),
129 129
 		),
130 130
 		'payment_request_button_theme'  => array(
131
-			'title'       => __( 'Payment Request Button Theme', 'woocommerce-gateway-stripe' ),
132
-			'label'       => __( 'Button Theme', 'woocommerce-gateway-stripe' ),
131
+			'title'       => __('Payment Request Button Theme', 'woocommerce-gateway-stripe'),
132
+			'label'       => __('Button Theme', 'woocommerce-gateway-stripe'),
133 133
 			'type'        => 'select',
134
-			'description' => __( 'Select the button theme you would like to show.', 'woocommerce-gateway-stripe' ),
134
+			'description' => __('Select the button theme you would like to show.', 'woocommerce-gateway-stripe'),
135 135
 			'default'     => 'dark',
136 136
 			'desc_tip'    => true,
137 137
 			'options'     => array(
138
-				'dark'          => __( 'Dark', 'woocommerce-gateway-stripe' ),
139
-				'light'         => __( 'Light', 'woocommerce-gateway-stripe' ),
140
-				'light-outline' => __( 'Light-Outline', 'woocommerce-gateway-stripe' ),
138
+				'dark'          => __('Dark', 'woocommerce-gateway-stripe'),
139
+				'light'         => __('Light', 'woocommerce-gateway-stripe'),
140
+				'light-outline' => __('Light-Outline', 'woocommerce-gateway-stripe'),
141 141
 			),
142 142
 		),
143 143
 		'payment_request_button_height' => array(
144
-			'title'       => __( 'Payment Request Button Height', 'woocommerce-gateway-stripe' ),
145
-			'label'       => __( 'Button Height', 'woocommerce-gateway-stripe' ),
144
+			'title'       => __('Payment Request Button Height', 'woocommerce-gateway-stripe'),
145
+			'label'       => __('Button Height', 'woocommerce-gateway-stripe'),
146 146
 			'type'        => 'text',
147
-			'description' => __( 'Enter the height you would like the button to be in pixels. Width will always be 100%.', 'woocommerce-gateway-stripe' ),
147
+			'description' => __('Enter the height you would like the button to be in pixels. Width will always be 100%.', 'woocommerce-gateway-stripe'),
148 148
 			'default'     => '44',
149 149
 			'desc_tip'    => true,
150 150
 		),
151 151
 		'saved_cards'                   => array(
152
-			'title'       => __( 'Saved Cards', 'woocommerce-gateway-stripe' ),
153
-			'label'       => __( 'Enable Payment via Saved Cards', 'woocommerce-gateway-stripe' ),
152
+			'title'       => __('Saved Cards', 'woocommerce-gateway-stripe'),
153
+			'label'       => __('Enable Payment via Saved Cards', 'woocommerce-gateway-stripe'),
154 154
 			'type'        => 'checkbox',
155
-			'description' => __( 'If enabled, users will be able to pay with a saved card during checkout. Card details are saved on Stripe servers, not on your store.', 'woocommerce-gateway-stripe' ),
155
+			'description' => __('If enabled, users will be able to pay with a saved card during checkout. Card details are saved on Stripe servers, not on your store.', 'woocommerce-gateway-stripe'),
156 156
 			'default'     => 'yes',
157 157
 			'desc_tip'    => true,
158 158
 		),
159 159
 		'logging'                       => array(
160
-			'title'       => __( 'Logging', 'woocommerce-gateway-stripe' ),
161
-			'label'       => __( 'Log debug messages', 'woocommerce-gateway-stripe' ),
160
+			'title'       => __('Logging', 'woocommerce-gateway-stripe'),
161
+			'label'       => __('Log debug messages', 'woocommerce-gateway-stripe'),
162 162
 			'type'        => 'checkbox',
163
-			'description' => __( 'Save debug messages to the WooCommerce System Status log.', 'woocommerce-gateway-stripe' ),
163
+			'description' => __('Save debug messages to the WooCommerce System Status log.', 'woocommerce-gateway-stripe'),
164 164
 			'default'     => 'no',
165 165
 			'desc_tip'    => true,
166 166
 		),
Please login to merge, or discard this patch.