Completed
Push — master ( 0413d3...dee1c0 )
by Roy
13s
created
includes/class-wc-stripe-webhook-handler.php 1 patch
Spacing   +191 added lines, -191 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
-		$order_id  = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
137
+		$order_id  = WC_Stripe_Helper::is_wc_lt('3.0') ? $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_wc_lt( '3.0' ) ) {
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_wc_lt('3.0')) {
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
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
269
-		$this->send_failed_order_email( $order_id );
268
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_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
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
288
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
289 289
 
290
-		if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) {
291
-			$charge   = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
292
-			$captured = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
290
+		if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) {
291
+			$charge   = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
292
+			$captured = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
293 293
 
294
-			if ( $charge && 'no' === $captured ) {
295
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_stripe_charge_captured', 'yes' ) : $order->update_meta_data( '_stripe_charge_captured', 'yes' );
294
+			if ($charge && 'no' === $captured) {
295
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_stripe_charge_captured', 'yes') : $order->update_meta_data('_stripe_charge_captured', 'yes');
296 296
 
297 297
 				// Store other data such as fees
298
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id );
298
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id);
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,38 +329,38 @@  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
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
345
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $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_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_transaction_id', $notification->data->object->id ) : $order->set_transaction_id( $notification->data->object->id );
352
+		WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id);
353 353
 
354
-		if ( isset( $notification->data->object->balance_transaction ) ) {
355
-			$this->update_fees( $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 356
 		}
357 357
 
358
-		$order->payment_complete( $notification->data->object->id );
358
+		$order->payment_complete($notification->data->object->id);
359 359
 
360 360
 		/* translators: transaction id */
361
-		$order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) );
361
+		$order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id));
362 362
 
363
-		if ( is_callable( array( $order, 'save' ) ) ) {
363
+		if (is_callable(array($order, 'save'))) {
364 364
 			$order->save();
365 365
 		}
366 366
 	}
@@ -372,24 +372,24 @@  discard block
 block discarded – undo
372 372
 	 * @since 4.1.5 Can handle any fail payments from any methods.
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
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
383
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
384 384
 
385 385
 		// If order status is already in failed status don't continue.
386
-		if ( 'failed' === $order->get_status() ) {
386
+		if ('failed' === $order->get_status()) {
387 387
 			return;
388 388
 		}
389 389
 
390
-		$order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) );
390
+		$order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe'));
391 391
 
392
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
392
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
393 393
 	}
394 394
 
395 395
 	/**
@@ -400,30 +400,30 @@  discard block
 block discarded – undo
400 400
 	 * @since 4.1.15 Add check to make sure order is processed by Stripe.
401 401
 	 * @param object $notification
402 402
 	 */
403
-	public function process_webhook_source_canceled( $notification ) {
404
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
403
+	public function process_webhook_source_canceled($notification) {
404
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
405 405
 
406 406
 		// If can't find order by charge ID, try source ID.
407
-		if ( ! $order ) {
408
-			$order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id );
407
+		if ( ! $order) {
408
+			$order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id);
409 409
 
410
-			if ( ! $order ) {
411
-				WC_Stripe_Logger::log( 'Could not find order via charge/source ID: ' . $notification->data->object->id );
410
+			if ( ! $order) {
411
+				WC_Stripe_Logger::log('Could not find order via charge/source ID: ' . $notification->data->object->id);
412 412
 				return;
413 413
 			}
414 414
 		}
415 415
 
416 416
 		// Don't proceed if payment method isn't Stripe.
417
-		if ( 'stripe' !== $order->get_payment_method() ) {
418
-			WC_Stripe_Logger::log( 'Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id() );
417
+		if ('stripe' !== $order->get_payment_method()) {
418
+			WC_Stripe_Logger::log('Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id());
419 419
 			return;
420 420
 		}
421 421
 
422
-		if ( 'cancelled' !== $order->get_status() ) {
423
-			$order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) );
422
+		if ('cancelled' !== $order->get_status()) {
423
+			$order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe'));
424 424
 		}
425 425
 
426
-		do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification );
426
+		do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification);
427 427
 	}
428 428
 
429 429
 	/**
@@ -433,59 +433,59 @@  discard block
 block discarded – undo
433 433
 	 * @version 4.0.0
434 434
 	 * @param object $notification
435 435
 	 */
436
-	public function process_webhook_refund( $notification ) {
437
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id );
436
+	public function process_webhook_refund($notification) {
437
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id);
438 438
 
439
-		if ( ! $order ) {
440
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id );
439
+		if ( ! $order) {
440
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id);
441 441
 			return;
442 442
 		}
