Completed
Push — master ( aa9932...aa9090 )
by Roy
02:38
created
includes/class-wc-stripe-webhook-handler.php 1 patch
Spacing   +183 added lines, -183 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
 
@@ -32,9 +32,9 @@  discard block
 block discarded – undo
32 32
 	 */
33 33
 	public function __construct() {
34 34
 		$this->retry_interval = 2;
35
-		$stripe_settings      = get_option( 'woocommerce_stripe_settings', array() );
36
-		$this->testmode       = ( ! empty( $stripe_settings['testmode'] ) && 'yes' === $stripe_settings['testmode'] ) ? true : false;
37
-		add_action( 'woocommerce_api_wc_stripe', array( $this, 'check_for_webhook' ) );
35
+		$stripe_settings      = get_option('woocommerce_stripe_settings', array());
36
+		$this->testmode       = ( ! empty($stripe_settings['testmode']) && 'yes' === $stripe_settings['testmode']) ? true : false;
37
+		add_action('woocommerce_api_wc_stripe', array($this, 'check_for_webhook'));
38 38
 	}
39 39
 
40 40
 	/**
@@ -44,24 +44,24 @@  discard block
 block discarded – undo
44 44
 	 * @version 4.0.0
45 45
 	 */
46 46
 	public function check_for_webhook() {
47
-		if ( ( 'POST' !== $_SERVER['REQUEST_METHOD'] )
48
-			|| ! isset( $_GET['wc-api'] )
49
-			|| ( 'wc_stripe' !== $_GET['wc-api'] )
47
+		if (('POST' !== $_SERVER['REQUEST_METHOD'])
48
+			|| ! isset($_GET['wc-api'])
49
+			|| ('wc_stripe' !== $_GET['wc-api'])
50 50
 		) {
51 51
 			return;
52 52
 		}
53 53
 
54
-		$request_body    = file_get_contents( 'php://input' );
55
-		$request_headers = array_change_key_case( $this->get_request_headers(), CASE_UPPER );
54
+		$request_body    = file_get_contents('php://input');
55
+		$request_headers = array_change_key_case($this->get_request_headers(), CASE_UPPER);
56 56
 
57 57
 		// Validate it to make sure it is legit.
58
-		if ( $this->is_valid_request( $request_headers, $request_body ) ) {
59
-			$this->process_webhook( $request_body );
60
-			status_header( 200 );
58
+		if ($this->is_valid_request($request_headers, $request_body)) {
59
+			$this->process_webhook($request_body);
60
+			status_header(200);
61 61
 			exit;
62 62
 		} else {
63
-			WC_Stripe_Logger::log( 'Incoming webhook failed validation: ' . print_r( $request_body, true ) );
64
-			status_header( 400 );
63
+			WC_Stripe_Logger::log('Incoming webhook failed validation: ' . print_r($request_body, true));
64
+			status_header(400);
65 65
 			exit;
66 66
 		}
67 67
 	}
@@ -76,12 +76,12 @@  discard block
 block discarded – undo
76 76
 	 * @param string $request_body The request body from Stripe.
77 77
 	 * @return bool
78 78
 	 */
79
-	public function is_valid_request( $request_headers = null, $request_body = null ) {
80
-		if ( null === $request_headers || null === $request_body ) {
79
+	public function is_valid_request($request_headers = null, $request_body = null) {
80
+		if (null === $request_headers || null === $request_body) {
81 81
 			return false;
82 82
 		}
83 83
 
84
-		if ( ! empty( $request_headers['USER-AGENT'] ) && ! preg_match( '/Stripe/', $request_headers['USER-AGENT'] ) ) {
84
+		if ( ! empty($request_headers['USER-AGENT']) && ! preg_match('/Stripe/', $request_headers['USER-AGENT'])) {
85 85
 			return false;
86 86
 		}
87 87
 
@@ -97,12 +97,12 @@  discard block
 block discarded – undo
97 97
 	 * @version 4.0.0
98 98
 	 */
99 99
 	public function get_request_headers() {
100
-		if ( ! function_exists( 'getallheaders' ) ) {
100
+		if ( ! function_exists('getallheaders')) {
101 101
 			$headers = array();
102 102
 
103
-			foreach ( $_SERVER as $name => $value ) {
104
-				if ( 'HTTP_' === substr( $name, 0, 5 ) ) {
105
-					$headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value;
103
+			foreach ($_SERVER as $name => $value) {
104
+				if ('HTTP_' === substr($name, 0, 5)) {
105
+					$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
106 106
 				}
107 107
 			}
108 108
 
@@ -121,30 +121,30 @@  discard block
 block discarded – undo
121 121
 	 * @param object $notification
122 122
 	 * @param bool $retry
123 123
 	 */
124
-	public function process_webhook_payment( $notification, $retry = true ) {
124
+	public function process_webhook_payment($notification, $retry = true) {
125 125
 		// The following 2 payment methods are synchronous so does not need to be handle via webhook.
126
-		if ( 'card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type ) {
126
+		if ('card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type) {
127 127
 			return;
128 128
 		}
129 129
 
130
-		$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
130
+		$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
131 131
 
132
-		if ( ! $order ) {
133
-			WC_Stripe_Logger::log( 'Could not find order via source ID: ' . $notification->data->object->id );
132
+		if ( ! $order) {
133
+			WC_Stripe_Logger::log('Could not find order via source ID: ' . $notification->data->object->id);
134 134
 			return;
135 135
 		}
136 136
 
137 137
 		$order_id  = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
138 138
 		$source_id = $notification->data->object->id;
139 139
 
140
-		$is_pending_receiver = ( 'receiver' === $notification->data->object->flow );
140
+		$is_pending_receiver = ('receiver' === $notification->data->object->flow);
141 141
 
142 142
 		try {
143
-			if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() ) {
143
+			if ('processing' === $order->get_status() || 'completed' === $order->get_status()) {
144 144
 				return;
145 145
 			}
146 146
 
147
-			if ( 'on-hold' === $order->get_status() && ! $is_pending_receiver ) {
147
+			if ('on-hold' === $order->get_status() && ! $is_pending_receiver) {
148 148
 				return;
149 149
 			}
150 150
 
@@ -152,94 +152,94 @@  discard block
 block discarded – undo
152 152
 			$response = null;
153 153
 
154 154
 			// This will throw exception if not valid.
155
-			$this->validate_minimum_order_amount( $order );
155
+			$this->validate_minimum_order_amount($order);
156 156
 
157
-			WC_Stripe_Logger::log( "Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}" );
157
+			WC_Stripe_Logger::log("Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}");
158 158
 
159 159
 			// Prep source object.
160 160
 			$source_object           = new stdClass();
161 161
 			$source_object->token_id = '';
162
-			$source_object->customer = $this->get_stripe_customer_id( $order );
162
+			$source_object->customer = $this->get_stripe_customer_id($order);
163 163
 			$source_object->source   = $source_id;
164 164
 
165 165
 			// Make the request.
166
-			$response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ), 'charges', 'POST', true );
166
+			$response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object), 'charges', 'POST', true);
167 167
 			$headers  = $response['headers'];
168 168
 			$response = $response['body'];
169 169
 
170
-			if ( ! empty( $response->error ) ) {
170
+			if ( ! empty($response->error)) {
171 171
 				// Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without.
172
-				if ( $this->is_no_such_customer_error( $response->error ) ) {
173
-					if ( WC_Stripe_Helper::is_pre_30() ) {
174
-						delete_user_meta( $order->customer_user, '_stripe_customer_id' );
175
-						delete_post_meta( $order_id, '_stripe_customer_id' );
172
+				if ($this->is_no_such_customer_error($response->error)) {
173
+					if (WC_Stripe_Helper::is_pre_30()) {
174
+						delete_user_meta($order->customer_user, '_stripe_customer_id');
175
+						delete_post_meta($order_id, '_stripe_customer_id');
176 176
 					} else {
177
-						delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' );
178
-						$order->delete_meta_data( '_stripe_customer_id' );
177
+						delete_user_meta($order->get_customer_id(), '_stripe_customer_id');
178
+						$order->delete_meta_data('_stripe_customer_id');
179 179
 						$order->save();
180 180
 					}
181 181
 				}
182 182
 
183
-				if ( $this->is_no_such_token_error( $response->error ) && $prepared_source->token_id ) {
183
+				if ($this->is_no_such_token_error($response->error) && $prepared_source->token_id) {
184 184
 					// Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message.
185
-					$wc_token = WC_Payment_Tokens::get( $prepared_source->token_id );
185
+					$wc_token = WC_Payment_Tokens::get($prepared_source->token_id);
186 186
 					$wc_token->delete();
187
-					$localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' );
188
-					$order->add_order_note( $localized_message );
189
-					throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
187
+					$localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe');
188
+					$order->add_order_note($localized_message);
189
+					throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
190 190
 				}
191 191
 
192 192
 				// We want to retry.
193
-				if ( $this->is_retryable_error( $response->error ) ) {
194
-					if ( $retry ) {
193
+				if ($this->is_retryable_error($response->error)) {
194
+					if ($retry) {
195 195
 						// Don't do anymore retries after this.
196
-						if ( 5 <= $this->retry_interval ) {
196
+						if (5 <= $this->retry_interval) {
197 197
 
198
-							return $this->process_webhook_payment( $notification, false );
198
+							return $this->process_webhook_payment($notification, false);
199 199
 						}
200 200
 
201
-						sleep( $this->retry_interval );
201
+						sleep($this->retry_interval);
202 202
 
203 203
 						$this->retry_interval++;
204
-						return $this->process_webhook_payment( $notification, true );
204
+						return $this->process_webhook_payment($notification, true);
205 205
 					} else {
206
-						$localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' );
207
-						$order->add_order_note( $localized_message );
208
-						throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
206
+						$localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe');
207
+						$order->add_order_note($localized_message);
208
+						throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
209 209
 					}
210 210
 				}
211 211
 
212 212
 				$localized_messages = WC_Stripe_Helper::get_localized_messages();
213 213
 
214
-				if ( 'card_error' === $response->error->type ) {
215
-					$localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message;
214
+				if ('card_error' === $response->error->type) {
215
+					$localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message;
216 216
 				} else {
217
-					$localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message;
217
+					$localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message;
218 218
 				}
219 219
 
220
-				$order->add_order_note( $localized_message );
220
+				$order->add_order_note($localized_message);
221 221
 
222
-				throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message );
222
+				throw new WC_Stripe_Exception(print_r($response, true), $localized_message);
223 223
 			}
224 224
 
225 225
 			// To prevent double processing the order on WC side.
226
-			if ( ! $this->is_original_request( $headers ) ) {
226
+			if ( ! $this->is_original_request($headers)) {
227 227
 				return;
228 228
 			}
229 229
 
230
-			do_action( 'wc_gateway_stripe_process_webhook_payment', $response, $order );
230
+			do_action('wc_gateway_stripe_process_webhook_payment', $response, $order);
231 231
 
232
-			$this->process_response( $response, $order );
232
+			$this->process_response($response, $order);
233 233
 
234
-		} catch ( WC_Stripe_Exception $e ) {
235
-			WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() );
234
+		} catch (WC_Stripe_Exception $e) {
235
+			WC_Stripe_Logger::log('Error: ' . $e->getMessage());
236 236
 
237
-			do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e );
237
+			do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e);
238 238
 
239
-			$statuses = array( 'pending', 'failed' );
239
+			$statuses = array('pending', 'failed');
240 240
 
241
-			if ( $order->has_status( $statuses ) ) {
242
-				$this->send_failed_order_email( $order_id );
241
+			if ($order->has_status($statuses)) {
242
+				$this->send_failed_order_email($order_id);
243 243
 			}
244 244
 		}
245 245
 	}
@@ -252,21 +252,21 @@  discard block
 block discarded – undo
252 252
 	 * @since 4.0.0
253 253
 	 * @param object $notification
254 254
 	 */
255
-	public function process_webhook_dispute( $notification ) {
256
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
255
+	public function process_webhook_dispute($notification) {
256
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
257 257
 
258
-		if ( ! $order ) {
259
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
258
+		if ( ! $order) {
259
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
260 260
 			return;
261 261
 		}
262 262
 
263 263
 		/* translators: 1) The URL to the order. */
264
-		$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 ) ) );
264
+		$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)));
265 265
 
266
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
266
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
267 267
 
268 268
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
269
-		$this->send_failed_order_email( $order_id );
269
+		$this->send_failed_order_email($order_id);
270 270
 	}
271 271
 
272 272
 	/**
@@ -277,43 +277,43 @@  discard block
 block discarded – undo
277 277
 	 * @version 4.0.0
278 278
 	 * @param object $notification
279 279
 	 */
280
-	public function process_webhook_capture( $notification ) {
281
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
280
+	public function process_webhook_capture($notification) {
281
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
282 282
 
283
-		if ( ! $order ) {
284
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
283
+		if ( ! $order) {
284
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
285 285
 			return;
286 286
 		}
287 287
 
288 288
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
289 289
 
290
-		if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) {
291
-			$charge   = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
292
-			$captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
290
+		if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) {
291
+			$charge   = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
292
+			$captured = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
293 293
 
294
-			if ( $charge && 'no' === $captured ) {
295
-				WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_stripe_charge_captured', 'yes' ) : $order->update_meta_data( '_stripe_charge_captured', 'yes' );
294
+			if ($charge && 'no' === $captured) {
295
+				WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_stripe_charge_captured', 'yes') : $order->update_meta_data('_stripe_charge_captured', 'yes');
296 296
 
297 297
 				// Store other data such as fees
298
-				WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id );
298
+				WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id);
299 299
 
300
-				if ( isset( $notification->data->object->balance_transaction ) ) {
301
-					$this->update_fees( $order, $notification->data->object->balance_transaction );
300
+				if (isset($notification->data->object->balance_transaction)) {
301
+					$this->update_fees($order, $notification->data->object->balance_transaction);
302 302
 				}
303 303
 
304 304
 				// Check and see if capture is partial.
305
-				if ( $this->is_partial_capture( $notification ) ) {
306
-					$partial_amount = $this->get_partial_amount_to_charge( $notification );
307
-					$order->set_total( $partial_amount );
308
-					$order->add_order_note( sprintf( __( 'This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe' ), $partial_amount ) );
305
+				if ($this->is_partial_capture($notification)) {
306
+					$partial_amount = $this->get_partial_amount_to_charge($notification);
307
+					$order->set_total($partial_amount);
308
+					$order->add_order_note(sprintf(__('This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe'), $partial_amount));
309 309
 				} else {
310
-					$order->payment_complete( $notification->data->object->id );
310
+					$order->payment_complete($notification->data->object->id);
311 311
 
312 312
 					/* translators: transaction id */
313
-					$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
313
+					$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
314 314
 				}
315 315
 
316
-				if ( is_callable( array( $order, 'save' ) ) ) {
316
+				if (is_callable(array($order, 'save'))) {
317 317
 					$order->save();
318 318
 				}
319 319
 			}
@@ -328,38 +328,38 @@  discard block
 block discarded – undo
328 328
 	 * @version 4.0.0
329 329
 	 * @param object $notification
330 330
 	 */
331
-	public function process_webhook_charge_succeeded( $notification ) {
331
+	public function process_webhook_charge_succeeded($notification) {
332 332
 		// The following payment methods are synchronous so does not need to be handle via webhook.
333
-		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 ) ) {
333
+		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)) {
334 334
 			return;
335 335
 		}
336 336
 
337
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
337
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
338 338
 
339
-		if ( ! $order ) {
340
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
339
+		if ( ! $order) {
340
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
341 341
 			return;
342 342
 		}
343 343
 
344 344
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
345 345
 
346
-		if ( 'on-hold' !== $order->get_status() ) {
346
+		if ('on-hold' !== $order->get_status()) {
347 347
 			return;
348 348
 		}
349 349
 
350 350
 		// Store other data such as fees
351
-		WC_Stripe_Helper::is_pre_30() ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id );
351
+		WC_Stripe_Helper::is_pre_30() ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id);
352 352
 
353
-		if ( isset( $notification->data->object->balance_transaction ) ) {
354
-			$this->update_fees( $order, $notification->data->object->balance_transaction );
353
+		if (isset($notification->data->object->balance_transaction)) {
354
+			$this->update_fees($order, $notification->data->object->balance_transaction);
355 355
 		}
356 356
 
357
-		$order->payment_complete( $notification->data->object->id );
357
+		$order->payment_complete($notification->data->object->id);
358 358
 
359 359
 		/* translators: transaction id */
360
-		$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
360
+		$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
361 361
 
362
-		if ( is_callable( array( $order, 'save' ) ) ) {
362
+		if (is_callable(array($order, 'save'))) {
363 363
 			$order->save();
364 364
 		}
365 365
 	}
@@ -372,23 +372,23 @@  discard block
 block discarded – undo
372 372
 	 * @version 4.0.0
373 373
 	 * @param object $notification
374 374
 	 */
375
-	public function process_webhook_charge_failed( $notification ) {
376
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
375
+	public function process_webhook_charge_failed($notification) {
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 383
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $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
-		$order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) );
389
+		$order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe'));
390 390
 
391
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
391
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
392 392
 	}
393 393
 
394 394
 	/**
@@ -399,23 +399,23 @@  discard block
 block discarded – undo
399 399
 	 * @version 4.0.0
400 400
 	 * @param object $notification
401 401
 	 */
402
-	public function process_webhook_source_canceled( $notification ) {
403
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
402
+	public function process_webhook_source_canceled($notification) {
403
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
404 404
 
405
-		if ( ! $order ) {
406
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
405
+		if ( ! $order) {
406
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
407 407
 			return;
408 408
 		}
409 409
 
410 410
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
411 411
 
412
-		if ( 'on-hold' !== $order->get_status() || 'cancelled' !== $order->get_status() ) {
412
+		if ('on-hold' !== $order->get_status() || 'cancelled' !== $order->get_status()) {
413 413
 			return;
414 414
 		}
415 415
 
416
-		$order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) );
416
+		$order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe'));
417 417
 
418
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
418
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
419 419
 	}
420 420
 
421 421
 	/**
@@ -425,57 +425,57 @@  discard block
 block discarded – undo
425 425
 	 * @version 4.0.0
426 426
 	 * @param object $notification
427 427
 	 */
428
-	public function process_webhook_refund( $notification ) {
429
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
428
+	public function process_webhook_refund($notification) {
429
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
430 430
 
431
-		if ( ! $order ) {
432
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
431
+		if ( ! $order) {
432
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
433 433
 			return;
434 434
 		}
435 435
 
436 436
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
437 437
 
438
-		if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) {
439
-			$charge    = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
440
-			$captured  = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
441
-			$refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_refund_id', true ) : $order->get_meta( '_stripe_refund_id', true );
438
+		if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) {
439
+			$charge    = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
440
+			$captured  = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
441
+			$refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_refund_id', true) : $order->get_meta('_stripe_refund_id', true);
442 442
 
443 443
 			// If the refund ID matches, don't continue to prevent double refunding.
444
-			if ( $notification->data->object->refunds->data[0]->id === $refund_id ) {
444
+			if ($notification->data->object->refunds->data[0]->id === $refund_id) {
445 445
 				return;
446 446
 			}
447 447
 
448 448
 			// Only refund captured charge.
449
-			if ( $charge ) {
450
-				$reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
449
+			if ($charge) {
450
+				$reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
451 451
 
452 452
 				// Create the refund.
453
-				$refund = wc_create_refund( array(
453
+				$refund = wc_create_refund(array(
454 454
 					'order_id' => $order_id,
455
-					'amount'   => $this->get_refund_amount( $notification ),
455
+					'amount'   => $this->get_refund_amount($notification),
456 456
 					'reason'   => $reason,
457
-				) );
457
+				));
458 458
 
459
-				if ( is_wp_error( $refund ) ) {
460
-					WC_Stripe_Logger::log( $refund->get_error_message() );
459
+				if (is_wp_error($refund)) {
460
+					WC_Stripe_Logger::log($refund->get_error_message());
461 461
 				}
462 462
 
463
-				WC_Stripe_Helper::is_pre_30() ? 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 );
463
+				WC_Stripe_Helper::is_pre_30() ? 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);
464 464
 
465
-				$amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 );
465
+				$amount = wc_price($notification->data->object->refunds->data[0]->amount / 100);
466 466
 
467
-				if ( in_array( strtolower( $order->get_currency() ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
468
-					$amount = wc_price( $notification->data->object->refunds->data[0]->amount );
467
+				if (in_array(strtolower($order->get_currency()), WC_Stripe_Helper::no_decimal_currencies())) {
468
+					$amount = wc_price($notification->data->object->refunds->data[0]->amount);
469 469
 				}
470 470
 
471
-				if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) {
472
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
471
+				if (isset($notification->data->object->refunds->data[0]->balance_transaction)) {
472
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
473 473
 				}
474 474
 
475 475
 				/* translators: 1) dollar amount 2) transaction id 3) refund message */
476
-				$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' );
476
+				$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');
477 477
 
478
-				$order->add_order_note( $refund_message );
478
+				$order->add_order_note($refund_message);
479 479
 			}
480 480
 		}
481 481
 	}
@@ -486,21 +486,21 @@  discard block
 block discarded – undo
486 486
 	 * @since 4.0.6
487 487
 	 * @param object $notification
488 488
 	 */
489
-	public function process_review_opened( $notification ) {
490
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
489
+	public function process_review_opened($notification) {
490
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
491 491
 
492
-		if ( ! $order ) {
493
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
492
+		if ( ! $order) {
493
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
494 494
 			return;
495 495
 		}
496 496
 
497 497
 		/* translators: 1) The URL to the order. 2) The reason type. */
498
-		$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 );
498
+		$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);
499 499
 
500
-		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
501
-			$order->update_status( 'on-hold', $message );
500
+		if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
501
+			$order->update_status('on-hold', $message);
502 502
 		} else {
503
-			$order->add_order_note( $message );
503
+			$order->add_order_note($message);
504 504
 		}
505 505
 	}
506 506
 
@@ -510,25 +510,25 @@  discard block
 block discarded – undo
510 510
 	 * @since 4.0.6
511 511
 	 * @param object $notification
512 512
 	 */
513
-	public function process_review_closed( $notification ) {
514
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
513
+	public function process_review_closed($notification) {
514
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
515 515
 
516
-		if ( ! $order ) {
517
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
516
+		if ( ! $order) {
517
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
518 518
 			return;
519 519
 		}
520 520
 
521 521
 		/* translators: 1) The reason type. */
522
-		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
522
+		$message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason);
523 523
 
524
-		if ( 'on-hold' === $order->get_status() ) {
525
-			if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
526
-				$order->update_status( 'processing', $message );
524
+		if ('on-hold' === $order->get_status()) {
525
+			if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
526
+				$order->update_status('processing', $message);
527 527
 			} else {
528
-				$order->add_order_note( $message );
528
+				$order->add_order_note($message);
529 529
 			}
530 530
 		} else {
531
-			$order->add_order_note( $message );
531
+			$order->add_order_note($message);
532 532
 		}
533 533
 	}
534 534
 
@@ -539,7 +539,7 @@  discard block
 block discarded – undo
539 539
 	 * @version 4.0.0
540 540
 	 * @param object $notification
541 541
 	 */
542
-	public function is_partial_capture( $notification ) {
542
+	public function is_partial_capture($notification) {
543 543
 		return 0 < $notification->data->object->amount_refunded;
544 544
 	}
545 545
 
@@ -550,11 +550,11 @@  discard block
 block discarded – undo
550 550
 	 * @version 4.0.0
551 551
 	 * @param object $notification
552 552
 	 */
553
-	public function get_refund_amount( $notification ) {
554
-		if ( $this->is_partial_capture( $notification ) ) {
553
+	public function get_refund_amount($notification) {
554
+		if ($this->is_partial_capture($notification)) {
555 555
 			$amount = $notification->data->object->refunds->data[0]->amount / 100;
556 556
 
557
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
557
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
558 558
 				$amount = $notification->data->object->refunds->data[0]->amount;
559 559
 			}
560 560
 
@@ -571,12 +571,12 @@  discard block
 block discarded – undo
571 571
 	 * @version 4.0.0
572 572
 	 * @param object $notification
573 573
 	 */
574
-	public function get_partial_amount_to_charge( $notification ) {
575
-		if ( $this->is_partial_capture( $notification ) ) {
576
-			$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100;
574
+	public function get_partial_amount_to_charge($notification) {
575
+		if ($this->is_partial_capture($notification)) {
576
+			$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100;
577 577
 
578
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
579
-				$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded );
578
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
579
+				$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded);
580 580
 			}
581 581
 
582 582
 			return $amount;
@@ -592,44 +592,44 @@  discard block
 block discarded – undo
592 592
 	 * @version 4.0.0
593 593
 	 * @param string $request_body
594 594
 	 */
595
-	public function process_webhook( $request_body ) {
596
-		$notification = json_decode( $request_body );
595
+	public function process_webhook($request_body) {
596
+		$notification = json_decode($request_body);
597 597
 
598
-		switch ( $notification->type ) {
598
+		switch ($notification->type) {
599 599
 			case 'source.chargeable':
600
-				$this->process_webhook_payment( $notification );
600
+				$this->process_webhook_payment($notification);
601 601
 				break;
602 602
 
603 603
 			case 'source.canceled':
604
-				$this->process_webhook_source_canceled( $notification );
604
+				$this->process_webhook_source_canceled($notification);
605 605
 				break;
606 606
 
607 607
 			case 'charge.succeeded':
608
-				$this->process_webhook_charge_succeeded( $notification );
608
+				$this->process_webhook_charge_succeeded($notification);
609 609
 				break;
610 610
 
611 611
 			case 'charge.failed':
612
-				$this->process_webhook_charge_failed( $notification );
612
+				$this->process_webhook_charge_failed($notification);
613 613
 				break;
614 614
 
615 615
 			case 'charge.captured':
616
-				$this->process_webhook_capture( $notification );
616
+				$this->process_webhook_capture($notification);
617 617
 				break;
618 618
 
619 619
 			case 'charge.dispute.created':
620
-				$this->process_webhook_dispute( $notification );
620
+				$this->process_webhook_dispute($notification);
621 621
 				break;
622 622
 
623 623
 			case 'charge.refunded':
624
-				$this->process_webhook_refund( $notification );
624
+				$this->process_webhook_refund($notification);
625 625
 				break;
626 626
 
627 627
 			case 'review.opened':
628
-				$this->process_review_opened( $notification );
628
+				$this->process_review_opened($notification);
629 629
 				break;
630 630
 
631 631
 			case 'review.closed':
632
-				$this->process_review_closed( $notification );
632
+				$this->process_review_closed($notification);
633 633
 				break;
634 634
 
635 635
 		}
Please login to merge, or discard this patch.