Completed
Pull Request — master (#673)
by Dwain
03:11
created
includes/class-wc-stripe-webhook-handler.php 1 patch
Spacing   +184 added lines, -184 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,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,23 +401,23 @@  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
-		if ( ! $order ) {
408
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
407
+		if ( ! $order) {
408
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
409 409
 			return;
410 410
 		}
411 411
 
412 412
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
413 413
 
414
-		if ( 'on-hold' !== $order->get_status() || 'cancelled' !== $order->get_status() ) {
414
+		if ('on-hold' !== $order->get_status() || 'cancelled' !== $order->get_status()) {
415 415
 			return;
416 416
 		}
417 417
 
418
-		$order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) );
418
+		$order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe'));
419 419
 
420
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
420
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
421 421
 	}
422 422
 
423 423
 	/**
@@ -427,57 +427,57 @@  discard block
 block discarded – undo
427 427
 	 * @version 4.0.0
428 428
 	 * @param object $notification
429 429
 	 */
430
-	public function process_webhook_refund( $notification ) {
431
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
430
+	public function process_webhook_refund($notification) {
431
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
432 432
 
433
-		if ( ! $order ) {
434
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
433
+		if ( ! $order) {
434
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
435 435
 			return;
436 436
 		}
437 437
 
438 438
 		$order_id = WC_Stripe_Helper::is_pre_30() ? $order->id : $order->get_id();
439 439
 
440
-		if ( 'stripe' === ( WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method() ) ) {
441
-			$charge    = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
442
-			$captured  = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
443
-			$refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta( $order_id, '_stripe_refund_id', true ) : $order->get_meta( '_stripe_refund_id', true );
440
+		if ('stripe' === (WC_Stripe_Helper::is_pre_30() ? $order->payment_method : $order->get_payment_method())) {
441
+			$charge    = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
442
+			$captured  = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
443
+			$refund_id = WC_Stripe_Helper::is_pre_30() ? get_post_meta($order_id, '_stripe_refund_id', true) : $order->get_meta('_stripe_refund_id', true);
444 444
 
445 445
 			// If the refund ID matches, don't continue to prevent double refunding.
446
-			if ( $notification->data->object->refunds->data[0]->id === $refund_id ) {
446
+			if ($notification->data->object->refunds->data[0]->id === $refund_id) {
447 447
 				return;
448 448
 			}
449 449
 
450 450
 			// Only refund captured charge.
451
-			if ( $charge ) {
452
-				$reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
451
+			if ($charge) {
452
+				$reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
453 453
 
454 454
 				// Create the refund.
455
-				$refund = wc_create_refund( array(
455
+				$refund = wc_create_refund(array(
456 456
 					'order_id' => $order_id,
457
-					'amount'   => $this->get_refund_amount( $notification ),
457
+					'amount'   => $this->get_refund_amount($notification),
458 458
 					'reason'   => $reason,
459
-				) );
459
+				));
460 460
 
461
-				if ( is_wp_error( $refund ) ) {
462
-					WC_Stripe_Logger::log( $refund->get_error_message() );
461
+				if (is_wp_error($refund)) {
462
+					WC_Stripe_Logger::log($refund->get_error_message());
463 463
 				}
464 464
 
465
-				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 );
465
+				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 466
 
467
-				$amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 );
467
+				$amount = wc_price($notification->data->object->refunds->data[0]->amount / 100);
468 468
 
469
-				if ( in_array( strtolower( WC_Stripe_Helper::is_pre_30() ? $order->get_order_currency() : $order->get_currency() ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
470
-					$amount = wc_price( $notification->data->object->refunds->data[0]->amount );
469
+				if (in_array(strtolower(WC_Stripe_Helper::is_pre_30() ? $order->get_order_currency() : $order->get_currency()), WC_Stripe_Helper::no_decimal_currencies())) {
470
+					$amount = wc_price($notification->data->object->refunds->data[0]->amount);
471 471
 				}
472 472
 
473
-				if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) {
474
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
473
+				if (isset($notification->data->object->refunds->data[0]->balance_transaction)) {
474
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
475 475
 				}
476 476
 
477 477
 				/* translators: 1) dollar amount 2) transaction id 3) refund message */
478
-				$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' );
478
+				$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 479
 
480
-				$order->add_order_note( $refund_message );
480
+				$order->add_order_note($refund_message);
481 481
 			}
482 482
 		}
483 483
 	}
@@ -488,21 +488,21 @@  discard block
 block discarded – undo
488 488
 	 * @since 4.0.6
489 489
 	 * @param object $notification
490 490
 	 */
491
-	public function process_review_opened( $notification ) {
492
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
491
+	public function process_review_opened($notification) {
492
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
493 493
 
494
-		if ( ! $order ) {
495
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
494
+		if ( ! $order) {
495
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
496 496
 			return;
497 497
 		}
498 498
 
499 499
 		/* translators: 1) The URL to the order. 2) The reason type. */
500
-		$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 );
500
+		$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 501
 
502
-		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
503
-			$order->update_status( 'on-hold', $message );
502
+		if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
503
+			$order->update_status('on-hold', $message);
504 504
 		} else {
505
-			$order->add_order_note( $message );
505
+			$order->add_order_note($message);
506 506
 		}
507 507
 	}
508 508
 
@@ -512,25 +512,25 @@  discard block
 block discarded – undo
512 512
 	 * @since 4.0.6
513 513
 	 * @param object $notification
514 514
 	 */
515
-	public function process_review_closed( $notification ) {
516
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
515
+	public function process_review_closed($notification) {
516
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
517 517
 
518
-		if ( ! $order ) {
519
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
518
+		if ( ! $order) {
519
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
520 520
 			return;
521 521
 		}
522 522
 
523 523
 		/* translators: 1) The reason type. */
524
-		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
524
+		$message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason);
525 525
 
526
-		if ( 'on-hold' === $order->get_status() ) {
527
-			if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
528
-				$order->update_status( 'processing', $message );
526
+		if ('on-hold' === $order->get_status()) {
527
+			if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
528
+				$order->update_status('processing', $message);
529 529
 			} else {
530
-				$order->add_order_note( $message );
530
+				$order->add_order_note($message);
531 531
 			}
532 532
 		} else {
533
-			$order->add_order_note( $message );
533
+			$order->add_order_note($message);
534 534
 		}
535 535
 	}
536 536
 
@@ -541,7 +541,7 @@  discard block
 block discarded – undo
541 541
 	 * @version 4.0.0
542 542
 	 * @param object $notification
543 543
 	 */
544
-	public function is_partial_capture( $notification ) {
544
+	public function is_partial_capture($notification) {
545 545
 		return 0 < $notification->data->object->amount_refunded;
546 546
 	}
547 547
 
@@ -552,11 +552,11 @@  discard block
 block discarded – undo
552 552
 	 * @version 4.0.0
553 553
 	 * @param object $notification
554 554
 	 */
555
-	public function get_refund_amount( $notification ) {
556
-		if ( $this->is_partial_capture( $notification ) ) {
555
+	public function get_refund_amount($notification) {
556
+		if ($this->is_partial_capture($notification)) {
557 557
 			$amount = $notification->data->object->refunds->data[0]->amount / 100;
558 558
 
559
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
559
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
560 560
 				$amount = $notification->data->object->refunds->data[0]->amount;
561 561
 			}
562 562
 
@@ -573,12 +573,12 @@  discard block
 block discarded – undo
573 573
 	 * @version 4.0.0
574 574
 	 * @param object $notification
575 575
 	 */
576
-	public function get_partial_amount_to_charge( $notification ) {
577
-		if ( $this->is_partial_capture( $notification ) ) {
578
-			$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100;
576
+	public function get_partial_amount_to_charge($notification) {
577
+		if ($this->is_partial_capture($notification)) {
578
+			$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100;
579 579
 
580
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
581
-				$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded );
580
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
581
+				$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded);
582 582
 			}
583 583
 
584 584
 			return $amount;
@@ -594,44 +594,44 @@  discard block
 block discarded – undo
594 594
 	 * @version 4.0.0
595 595
 	 * @param string $request_body
596 596
 	 */
597
-	public function process_webhook( $request_body ) {
598
-		$notification = json_decode( $request_body );
597
+	public function process_webhook($request_body) {
598
+		$notification = json_decode($request_body);
599 599
 
600
-		switch ( $notification->type ) {
600
+		switch ($notification->type) {
601 601
 			case 'source.chargeable':
602
-				$this->process_webhook_payment( $notification );
602
+				$this->process_webhook_payment($notification);
603 603
 				break;
604 604
 
605 605
 			case 'source.canceled':
606
-				$this->process_webhook_source_canceled( $notification );
606
+				$this->process_webhook_source_canceled($notification);
607 607
 				break;
608 608
 
609 609
 			case 'charge.succeeded':
610
-				$this->process_webhook_charge_succeeded( $notification );
610
+				$this->process_webhook_charge_succeeded($notification);
611 611
 				break;
612 612
 
613 613
 			case 'charge.failed':
614
-				$this->process_webhook_charge_failed( $notification );
614
+				$this->process_webhook_charge_failed($notification);
615 615
 				break;
616 616
 
617 617
 			case 'charge.captured':
618
-				$this->process_webhook_capture( $notification );
618
+				$this->process_webhook_capture($notification);
619 619
 				break;
620 620
 
621 621
 			case 'charge.dispute.created':
622
-				$this->process_webhook_dispute( $notification );
622
+				$this->process_webhook_dispute($notification);
623 623
 				break;
624 624
 
625 625
 			case 'charge.refunded':
626
-				$this->process_webhook_refund( $notification );
626
+				$this->process_webhook_refund($notification);
627 627
 				break;
628 628
 
629 629
 			case 'review.opened':
630
-				$this->process_review_opened( $notification );
630
+				$this->process_review_opened($notification);
631 631
 				break;
632 632
 
633 633
 			case 'review.closed':
634
-				$this->process_review_closed( $notification );
634
+				$this->process_review_closed($notification);
635 635
 				break;
636 636
 
637 637
 		}
Please login to merge, or discard this patch.
includes/class-wc-stripe-logger.php 1 patch
Spacing   +13 added lines, -13 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; // Exit if accessed directly
4 4
 }
5 5
 
@@ -20,28 +20,28 @@  discard block
 block discarded – undo
20 20
 	 * @since 4.0.0
21 21
 	 * @version 4.0.0
22 22
 	 */
23
-	public static function log( $message, $start_time = null, $end_time = null ) {
24
-		if ( ! class_exists( 'WC_Logger' ) ) {
23
+	public static function log($message, $start_time = null, $end_time = null) {
24
+		if ( ! class_exists('WC_Logger')) {
25 25
 			return;
26 26
 		}
27 27
 
28
-		if ( apply_filters( 'wc_stripe_logging', true, $message ) ) {
29
-			if ( empty( self::$logger ) ) {
28
+		if (apply_filters('wc_stripe_logging', true, $message)) {
29
+			if (empty(self::$logger)) {
30 30
 				self::$logger = wc_get_logger();
31 31
 			}
32 32
 
33
-			$settings = get_option( 'woocommerce_stripe_settings' );
33
+			$settings = get_option('woocommerce_stripe_settings');
34 34
 
35
-			if ( empty( $settings ) || isset( $settings['logging'] ) && 'yes' !== $settings['logging'] ) {
35
+			if (empty($settings) || isset($settings['logging']) && 'yes' !== $settings['logging']) {
36 36
 				return;
37 37
 			}
38 38
 
39
-			if ( ! is_null( $start_time ) ) {
39
+			if ( ! is_null($start_time)) {
40 40
 
41
-				$formatted_start_time = date_i18n( get_option( 'date_format' ) . ' g:ia', $start_time );
42
-				$end_time             = is_null( $end_time ) ? current_time( 'timestamp' ) : $end_time;
43
-				$formatted_end_time   = date_i18n( get_option( 'date_format' ) . ' g:ia', $end_time );
44
-				$elapsed_time         = round( abs( $end_time - $start_time ) / 60, 2 );
41
+				$formatted_start_time = date_i18n(get_option('date_format') . ' g:ia', $start_time);
42
+				$end_time             = is_null($end_time) ? current_time('timestamp') : $end_time;
43
+				$formatted_end_time   = date_i18n(get_option('date_format') . ' g:ia', $end_time);
44
+				$elapsed_time         = round(abs($end_time - $start_time) / 60, 2);
45 45
 
46 46
 				$log_entry = "\n" . '====Stripe Version: ' . WC_STRIPE_VERSION . '====' . "\n";
47 47
 				$log_entry .= '====Start Log ' . $formatted_start_time . '====' . "\n" . $message . "\n";
@@ -53,7 +53,7 @@  discard block
 block discarded – undo
53 53
 
54 54
 			}
55 55
 
56
-			self::$logger->add( self::WC_LOG_FILENAME, $log_entry );
56
+			self::$logger->add(self::WC_LOG_FILENAME, $log_entry);
57 57
 		}
58 58
 	}
59 59
 }
Please login to merge, or discard this patch.