443 443
 
444
-		$order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id();
444
+		$order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id();
445 445
 
446
-		if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) {
447
-			$charge    = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id();
448
-			$captured  = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_stripe_charge_captured', true ) : $order->get_meta( '_stripe_charge_captured', true );
449
-			$refund_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_stripe_refund_id', true ) : $order->get_meta( '_stripe_refund_id', true );
446
+		if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) {
447
+			$charge    = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id();
448
+			$captured  = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_stripe_charge_captured', true) : $order->get_meta('_stripe_charge_captured', true);
449
+			$refund_id = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_stripe_refund_id', true) : $order->get_meta('_stripe_refund_id', true);
450 450
 
451 451
 			// If the refund ID matches, don't continue to prevent double refunding.
452
-			if ( $notification->data->object->refunds->data[0]->id === $refund_id ) {
452
+			if ($notification->data->object->refunds->data[0]->id === $refund_id) {
453 453
 				return;
454 454
 			}
455 455
 
456 456
 			// Only refund captured charge.
457
-			if ( $charge ) {
458
-				$reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' );
457
+			if ($charge) {
458
+				$reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe');
459 459
 
460 460
 				// Create the refund.
461 461
 				$refund = wc_create_refund(
462 462
 					array(
463 463
 						'order_id' => $order_id,
464
-						'amount'   => $this->get_refund_amount( $notification ),
464
+						'amount'   => $this->get_refund_amount($notification),
465 465
 						'reason'   => $reason,
466 466
 					)
467 467
 				);
468 468
 
469
-				if ( is_wp_error( $refund ) ) {
470
-					WC_Stripe_Logger::log( $refund->get_error_message() );
469
+				if (is_wp_error($refund)) {
470
+					WC_Stripe_Logger::log($refund->get_error_message());
471 471
 				}
472 472
 
473
-				WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_stripe_refund_id', $notification->data->object->refunds->data[0]->id ) : $order->update_meta_data( '_stripe_refund_id', $notification->data->object->refunds->data[0]->id );
473
+				WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_stripe_refund_id', $notification->data->object->refunds->data[0]->id) : $order->update_meta_data('_stripe_refund_id', $notification->data->object->refunds->data[0]->id);
474 474
 
475
-				$amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 );
475
+				$amount = wc_price($notification->data->object->refunds->data[0]->amount / 100);
476 476
 
477
-				if ( in_array( strtolower( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->get_order_currency() : $order->get_currency() ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
478
-					$amount = wc_price( $notification->data->object->refunds->data[0]->amount );
477
+				if (in_array(strtolower(WC_Stripe_Helper::is_wc_lt('3.0') ? $order->get_order_currency() : $order->get_currency()), WC_Stripe_Helper::no_decimal_currencies())) {
478
+					$amount = wc_price($notification->data->object->refunds->data[0]->amount);
479 479
 				}
480 480
 
481
-				if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) {
482
-					$this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction );
481
+				if (isset($notification->data->object->refunds->data[0]->balance_transaction)) {
482
+					$this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction);
483 483
 				}
484 484
 
485 485
 				/* translators: 1) dollar amount 2) transaction id 3) refund message */
486
-				$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' );
486
+				$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');
487 487
 
488
-				$order->add_order_note( $refund_message );
488
+				$order->add_order_note($refund_message);
489 489
 			}
490 490
 		}
491 491
 	}
@@ -496,21 +496,21 @@  discard block
 block discarded – undo
496 496
 	 * @since 4.0.6
497 497
 	 * @param object $notification
498 498
 	 */
499
-	public function process_review_opened( $notification ) {
500
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
499
+	public function process_review_opened($notification) {
500
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
501 501
 
502
-		if ( ! $order ) {
503
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
502
+		if ( ! $order) {
503
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
504 504
 			return;
505 505
 		}
506 506
 
507 507
 		/* translators: 1) The URL to the order. 2) The reason type. */
508
-		$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 );
508
+		$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);
509 509
 
510
-		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
511
-			$order->update_status( 'on-hold', $message );
510
+		if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
511
+			$order->update_status('on-hold', $message);
512 512
 		} else {
513
-			$order->add_order_note( $message );
513
+			$order->add_order_note($message);
514 514
 		}
515 515
 	}
516 516
 
@@ -520,25 +520,25 @@  discard block
 block discarded – undo
520 520
 	 * @since 4.0.6
521 521
 	 * @param object $notification
522 522
 	 */
523
-	public function process_review_closed( $notification ) {
524
-		$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
523
+	public function process_review_closed($notification) {
524
+		$order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge);
525 525
 
526
-		if ( ! $order ) {
527
-			WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge );
526
+		if ( ! $order) {
527
+			WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge);
528 528
 			return;
529 529
 		}
530 530
 
531 531
 		/* translators: 1) The reason type. */
532
-		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
532
+		$message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason);
533 533
 
