Completed
Push — master ( fe3a8e...13fa33 )
by Roy
02:15 queued 10s
created
includes/class-wc-stripe-webhook-handler.php 1 patch
Spacing   +186 added lines, -186 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 3 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 || 'three_d_secure' === $notification->data->object->type ) {
126
+		if ('card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $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,44 +277,44 @@  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 );
305
+				if ($this->is_partial_capture($notification)) {
306
+					$partial_amount = $this->get_partial_amount_to_charge($notification);
307
+					$order->set_total($partial_amount);
308 308
 					/* translators: partial captured amount */
309
-					$order->add_order_note( sprintf( __( 'This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe' ), $partial_amount ) );
309
+					$order->add_order_note(sprintf(__('This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe'), $partial_amount));
310 310
 				} else {
311
-					$order->payment_complete( $notification->data->object->id );
311
+					$order->payment_complete($notification->data->object->id);
312 312
 
313 313
 					/* translators: transaction id */
314
-					$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
314
+					$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
315 315
 				}
316 316
 
317
-				if ( is_callable( array( $order, 'save' ) ) ) {
317
+				if (is_callable(array($order, 'save'))) {
318 318
 					$order->save();
319 319
 				}
320 320
 			}
@@ -329,39 +329,39 @@  discard block
 block discarded – undo
329 329
 	 * @version 4.0.0
330 330
 	 * @param object $notification
331 331
 	 */
332
-	public function process_webhook_charge_succeeded( $notification ) {
332
+	public function process_webhook_charge_succeeded($notification) {
333 333
 		// The following payment methods are synchronous so does not need to be handle via webhook.
334
-		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
+		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)) {
335 335
 			return;
336 336
 		}
337 337
 
338
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
338
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
339 339
 
340
-		if ( ! $order ) {
341
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
340
+		if ( ! $order) {
341
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
342 342
 			return;
343 343
 		}
344 344
 
345 345
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
346 346
 
347
-		if ( 'on-hold' !== $order->get_status() ) {
347
+		if ('on-hold' !== $order->get_status()) {
348 348
 			return;
349 349
 		}
350 350
 
351 351
 		// Store other data such as fees
352
-		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
+		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);
353 353
 
354
-		if ( isset( $notification->data->object->balance_transaction ) ) {
355
-			$this->update_fees( $order, $notification->data->object->balance_transaction );
356
-			$this->update_currency( $order, $notification->data->object->balance_transaction );
354
+		if (isset($notification->data->object->balance_transaction)) {
355
+			$this->update_fees($order, $notification->data->object->balance_transaction);
356
+			$this->update_currency($order, $notification->data->object->balance_transaction);
357 357
 		}
358 358
 
359
-		$order->payment_complete( $notification->data->object->id );
359
+		$order->payment_complete($notification->data->object->id);
360 360
 
361 361
 		/* translators: transaction id */
362
-		$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
362
+		$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
363 363
 
364
-		if ( is_callable( array( $order, 'save' ) ) ) {
364
+		if (is_callable(array($order, 'save'))) {
365 365
 			$order->save();
366 366
 		}
367 367
 	}
@@ -373,24 +373,24 @@  discard block
 block discarded – undo
373 373
 	 * @since 4.1.5 Can handle any fail payments from any methods.
374 374
 	 * @param object $notification
375 375
 	 */
376
-	public function process_webhook_charge_failed( $notification ) {
377
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
376
+	public function process_webhook_charge_failed($notification) {
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 384
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
385 385
 
386 386
 		// If order status is already in failed status don't continue.
387
-		if ( 'failed' === $order->get_status() ) {
387
+		if ('failed' === $order->get_status()) {
388 388
 			return;
389 389
 		}
390 390
 
391
-		$order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) );
391
+		$order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe'));
392 392
 
393
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
393
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
394 394
 	}
395 395
 
396 396
 	/**
@@ -401,24 +401,24 @@  discard block
 block discarded – undo
401 401
 	 * @version 4.0.0
402 402
 	 * @param object $notification
403 403
 	 */
404
-	public function process_webhook_source_canceled( $notification ) {
405
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
404
+	public function process_webhook_source_canceled($notification) {
405
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
406 406
 
407 407
 		// If can't find order by charge ID, try source ID.
408
-		if ( ! $order ) {
409
-			$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
408
+		if ( ! $order) {
409
+			$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
410 410
 
411
-			if ( ! $order ) {
412
-				WC_Stripe_Logger::log( 'Could not find order via charge/source ID: ' . $notification->data->object->id );
411
+			if ( ! $order) {
412
+				WC_Stripe_Logger::log('Could not find order via charge/source ID: ' . $notification->data->object->id);
413 413
 				return;
414 414
 			}
415 415
 		}
416 416
 
417
-		if ( 'cancelled' !== $order->get_status() ) {
418
-			$order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) );
417
+		if ('cancelled' !== $order->get_status()) {
418
+			$order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe'));
419 419
 		}
420 420
 
421
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
421
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
422 422
 	}
423 423
 
424 424
 	/**
@@ -428,57 +428,57 @@  discard block
 block discarded – undo
428 428
 	 * @version 4.0.0
429 429
 	 * @param object $notification
430 430
 	 */
431
-	public function process_webhook_refund( $notification ) {
432
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
431
+	public function process_webhook_refund($notification) {
432
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
433 433
 
434
-		if ( ! $order ) {
435
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
434
+		if ( ! $order) {
435
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
436 436
 			return;
437 437
 		}
438 438
 
439 439
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
440 440
 
441
-		if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) {
442
-			$charge    = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
443
-			$captured  = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
444
-			$refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_refund_id', true ) : $order->get_meta( '_stripe_refund_id', true );
441
+		if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) {
442
+			$charge    = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
443
+			$captured  = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
444
+			$refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_refund_id', true) : $order->get_meta('_stripe_refund_id', true);
445 445
 
446 446
 			// If the refund ID matches, don't continue to prevent double refunding.
447
-			if ( $notification->data->object->refunds->data[0]->id === $refund_id ) {
447
+			if ($notification->data->object->refunds->data[0]->id === $refund_id) {
448 448
 				return;
449 449
 			}
450 450
 
451 451
 			// Only refund captured charge.
452
-			if ( $charge ) {
453
-				$reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
452
+			if ($charge) {
453
+				$reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
454 454
 
455 455
 				// Create the refund.
456
-				$refund = wc_create_refund( array(
456
+				$refund = wc_create_refund(array(
457 457
 					'order_id' => $order_id,
458
-					'amount'   => $this->get_refund_amount( $notification ),
458
+					'amount'   => $this->get_refund_amount($notification),
459 459
 					'reason'   => $reason,
460
-				) );
460
+				));
461 461
 
462
-				if ( is_wp_error( $refund ) ) {
463
-					WC_Stripe_Logger::log( $refund->get_error_message() );
462
+				if (is_wp_error($refund)) {
463
+					WC_Stripe_Logger::log($refund->get_error_message());
464 464
 				}
465 465
 
466
-				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 );
466
+				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);
467 467
 
468
-				$amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 );
468
+				$amount = wc_price($notification->data->object->refunds->data[0]->amount / 100);
469 469
 
470
-				if ( in_array( strtolower( WC_Stripe_Helper::is_pre_30() ? $order->get_order_currency() : $order->get_currency() ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
471
-					$amount = wc_price( $notification->data->object->refunds->data[0]->amount );
470
+				if (in_array(strtolower(WC_Stripe_Helper::is_pre_30() ? $order->get_order_currency() : $order->get_currency()), WC_Stripe_Helper::no_decimal_currencies())) {
471
+					$amount = wc_price($notification->data->object->refunds->data[0]->amount);
472 472
 				}
473 473
 
474
-				if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) {
475
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
474
+				if (isset($notification->data->object->refunds->data[0]->balance_transaction)) {
475
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
476 476
 				}
477 477
 
478 478
 				/* translators: 1) dollar amount 2) transaction id 3) refund message */
479
-				$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' );
479
+				$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');
480 480
 
481
-				$order->add_order_note( $refund_message );
481
+				$order->add_order_note($refund_message);
482 482
 			}
483 483
 		}
484 484
 	}
@@ -489,21 +489,21 @@  discard block
 block discarded – undo
489 489
 	 * @since 4.0.6
490 490
 	 * @param object $notification
491 491
 	 */
492
-	public function process_review_opened( $notification ) {
493
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
492
+	public function process_review_opened($notification) {
493
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
494 494
 
495
-		if ( ! $order ) {
496
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
495
+		if ( ! $order) {
496
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
497 497
 			return;
498 498
 		}
499 499
 
500 500
 		/* translators: 1) The URL to the order. 2) The reason type. */
501
-		$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 );
501
+		$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);
502 502
 
503
-		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
504
-			$order->update_status( 'on-hold', $message );
503
+		if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
504
+			$order->update_status('on-hold', $message);
505 505
 		} else {
506
-			$order->add_order_note( $message );
506
+			$order->add_order_note($message);
507 507
 		}
508 508
 	}
509 509
 
@@ -513,25 +513,25 @@  discard block
 block discarded – undo
513 513
 	 * @since 4.0.6
514 514
 	 * @param object $notification
515 515
 	 */
516
-	public function process_review_closed( $notification ) {
517
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
516
+	public function process_review_closed($notification) {
517
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
518 518
 
519
-		if ( ! $order ) {
520
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
519
+		if ( ! $order) {
520
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
521 521
 			return;
522 522
 		}
523 523
 
524 524
 		/* translators: 1) The reason type. */
525
-		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
525
+		$message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason);
526 526
 
527
-		if ( 'on-hold' === $order->get_status() ) {
528
-			if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
529
-				$order->update_status( 'processing', $message );
527
+		if ('on-hold' === $order->get_status()) {
528
+			if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
529
+				$order->update_status('processing', $message);
530 530
 			} else {
531
-				$order->add_order_note( $message );
531
+				$order->add_order_note($message);
532 532
 			}
533 533
 		} else {
534
-			$order->add_order_note( $message );
534
+			$order->add_order_note($message);
535 535
 		}
536 536
 	}
537 537
 
@@ -542,7 +542,7 @@  discard block
 block discarded – undo
542 542
 	 * @version 4.0.0
543 543
 	 * @param object $notification
544 544
 	 */
545
-	public function is_partial_capture( $notification ) {
545
+	public function is_partial_capture($notification) {
546 546
 		return 0 < $notification->data->object->amount_refunded;
547 547
 	}
548 548
 
@@ -553,11 +553,11 @@  discard block
 block discarded – undo
553 553
 	 * @version 4.0.0
554 554
 	 * @param object $notification
555 555
 	 */
556
-	public function get_refund_amount( $notification ) {
557
-		if ( $this->is_partial_capture( $notification ) ) {
556
+	public function get_refund_amount($notification) {
557
+		if ($this->is_partial_capture($notification)) {
558 558
 			$amount = $notification->data->object->refunds->data[0]->amount / 100;
559 559
 
560
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
560
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
561 561
 				$amount = $notification->data->object->refunds->data[0]->amount;
562 562
 			}
563 563
 
@@ -574,12 +574,12 @@  discard block
 block discarded – undo
574 574
 	 * @version 4.0.0
575 575
 	 * @param object $notification
576 576
 	 */
577
-	public function get_partial_amount_to_charge( $notification ) {
578
-		if ( $this->is_partial_capture( $notification ) ) {
579
-			$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100;
577
+	public function get_partial_amount_to_charge($notification) {
578
+		if ($this->is_partial_capture($notification)) {
579
+			$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100;
580 580
 
581
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
582
-				$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded );
581
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
582
+				$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded);
583 583
 			}
584 584
 
585 585
 			return $amount;
@@ -595,44 +595,44 @@  discard block
 block discarded – undo
595 595
 	 * @version 4.0.0
596 596
 	 * @param string $request_body
597 597
 	 */
598
-	public function process_webhook( $request_body ) {
599
-		$notification = json_decode( $request_body );
598
+	public function process_webhook($request_body) {
599
+		$notification = json_decode($request_body);
600 600
 
601
-		switch ( $notification->type ) {
601
+		switch ($notification->type) {
602 602
 			case 'source.chargeable':
603
-				$this->process_webhook_payment( $notification );
603
+				$this->process_webhook_payment($notification);
604 604
 				break;
605 605
 
606 606
 			case 'source.canceled':
607
-				$this->process_webhook_source_canceled( $notification );
607
+				$this->process_webhook_source_canceled($notification);
608 608
 				break;
609 609
 
610 610
 			case 'charge.succeeded':
611
-				$this->process_webhook_charge_succeeded( $notification );
611
+				$this->process_webhook_charge_succeeded($notification);
612 612
 				break;
613 613
 
614 614
 			case 'charge.failed':
615
-				$this->process_webhook_charge_failed( $notification );
615
+				$this->process_webhook_charge_failed($notification);
616 616
 				break;
617 617
 
618 618
 			case 'charge.captured':
619
-				$this->process_webhook_capture( $notification );
619
+				$this->process_webhook_capture($notification);
620 620
 				break;
621 621
 
622 622
 			case 'charge.dispute.created':
623
-				$this->process_webhook_dispute( $notification );
623
+				$this->process_webhook_dispute($notification);
624 624
 				break;
625 625
 
626 626
 			case 'charge.refunded':
627
-				$this->process_webhook_refund( $notification );
627
+				$this->process_webhook_refund($notification);
628 628
 				break;
629 629
 
630 630
 			case 'review.opened':
631
-				$this->process_review_opened( $notification );
631
+				$this->process_review_opened($notification);
632 632
 				break;
633 633
 
634 634
 			case 'review.closed':
635
-				$this->process_review_closed( $notification );
635
+				$this->process_review_closed($notification);
636 636
 				break;
637 637
 
638 638
 		}
Please login to merge, or discard this patch.