534
-		if ( 'on-hold' === $order->get_status() ) {
535
-			if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) {
536
-				$order->update_status( 'processing', $message );
534
+		if ('on-hold' === $order->get_status()) {
535
+			if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) {
536
+				$order->update_status('processing', $message);
537 537
 			} else {
538
-				$order->add_order_note( $message );
538
+				$order->add_order_note($message);
539 539
 			}
540 540
 		} else {
541
-			$order->add_order_note( $message );
541
+			$order->add_order_note($message);
542 542
 		}
543 543
 	}
544 544
 
@@ -549,7 +549,7 @@  discard block
 block discarded – undo
549 549
 	 * @version 4.0.0
550 550
 	 * @param object $notification
551 551
 	 */
552
-	public function is_partial_capture( $notification ) {
552
+	public function is_partial_capture($notification) {
553 553
 		return 0 < $notification->data->object->amount_refunded;
554 554
 	}
555 555
 
@@ -560,11 +560,11 @@  discard block
 block discarded – undo
560 560
 	 * @version 4.0.0
561 561
 	 * @param object $notification
562 562
 	 */
563
-	public function get_refund_amount( $notification ) {
564
-		if ( $this->is_partial_capture( $notification ) ) {
563
+	public function get_refund_amount($notification) {
564
+		if ($this->is_partial_capture($notification)) {
565 565
 			$amount = $notification->data->object->refunds->data[0]->amount / 100;
566 566
 
567
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
567
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
568 568
 				$amount = $notification->data->object->refunds->data[0]->amount;
569 569
 			}
570 570
 
@@ -581,12 +581,12 @@  discard block
 block discarded – undo
581 581
 	 * @version 4.0.0
582 582
 	 * @param object $notification
583 583
 	 */
584
-	public function get_partial_amount_to_charge( $notification ) {
585
-		if ( $this->is_partial_capture( $notification ) ) {
586
-			$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100;
584
+	public function get_partial_amount_to_charge($notification) {
585
+		if ($this->is_partial_capture($notification)) {
586
+			$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100;
587 587
 
588
-			if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) {
589
-				$amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded );
588
+			if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) {
589
+				$amount = ($notification->data->object->amount - $notification->data->object->amount_refunded);
590 590
 			}
591 591
 
592 592
 			return $amount;
@@ -602,44 +602,44 @@  discard block
 block discarded – undo
602 602
 	 * @version 4.0.0
603 603
 	 * @param string $request_body
604 604
 	 */
605
-	public function process_webhook( $request_body ) {
606
-		$notification = json_decode( $request_body );
605
+	public function process_webhook($request_body) {
606
+		$notification = json_decode($request_body);
607 607
 
608
-		switch ( $notification->type ) {
608
+		switch ($notification->type) {
609 609
 			case 'source.chargeable':
610
-				$this->process_webhook_payment( $notification );
610
+				$this->process_webhook_payment($notification);
611 611
 				break;
612 612
 
613 613
 			case 'source.canceled':
614
-				$this->process_webhook_source_canceled( $notification );
614
+				$this->process_webhook_source_canceled($notification);
615 615
 				break;
616 616
 
617 617
 			case 'charge.succeeded':
618
-				$this->process_webhook_charge_succeeded( $notification );
618
+				$this->process_webhook_charge_succeeded($notification);
619 619
 				break;
620 620
 
621 621
 			case 'charge.failed':
622
-				$this->process_webhook_charge_failed( $notification );
622
+				$this->process_webhook_charge_failed($notification);
623 623
 				break;
624 624
 
625 625
 			case 'charge.captured':
626
-				$this->process_webhook_capture( $notification );
626
+				$this->process_webhook_capture($notification);
627 627
 				break;
628 628
 
629 629
 			case 'charge.dispute.created':
630
-				$this->process_webhook_dispute( $notification );
630
+				$this->process_webhook_dispute($notification);
631 631
 				break;
632 632
 
633 633
 			case 'charge.refunded':
634
-				$this->process_webhook_refund( $notification );
634
+				$this->process_webhook_refund($notification);
635 635
 				break;
636 636
 
637 637
 			case 'review.opened':
638
-				$this->process_review_opened( $notification );
638
+				$this->process_review_opened($notification);
639 639
 				break;
640 640
 
641 641
 			case 'review.closed':
642
-				$this->process_review_closed( $notification );
642
+				$this->process_review_closed($notification);
643 643
 				break;
644 644
 
645 645
 		}
Please login to merge, or discard this patch.
includes/admin/stripe-settings.php 1 patch
Spacing   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if ( ! defined('ABSPATH')) {
3 3
 	exit;
4 4
 }
5 5
 
@@ -7,176 +7,176 @@  discard block
 block discarded – undo
7 7
 	'wc_stripe_settings',
8 8
 	array(
9 9
 		'enabled'                       => array(
10
-			'title'       => __( 'Enable/Disable', 'woocommerce-gateway-stripe' ),
11
-			'label'       => __( 'Enable Stripe', 'woocommerce-gateway-stripe' ),
10
+			'title'       => __('Enable/Disable', 'woocommerce-gateway-stripe'),
11
+			'label'       => __('Enable Stripe', 'woocommerce-gateway-stripe'),
12 12
 			'type'        => 'checkbox',
13 13
 			'description' => '',
14 14
 			'default'     => 'no',
15 15
 		),
16 16
 		'title'                         => array(
17
-			'title'       => __( 'Title', 'woocommerce-gateway-stripe' ),
17
+			'title'       => __('Title', 'woocommerce-gateway-stripe'),
18 18
 			'type'        => 'text',
19
-			'description' => __( 'This controls the title which the user sees during checkout.', 'woocommerce-gateway-stripe' ),
20
-			'default'     => __( 'Credit Card (Stripe)', 'woocommerce-gateway-stripe' ),
19
+			'description' => __('This controls the title which the user sees during checkout.', 'woocommerce-gateway-stripe'),
20
+			'default'     => __('Credit Card (Stripe)', 'woocommerce-gateway-stripe'),
21 21
 			'desc_tip'    => true,
22 22
 		),
23 23
 		'description'                   => array(
24
-			'title'       => __( 'Description', 'woocommerce-gateway-stripe' ),
24
+			'title'       => __('Description', 'woocommerce-gateway-stripe'),
25 25
 			'type'        => 'text',
26
-			'description' => __( 'This controls the description which the user sees during checkout.', 'woocommerce-gateway-stripe' ),
27
-			'default'     => __( 'Pay with your credit card via Stripe.', 'woocommerce-gateway-stripe' ),
26
+			'description' => __('This controls the description which the user sees during checkout.', 'woocommerce-gateway-stripe'),
27
+			'default'     => __('Pay with your credit card via Stripe.', 'woocommerce-gateway-stripe'),
28 28
 			'desc_tip'    => true,
29 29
 		),
30 30
 		'webhook'                       => array(
31
-			'title'       => __( 'Webhook Endpoints', 'woocommerce-gateway-stripe' ),
31
+			'title'       => __('Webhook Endpoints', 'woocommerce-gateway-stripe'),
32 32
 			'type'        => 'title',
33 33
 			/* translators: webhook URL */
34 34
 			'description' => $this->display_admin_settings_webhook_description(),
35 35
 		),
36 36
 		'testmode'                      => array(
37
-			'title'       => __( 'Test mode', 'woocommerce-gateway-stripe' ),
38
-			'label'       => __( 'Enable Test Mode', 'woocommerce-gateway-stripe' ),
37
+			'title'       => __('Test mode', 'woocommerce-gateway-stripe'),
38
+			'label'       => __('Enable Test Mode', 'woocommerce-gateway-stripe'),
39 39
 			'type'        => 'checkbox',
40
-			'description' => __( 'Place the payment gateway in test mode using test API keys.', 'woocommerce-gateway-stripe' ),
40
+			'description' => __('Place the payment gateway in test mode using test API keys.', 'woocommerce-gateway-stripe'),
41 41
 			'default'     => 'yes',
42 42
 			'desc_tip'    => true,
43 43
 		),
44 44
 		'test_publishable_key'          => array(
45
-			'title'       => __( 'Test Publishable Key', 'woocommerce-gateway-stripe' ),
45
+			'title'       => __('Test Publishable Key', 'woocommerce-gateway-stripe'),
46 46
 			'type'        => 'password',
47
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
47
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
48 48
 			'default'     => '',
49 49
 			'desc_tip'    => true,
50 50
 		),
51 51
 		'test_secret_key'               => array(
52
-			'title'       => __( 'Test Secret Key', 'woocommerce-gateway-stripe' ),
52
+			'title'       => __('Test Secret Key', 'woocommerce-gateway-stripe'),
53 53
 			'type'        => 'password',
54
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
54
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
55 55
 			'default'     => '',
56 56
 			'desc_tip'    => true,
57 57
 		),
58 58
 		'publishable_key'               => array(
59
-			'title'       => __( 'Live Publishable Key', 'woocommerce-gateway-stripe' ),
59
+			'title'       => __('Live Publishable Key', 'woocommerce-gateway-stripe'),
60 60
 			'type'        => 'password',
61
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
61
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
62 62
 			'default'     => '',
63 63
 			'desc_tip'    => true,
64 64
 		),
65 65
 		'secret_key'                    => array(
66
-			'title'       => __( 'Live Secret Key', 'woocommerce-gateway-stripe' ),
66
+			'title'       => __('Live Secret Key', 'woocommerce-gateway-stripe'),
67 67
 			'type'        => 'password',
68
-			'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ),
68
+			'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'),
69 69
 			'default'     => '',
70 70
 			'desc_tip'    => true,
71 71
 		),
72 72
 		'inline_cc_form'                => array(
73
-			'title'       => __( 'Inline Credit Card Form', 'woocommerce-gateway-stripe' ),
73
+			'title'       => __('Inline Credit Card Form', 'woocommerce-gateway-stripe'),
74 74
 			'type'        => 'checkbox',
75
-			'description' => __( 'Choose the style you want to show for your credit card form. When unchecked, the credit card form will display separate credit card number field, expiry date field and cvc field.', 'woocommerce-gateway-stripe' ),
75
+			'description' => __('Choose the style you want to show for your credit card form. When unchecked, the credit card form will display separate credit card number field, expiry date field and cvc field.', 'woocommerce-gateway-stripe'),
76 76
 			'default'     => 'no',
77 77
 			'desc_tip'    => true,
78 78
 		),
79 79
 		'statement_descriptor'          => array(
80
-			'title'       => __( 'Statement Descriptor', 'woocommerce-gateway-stripe' ),
80
+			'title'       => __('Statement Descriptor', 'woocommerce-gateway-stripe'),
81 81
 			'type'        => 'text',
82
-			'description' => __( 'Statement descriptors are limited to 22 characters, cannot use the special characters >, <, ", \, \', *, and must not consist solely of numbers. This will appear on your customer\'s statement in capital letters.', 'woocommerce-gateway-stripe' ),
82
+			'description' => __('Statement descriptors are limited to 22 characters, cannot use the special characters >, <, ", \, \', *, and must not consist solely of numbers. This will appear on your customer\'s statement in capital letters.', 'woocommerce-gateway-stripe'),
83 83
 			'default'     => '',
84 84
 			'desc_tip'    => true,
85 85
 		),
86 86
 		'capture'                       => array(
87
-			'title'       => __( 'Capture', 'woocommerce-gateway-stripe' ),
88
-			'label'       => __( 'Capture charge immediately', 'woocommerce-gateway-stripe' ),
87
+			'title'       => __('Capture', 'woocommerce-gateway-stripe'),
88
+			'label'       => __('Capture charge immediately', 'woocommerce-gateway-stripe'),
89 89
 			'type'        => 'checkbox',
90
-			'description' => __( 'Whether or not to immediately capture the charge. When unchecked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days.', 'woocommerce-gateway-stripe' ),
90
+			'description' => __('Whether or not to immediately capture the charge. When unchecked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days.', 'woocommerce-gateway-stripe'),
91 91
 			'default'     => 'yes',
92 92
 			'desc_tip'    => true,
93 93
 		),
94 94
 		'three_d_secure'                => array(
95
-			'title'       => __( '3D Secure', 'woocommerce-gateway-stripe' ),
96
-			'label'       => __( 'Require 3D Secure when applicable', 'woocommerce-gateway-stripe' ),
95
+			'title'       => __('3D Secure', 'woocommerce-gateway-stripe'),
96
+			'label'       => __('Require 3D Secure when applicable', 'woocommerce-gateway-stripe'),
97 97
 			'type'        => 'checkbox',
98
-			'description' => __( 'Some payment methods have 3D Secure feature. This is an extra security layer for your store. Choose how to handle payments when 3D Secure is recommended. Enabling would require customers to use 3D Secure when recommended.', 'woocommerce-gateway-stripe' ),
98
+			'description' => __('Some payment methods have 3D Secure feature. This is an extra security layer for your store. Choose how to handle payments when 3D Secure is recommended. Enabling would require customers to use 3D Secure when recommended.', 'woocommerce-gateway-stripe'),
99 99
 			'default'     => 'yes',
100 100
 			'desc_tip'    => true,
101 101
 		),
102 102
 		'stripe_checkout'               => array(
103
-			'title'       => __( 'Stripe Modal Checkout', 'woocommerce-gateway-stripe' ),
104
-			'label'       => __( 'Enable Stripe Checkout', 'woocommerce-gateway-stripe' ),
103
+			'title'       => __('Stripe Modal Checkout', 'woocommerce-gateway-stripe'),
104
+			'label'       => __('Enable Stripe Checkout', 'woocommerce-gateway-stripe'),
105 105
 			'type'        => 'checkbox',
106
-			'description' => __( 'If enabled, this option shows a "pay" button and modal credit card form on the checkout, instead of credit card fields directly on the page. We recommend you leave this disabled and use the embedded form as that is the preferred method.', 'woocommerce-gateway-stripe' ),
106
+			'description' => __('If enabled, this option shows a "pay" button and modal credit card form on the checkout, instead of credit card fields directly on the page. We recommend you leave this disabled and use the embedded form as that is the preferred method.', 'woocommerce-gateway-stripe'),
107 107
 			'default'     => 'no',
108 108
 			'desc_tip'    => true,
109 109
 		),
110 110
 		'stripe_checkout_image'         => array(
111
-			'title'       => __( 'Stripe Checkout Image', 'woocommerce-gateway-stripe' ),
112
-			'description' => __( 'Optionally enter the URL to a 128x128px image of your brand or product. e.g. <code>https://yoursite.com/wp-content/uploads/2013/09/yourimage.jpg</code>', 'woocommerce-gateway-stripe' ),
111
+			'title'       => __('Stripe Checkout Image', 'woocommerce-gateway-stripe'),
112
+			'description' => __('Optionally enter the URL to a 128x128px image of your brand or product. e.g. <code>https://yoursite.com/wp-content/uploads/2013/09/yourimage.jpg</code>', 'woocommerce-gateway-stripe'),
113 113
 			'type'        => 'text',
114 114
 			'default'     => '',
115 115
 			'desc_tip'    => true,
116 116
 		),
117 117
 		'stripe_checkout_description'   => array(
118
-			'title'       => __( 'Stripe Checkout Description', 'woocommerce-gateway-stripe' ),
118
+			'title'       => __('Stripe Checkout Description', 'woocommerce-gateway-stripe'),
119 119
 			'type'        => 'text',
120
-			'description' => __( 'Shows a description of your store on Stripe Modal Checkout.', 'woocommerce-gateway-stripe' ),
120
+			'description' => __('Shows a description of your store on Stripe Modal Checkout.', 'woocommerce-gateway-stripe'),
121 121
 			'default'     => '',
122 122
 			'desc_tip'    => true,
123 123
 		),
124 124
 		'payment_request'               => array(
125
-			'title'       => __( 'Payment Request Buttons', 'woocommerce-gateway-stripe' ),
125
+			'title'       => __('Payment Request Buttons', 'woocommerce-gateway-stripe'),
126 126
 			/* translators: 1) br tag 2) opening anchor tag 3) closing anchor tag */
127
-			'label'       => sprintf( __( 'Enable Payment Request Buttons. (Apple Pay/Chrome Payment Request API) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service.', 'woocommerce-gateway-stripe' ), '<br />', '<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>', '<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>' ),
127
+			'label'       => sprintf(__('Enable Payment Request Buttons. (Apple Pay/Chrome Payment Request API) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service.', 'woocommerce-gateway-stripe'), '<br />', '<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>', '<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>'),
128 128
 			'type'        => 'checkbox',
129
-			'description' => __( 'If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe' ),
129
+			'description' => __('If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe'),
130 130
 			'default'     => 'yes',
131 131
 			'desc_tip'    => true,
132 132
 		),
133 133
 		'payment_request_button_type'   => array(
134
-			'title'       => __( 'Payment Request Button Type', 'woocommerce-gateway-stripe' ),
135
-			'label'       => __( 'Button Type', 'woocommerce-gateway-stripe' ),
134
+			'title'       => __('Payment Request Button Type', 'woocommerce-gateway-stripe'),
135
+			'label'       => __('Button Type', 'woocommerce-gateway-stripe'),
136 136
 			'type'        => 'select',
137
-			'description' => __( 'Select the button type you would like to show.', 'woocommerce-gateway-stripe' ),
137
+			'description' => __('Select the button type you would like to show.', 'woocommerce-gateway-stripe'),
138 138
 			'default'     => 'buy',
139 139
 			'desc_tip'    => true,
140 140
 			'options'     => array(
141
-				'default' => __( 'Default', 'woocommerce-gateway-stripe' ),
142
-				'buy'     => __( 'Buy', 'woocommerce-gateway-stripe' ),
143
-				'donate'  => __( 'Donate', 'woocommerce-gateway-stripe' ),
141
+				'default' => __('Default', 'woocommerce-gateway-stripe'),
142
+				'buy'     => __('Buy', 'woocommerce-gateway-stripe'),
143
+				'donate'  => __('Donate', 'woocommerce-gateway-stripe'),
144 144
 			),
145 145
 		),
146 146
 		'payment_request_button_theme'  => array(
147
-			'title'       => __( 'Payment Request Button Theme', 'woocommerce-gateway-stripe' ),
148
-			'label'       => __( 'Button Theme', 'woocommerce-gateway-stripe' ),
147
+			'title'       => __('Payment Request Button Theme', 'woocommerce-gateway-stripe'),
148
+			'label'       => __('Button Theme', 'woocommerce-gateway-stripe'),
149 149
 			'type'        => 'select',
150
-			'description' => __( 'Select the button theme you would like to show.', 'woocommerce-gateway-stripe' ),
150
+			'description' => __('Select the button theme you would like to show.', 'woocommerce-gateway-stripe'),
151 151
 			'default'     => 'dark',
152 152
 			'desc_tip'    => true,
153 153
 			'options'     => array(
154
-				'dark'          => __( 'Dark', 'woocommerce-gateway-stripe' ),
155
-				'light'         => __( 'Light', 'woocommerce-gateway-stripe' ),
156
-				'light-outline' => __( 'Light-Outline', 'woocommerce-gateway-stripe' ),
154
+				'dark'          => __('Dark', 'woocommerce-gateway-stripe'),
155
+				'light'         => __('Light', 'woocommerce-gateway-stripe'),
156
+				'light-outline' => __('Light-Outline', 'woocommerce-gateway-stripe'),
157 157
 			),
158 158
 		),
159 159
 		'payment_request_button_height' => array(
160
-			'title'       => __( 'Payment Request Button Height', 'woocommerce-gateway-stripe' ),
161
-			'label'       => __( 'Button Height', 'woocommerce-gateway-stripe' ),
160
+			'title'       => __('Payment Request Button Height', 'woocommerce-gateway-stripe'),
161
+			'label'       => __('Button Height', 'woocommerce-gateway-stripe'),
162 162
 			'type'        => 'text',
163
-			'description' => __( 'Enter the height you would like the button to be in pixels. Width will always be 100%.', 'woocommerce-gateway-stripe' ),
163
+			'description' => __('Enter the height you would like the button to be in pixels. Width will always be 100%.', 'woocommerce-gateway-stripe'),
164 164
 			'default'     => '44',
165 165
 			'desc_tip'    => true,
166 166
 		),
167 167
 		'saved_cards'                   => array(
168
-			'title'       => __( 'Saved Cards', 'woocommerce-gateway-stripe' ),
169
-			'label'       => __( 'Enable Payment via Saved Cards', 'woocommerce-gateway-stripe' ),
168
+			'title'       => __('Saved Cards', 'woocommerce-gateway-stripe'),
169
+			'label'       => __('Enable Payment via Saved Cards', 'woocommerce-gateway-stripe'),
170 170
 			'type'        => 'checkbox',
171
-			'description' => __( 'If enabled, users will be able to pay with a saved card during checkout. Card details are saved on Stripe servers, not on your store.', 'woocommerce-gateway-stripe' ),
171
+			'description' => __('If enabled, users will be able to pay with a saved card during checkout. Card details are saved on Stripe servers, not on your store.', 'woocommerce-gateway-stripe'),
172 172
 			'default'     => 'yes',
173 173
 			'desc_tip'    => true,
174 174
 		),
175 175
 		'logging'                       => array(
176
-			'title'       => __( 'Logging', 'woocommerce-gateway-stripe' ),
177
-			'label'       => __( 'Log debug messages', 'woocommerce-gateway-stripe' ),
176
+			'title'       => __('Logging', 'woocommerce-gateway-stripe'),
177
+			'label'       => __('Log debug messages', 'woocommerce-gateway-stripe'),
178 178
 			'type'        => 'checkbox',
179
-			'description' => __( 'Save debug messages to the WooCommerce System Status log.', 'woocommerce-gateway-stripe' ),
179
+			'description' => __('Save debug messages to the WooCommerce System Status log.', 'woocommerce-gateway-stripe'),
180 180
 			'default'     => 'no',
181 181
 			'desc_tip'    => true,
182 182
 		),
Please login to merge, or discard this patch.