@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -23,11 +23,11 @@ discard block |
||
23 | 23 | |
24 | 24 | $this->retry_interval = 1; |
25 | 25 | |
26 | - add_action( 'wp', array( $this, 'maybe_process_redirect_order' ) ); |
|
27 | - add_action( 'woocommerce_order_status_processing', array( $this, 'capture_payment' ) ); |
|
28 | - add_action( 'woocommerce_order_status_completed', array( $this, 'capture_payment' ) ); |
|
29 | - add_action( 'woocommerce_order_status_cancelled', array( $this, 'cancel_payment' ) ); |
|
30 | - add_action( 'woocommerce_order_status_refunded', array( $this, 'cancel_payment' ) ); |
|
26 | + add_action('wp', array($this, 'maybe_process_redirect_order')); |
|
27 | + add_action('woocommerce_order_status_processing', array($this, 'capture_payment')); |
|
28 | + add_action('woocommerce_order_status_completed', array($this, 'capture_payment')); |
|
29 | + add_action('woocommerce_order_status_cancelled', array($this, 'cancel_payment')); |
|
30 | + add_action('woocommerce_order_status_refunded', array($this, 'cancel_payment')); |
|
31 | 31 | } |
32 | 32 | |
33 | 33 | /** |
@@ -51,25 +51,25 @@ discard block |
||
51 | 51 | * @param bool $retry |
52 | 52 | * @param mix $previous_error Any error message from previous request. |
53 | 53 | */ |
54 | - public function process_redirect_payment( $order_id, $retry = true, $previous_error = false ) { |
|
54 | + public function process_redirect_payment($order_id, $retry = true, $previous_error = false) { |
|
55 | 55 | try { |
56 | - $source = wc_clean( $_GET['source'] ); |
|
56 | + $source = wc_clean($_GET['source']); |
|
57 | 57 | |
58 | - if ( empty( $source ) ) { |
|
58 | + if (empty($source)) { |
|
59 | 59 | return; |
60 | 60 | } |
61 | 61 | |
62 | - if ( empty( $order_id ) ) { |
|
62 | + if (empty($order_id)) { |
|
63 | 63 | return; |
64 | 64 | } |
65 | 65 | |
66 | - $order = wc_get_order( $order_id ); |
|
66 | + $order = wc_get_order($order_id); |
|
67 | 67 | |
68 | - if ( ! is_object( $order ) ) { |
|
68 | + if ( ! is_object($order)) { |
|
69 | 69 | return; |
70 | 70 | } |
71 | 71 | |
72 | - if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() || 'on-hold' === $order->get_status() ) { |
|
72 | + if ('processing' === $order->get_status() || 'completed' === $order->get_status() || 'on-hold' === $order->get_status()) { |
|
73 | 73 | return; |
74 | 74 | } |
75 | 75 | |
@@ -77,124 +77,124 @@ discard block |
||
77 | 77 | $response = null; |
78 | 78 | |
79 | 79 | // This will throw exception if not valid. |
80 | - $this->validate_minimum_order_amount( $order ); |
|
80 | + $this->validate_minimum_order_amount($order); |
|
81 | 81 | |
82 | - WC_Stripe_Logger::log( "Info: (Redirect) Begin processing payment for order $order_id for the amount of {$order->get_total()}" ); |
|
82 | + WC_Stripe_Logger::log("Info: (Redirect) Begin processing payment for order $order_id for the amount of {$order->get_total()}"); |
|
83 | 83 | |
84 | 84 | /** |
85 | 85 | * First check if the source is chargeable at this time. If not, |
86 | 86 | * webhook will take care of it later. |
87 | 87 | */ |
88 | - $source_info = WC_Stripe_API::retrieve( 'sources/' . $source ); |
|
88 | + $source_info = WC_Stripe_API::retrieve('sources/' . $source); |
|
89 | 89 | |
90 | - if ( ! empty( $source_info->error ) ) { |
|
91 | - throw new WC_Stripe_Exception( print_r( $source_info, true ), $source_info->error->message ); |
|
90 | + if ( ! empty($source_info->error)) { |
|
91 | + throw new WC_Stripe_Exception(print_r($source_info, true), $source_info->error->message); |
|
92 | 92 | } |
93 | 93 | |
94 | - if ( 'failed' === $source_info->status || 'canceled' === $source_info->status ) { |
|
95 | - throw new WC_Stripe_Exception( print_r( $source_info, true ), __( 'Unable to process this payment, please try again or use alternative method.', 'woocommerce-gateway-stripe' ) ); |
|
94 | + if ('failed' === $source_info->status || 'canceled' === $source_info->status) { |
|
95 | + throw new WC_Stripe_Exception(print_r($source_info, true), __('Unable to process this payment, please try again or use alternative method.', 'woocommerce-gateway-stripe')); |
|
96 | 96 | } |
97 | 97 | |
98 | 98 | // If already consumed, then ignore request. |
99 | - if ( 'consumed' === $source_info->status ) { |
|
99 | + if ('consumed' === $source_info->status) { |
|
100 | 100 | return; |
101 | 101 | } |
102 | 102 | |
103 | 103 | // If not chargeable, then ignore request. |
104 | - if ( 'chargeable' !== $source_info->status ) { |
|
104 | + if ('chargeable' !== $source_info->status) { |
|
105 | 105 | return; |
106 | 106 | } |
107 | 107 | |
108 | 108 | // Prep source object. |
109 | 109 | $source_object = new stdClass(); |
110 | 110 | $source_object->token_id = ''; |
111 | - $source_object->customer = $this->get_stripe_customer_id( $order ); |
|
111 | + $source_object->customer = $this->get_stripe_customer_id($order); |
|
112 | 112 | $source_object->source = $source_info->id; |
113 | 113 | $source_object->status = 'chargeable'; |
114 | 114 | |
115 | 115 | /* If we're doing a retry and source is chargeable, we need to pass |
116 | 116 | * a different idempotency key and retry for success. |
117 | 117 | */ |
118 | - if ( $this->need_update_idempotency_key( $source_object, $previous_error ) ) { |
|
119 | - add_filter( 'wc_stripe_idempotency_key', array( $this, 'change_idempotency_key' ), 10, 2 ); |
|
118 | + if ($this->need_update_idempotency_key($source_object, $previous_error)) { |
|
119 | + add_filter('wc_stripe_idempotency_key', array($this, 'change_idempotency_key'), 10, 2); |
|
120 | 120 | } |
121 | 121 | |
122 | 122 | // Make the request. |
123 | - $response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ), 'charges', 'POST', true ); |
|
123 | + $response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object), 'charges', 'POST', true); |
|
124 | 124 | $headers = $response['headers']; |
125 | 125 | $response = $response['body']; |
126 | 126 | |
127 | - if ( ! empty( $response->error ) ) { |
|
127 | + if ( ! empty($response->error)) { |
|
128 | 128 | // Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without. |
129 | - if ( $this->is_no_such_customer_error( $response->error ) ) { |
|
130 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
131 | - delete_user_meta( $order->customer_user, '_stripe_customer_id' ); |
|
132 | - delete_post_meta( $order_id, '_stripe_customer_id' ); |
|
129 | + if ($this->is_no_such_customer_error($response->error)) { |
|
130 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
131 | + delete_user_meta($order->customer_user, '_stripe_customer_id'); |
|
132 | + delete_post_meta($order_id, '_stripe_customer_id'); |
|
133 | 133 | } else { |
134 | - delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' ); |
|
135 | - $order->delete_meta_data( '_stripe_customer_id' ); |
|
134 | + delete_user_meta($order->get_customer_id(), '_stripe_customer_id'); |
|
135 | + $order->delete_meta_data('_stripe_customer_id'); |
|
136 | 136 | $order->save(); |
137 | 137 | } |
138 | 138 | } |
139 | 139 | |
140 | - if ( $this->is_no_such_token_error( $response->error ) && $prepared_source->token_id ) { |
|
140 | + if ($this->is_no_such_token_error($response->error) && $prepared_source->token_id) { |
|
141 | 141 | // Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message. |
142 | - $wc_token = WC_Payment_Tokens::get( $prepared_source->token_id ); |
|
142 | + $wc_token = WC_Payment_Tokens::get($prepared_source->token_id); |
|
143 | 143 | $wc_token->delete(); |
144 | - $localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' ); |
|
145 | - $order->add_order_note( $localized_message ); |
|
146 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
144 | + $localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe'); |
|
145 | + $order->add_order_note($localized_message); |
|
146 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
147 | 147 | } |
148 | 148 | |
149 | 149 | // We want to retry. |
150 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
151 | - if ( $retry ) { |
|
150 | + if ($this->is_retryable_error($response->error)) { |
|
151 | + if ($retry) { |
|
152 | 152 | // Don't do anymore retries after this. |
153 | - if ( 5 <= $this->retry_interval ) { |
|
154 | - return $this->process_redirect_payment( $order_id, false, $response->error ); |
|
153 | + if (5 <= $this->retry_interval) { |
|
154 | + return $this->process_redirect_payment($order_id, false, $response->error); |
|
155 | 155 | } |
156 | 156 | |
157 | - sleep( $this->retry_interval ); |
|
157 | + sleep($this->retry_interval); |
|
158 | 158 | |
159 | 159 | $this->retry_interval++; |
160 | - return $this->process_redirect_payment( $order_id, true, $response->error ); |
|
160 | + return $this->process_redirect_payment($order_id, true, $response->error); |
|
161 | 161 | } else { |
162 | - $localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' ); |
|
163 | - $order->add_order_note( $localized_message ); |
|
164 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
162 | + $localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe'); |
|
163 | + $order->add_order_note($localized_message); |
|
164 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
165 | 165 | } |
166 | 166 | } |
167 | 167 | |
168 | 168 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
169 | 169 | |
170 | - if ( 'card_error' === $response->error->type ) { |
|
171 | - $message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
170 | + if ('card_error' === $response->error->type) { |
|
171 | + $message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
172 | 172 | } else { |
173 | - $message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
173 | + $message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
174 | 174 | } |
175 | 175 | |
176 | - throw new WC_Stripe_Exception( print_r( $response, true ), $message ); |
|
176 | + throw new WC_Stripe_Exception(print_r($response, true), $message); |
|
177 | 177 | } |
178 | 178 | |
179 | 179 | // To prevent double processing the order on WC side. |
180 | - if ( ! $this->is_original_request( $headers ) ) { |
|
180 | + if ( ! $this->is_original_request($headers)) { |
|
181 | 181 | return; |
182 | 182 | } |
183 | 183 | |
184 | - do_action( 'wc_gateway_stripe_process_redirect_payment', $response, $order ); |
|
184 | + do_action('wc_gateway_stripe_process_redirect_payment', $response, $order); |
|
185 | 185 | |
186 | - $this->process_response( $response, $order ); |
|
186 | + $this->process_response($response, $order); |
|
187 | 187 | |
188 | - } catch ( WC_Stripe_Exception $e ) { |
|
189 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
188 | + } catch (WC_Stripe_Exception $e) { |
|
189 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
190 | 190 | |
191 | - do_action( 'wc_gateway_stripe_process_redirect_payment_error', $e, $order ); |
|
191 | + do_action('wc_gateway_stripe_process_redirect_payment_error', $e, $order); |
|
192 | 192 | |
193 | 193 | /* translators: error message */ |
194 | - $order->update_status( 'failed', sprintf( __( 'Stripe payment failed: %s', 'woocommerce-gateway-stripe' ), $e->getLocalizedMessage() ) ); |
|
194 | + $order->update_status('failed', sprintf(__('Stripe payment failed: %s', 'woocommerce-gateway-stripe'), $e->getLocalizedMessage())); |
|
195 | 195 | |
196 | - wc_add_notice( $e->getLocalizedMessage(), 'error' ); |
|
197 | - wp_safe_redirect( wc_get_checkout_url() ); |
|
196 | + wc_add_notice($e->getLocalizedMessage(), 'error'); |
|
197 | + wp_safe_redirect(wc_get_checkout_url()); |
|
198 | 198 | exit; |
199 | 199 | } |
200 | 200 | } |
@@ -206,13 +206,13 @@ discard block |
||
206 | 206 | * @version 4.0.0 |
207 | 207 | */ |
208 | 208 | public function maybe_process_redirect_order() { |
209 | - if ( ! is_order_received_page() || empty( $_GET['client_secret'] ) || empty( $_GET['source'] ) ) { |
|
209 | + if ( ! is_order_received_page() || empty($_GET['client_secret']) || empty($_GET['source'])) { |
|
210 | 210 | return; |
211 | 211 | } |
212 | 212 | |
213 | - $order_id = wc_clean( $_GET['order_id'] ); |
|
213 | + $order_id = wc_clean($_GET['order_id']); |
|
214 | 214 | |
215 | - $this->process_redirect_payment( $order_id ); |
|
215 | + $this->process_redirect_payment($order_id); |
|
216 | 216 | } |
217 | 217 | |
218 | 218 | /** |
@@ -222,92 +222,92 @@ discard block |
||
222 | 222 | * @version 4.0.0 |
223 | 223 | * @param int $order_id |
224 | 224 | */ |
225 | - public function capture_payment( $order_id ) { |
|
226 | - $order = wc_get_order( $order_id ); |
|
225 | + public function capture_payment($order_id) { |
|
226 | + $order = wc_get_order($order_id); |
|
227 | 227 | |
228 | - if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) { |
|
229 | - $charge = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id(); |
|
230 | - $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 ); |
|
228 | + if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) { |
|
229 | + $charge = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id(); |
|
230 | + $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); |
|
231 | 231 | $is_stripe_captured = false; |
232 | 232 | |
233 | - if ( $charge && 'no' === $captured ) { |
|
233 | + if ($charge && 'no' === $captured) { |
|
234 | 234 | $order_total = $order->get_total(); |
235 | 235 | |
236 | - if ( 0 < $order->get_total_refunded() ) { |
|
236 | + if (0 < $order->get_total_refunded()) { |
|
237 | 237 | $order_total = $order_total - $order->get_total_refunded(); |
238 | 238 | } |
239 | 239 | |
240 | - $intent = $this->get_intent_from_order( $order ); |
|
241 | - if ( $intent ) { |
|
240 | + $intent = $this->get_intent_from_order($order); |
|
241 | + if ($intent) { |
|
242 | 242 | // If the order has a Payment Intent, then the Intent itself must be captured, not the Charge |
243 | - if ( ! empty( $intent->error ) ) { |
|
243 | + if ( ! empty($intent->error)) { |
|
244 | 244 | /* translators: error message */ |
245 | - $order->add_order_note( sprintf( __( 'Unable to capture charge! %s', 'woocommerce-gateway-stripe' ), $intent->error->message ) ); |
|
246 | - } elseif ( 'requires_capture' === $intent->status ) { |
|
245 | + $order->add_order_note(sprintf(__('Unable to capture charge! %s', 'woocommerce-gateway-stripe'), $intent->error->message)); |
|
246 | + } elseif ('requires_capture' === $intent->status) { |
|
247 | 247 | $result = WC_Stripe_API::request( |
248 | 248 | array( |
249 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $order_total ), |
|
249 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($order_total), |
|
250 | 250 | 'expand[]' => 'charges.data.balance_transaction', |
251 | 251 | ), |
252 | 252 | 'payment_intents/' . $intent->id . '/capture' |
253 | 253 | ); |
254 | 254 | |
255 | - if ( ! empty( $result->error ) ) { |
|
255 | + if ( ! empty($result->error)) { |
|
256 | 256 | /* translators: error message */ |
257 | - $order->update_status( 'failed', sprintf( __( 'Unable to capture charge! %s', 'woocommerce-gateway-stripe' ), $result->error->message ) ); |
|
257 | + $order->update_status('failed', sprintf(__('Unable to capture charge! %s', 'woocommerce-gateway-stripe'), $result->error->message)); |
|
258 | 258 | } else { |
259 | 259 | $is_stripe_captured = true; |
260 | - $result = end( $result->charges->data ); |
|
260 | + $result = end($result->charges->data); |
|
261 | 261 | } |
262 | - } elseif ( 'succeeded' === $intent->status ) { |
|
262 | + } elseif ('succeeded' === $intent->status) { |
|
263 | 263 | $is_stripe_captured = true; |
264 | 264 | } |
265 | 265 | } else { |
266 | 266 | // The order doesn't have a Payment Intent, fall back to capturing the Charge directly |
267 | 267 | |
268 | 268 | // First retrieve charge to see if it has been captured. |
269 | - $result = WC_Stripe_API::retrieve( 'charges/' . $charge ); |
|
269 | + $result = WC_Stripe_API::retrieve('charges/' . $charge); |
|
270 | 270 | |
271 | - if ( ! empty( $result->error ) ) { |
|
271 | + if ( ! empty($result->error)) { |
|
272 | 272 | /* translators: error message */ |
273 | - $order->add_order_note( sprintf( __( 'Unable to capture charge! %s', 'woocommerce-gateway-stripe' ), $result->error->message ) ); |
|
274 | - } elseif ( false === $result->captured ) { |
|
273 | + $order->add_order_note(sprintf(__('Unable to capture charge! %s', 'woocommerce-gateway-stripe'), $result->error->message)); |
|
274 | + } elseif (false === $result->captured) { |
|
275 | 275 | $result = WC_Stripe_API::request( |
276 | 276 | array( |
277 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $order_total ), |
|
277 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($order_total), |
|
278 | 278 | 'expand[]' => 'balance_transaction', |
279 | 279 | ), |
280 | 280 | 'charges/' . $charge . '/capture' |
281 | 281 | ); |
282 | 282 | |
283 | - if ( ! empty( $result->error ) ) { |
|
283 | + if ( ! empty($result->error)) { |
|
284 | 284 | /* translators: error message */ |
285 | - $order->update_status( 'failed', sprintf( __( 'Unable to capture charge! %s', 'woocommerce-gateway-stripe' ), $result->error->message ) ); |
|
285 | + $order->update_status('failed', sprintf(__('Unable to capture charge! %s', 'woocommerce-gateway-stripe'), $result->error->message)); |
|
286 | 286 | } else { |
287 | 287 | $is_stripe_captured = true; |
288 | 288 | } |
289 | - } elseif ( true === $result->captured ) { |
|
289 | + } elseif (true === $result->captured) { |
|
290 | 290 | $is_stripe_captured = true; |
291 | 291 | } |
292 | 292 | } |
293 | 293 | |
294 | - if ( $is_stripe_captured ) { |
|
294 | + if ($is_stripe_captured) { |
|
295 | 295 | /* translators: transaction id */ |
296 | - $order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $result->id ) ); |
|
297 | - 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 | + $order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $result->id)); |
|
297 | + 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'); |
|
298 | 298 | |
299 | 299 | // Store other data such as fees |
300 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, '_transaction_id', $result->id ) : $order->set_transaction_id( $result->id ); |
|
300 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $result->id) : $order->set_transaction_id($result->id); |
|
301 | 301 | |
302 | - if ( is_callable( array( $order, 'save' ) ) ) { |
|
302 | + if (is_callable(array($order, 'save'))) { |
|
303 | 303 | $order->save(); |
304 | 304 | } |
305 | 305 | |
306 | - $this->update_fees( $order, $result->balance_transaction->id ); |
|
306 | + $this->update_fees($order, $result->balance_transaction->id); |
|
307 | 307 | } |
308 | 308 | |
309 | 309 | // This hook fires when admin manually changes order status to processing or completed. |
310 | - do_action( 'woocommerce_stripe_process_manual_capture', $order, $result ); |
|
310 | + do_action('woocommerce_stripe_process_manual_capture', $order, $result); |
|
311 | 311 | } |
312 | 312 | } |
313 | 313 | } |
@@ -319,19 +319,19 @@ discard block |
||
319 | 319 | * @version 4.2.2 |
320 | 320 | * @param int $order_id |
321 | 321 | */ |
322 | - public function cancel_payment( $order_id ) { |
|
323 | - $order = wc_get_order( $order_id ); |
|
324 | - |
|
325 | - if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) { |
|
326 | - $captured = WC_Stripe_Helper::is_wc_lt( '3.0' ) |
|
327 | - ? get_post_meta( $order_id, '_stripe_charge_captured', true ) |
|
328 | - : $order->get_meta( '_stripe_charge_captured', true ); |
|
329 | - if ( 'no' === $captured ) { |
|
330 | - $this->process_refund( $order_id ); |
|
322 | + public function cancel_payment($order_id) { |
|
323 | + $order = wc_get_order($order_id); |
|
324 | + |
|
325 | + if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) { |
|
326 | + $captured = WC_Stripe_Helper::is_wc_lt('3.0') |
|
327 | + ? get_post_meta($order_id, '_stripe_charge_captured', true) |
|
328 | + : $order->get_meta('_stripe_charge_captured', true); |
|
329 | + if ('no' === $captured) { |
|
330 | + $this->process_refund($order_id); |
|
331 | 331 | } |
332 | 332 | |
333 | 333 | // This hook fires when admin manually changes order status to cancel. |
334 | - do_action( 'woocommerce_stripe_process_manual_cancel', $order ); |
|
334 | + do_action('woocommerce_stripe_process_manual_cancel', $order); |
|
335 | 335 | } |
336 | 336 | } |
337 | 337 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -7,160 +7,160 @@ discard block |
||
7 | 7 | 'wc_stripe_settings', |
8 | 8 | array( |
9 | 9 | 'enabled' => array( |
10 | - 'title' => __( 'Enable/Disable', 'woocommerce-gateway-stripe' ), |
|
11 | - 'label' => __( 'Enable Stripe', 'woocommerce-gateway-stripe' ), |
|
10 | + 'title' => __('Enable/Disable', 'woocommerce-gateway-stripe'), |
|
11 | + 'label' => __('Enable Stripe', 'woocommerce-gateway-stripe'), |
|
12 | 12 | 'type' => 'checkbox', |
13 | 13 | 'description' => '', |
14 | 14 | 'default' => 'no', |
15 | 15 | ), |
16 | 16 | 'title' => array( |
17 | - 'title' => __( 'Title', 'woocommerce-gateway-stripe' ), |
|
17 | + 'title' => __('Title', 'woocommerce-gateway-stripe'), |
|
18 | 18 | 'type' => 'text', |
19 | - 'description' => __( 'This controls the title which the user sees during checkout.', 'woocommerce-gateway-stripe' ), |
|
20 | - 'default' => __( 'Credit Card (Stripe)', 'woocommerce-gateway-stripe' ), |
|
19 | + 'description' => __('This controls the title which the user sees during checkout.', 'woocommerce-gateway-stripe'), |
|
20 | + 'default' => __('Credit Card (Stripe)', 'woocommerce-gateway-stripe'), |
|
21 | 21 | 'desc_tip' => true, |
22 | 22 | ), |
23 | 23 | 'description' => array( |
24 | - 'title' => __( 'Description', 'woocommerce-gateway-stripe' ), |
|
24 | + 'title' => __('Description', 'woocommerce-gateway-stripe'), |
|
25 | 25 | 'type' => 'text', |
26 | - 'description' => __( 'This controls the description which the user sees during checkout.', 'woocommerce-gateway-stripe' ), |
|
27 | - 'default' => __( 'Pay with your credit card via Stripe.', 'woocommerce-gateway-stripe' ), |
|
26 | + 'description' => __('This controls the description which the user sees during checkout.', 'woocommerce-gateway-stripe'), |
|
27 | + 'default' => __('Pay with your credit card via Stripe.', 'woocommerce-gateway-stripe'), |
|
28 | 28 | 'desc_tip' => true, |
29 | 29 | ), |
30 | 30 | 'webhook' => array( |
31 | - 'title' => __( 'Webhook Endpoints', 'woocommerce-gateway-stripe' ), |
|
31 | + 'title' => __('Webhook Endpoints', 'woocommerce-gateway-stripe'), |
|
32 | 32 | 'type' => 'title', |
33 | 33 | /* translators: webhook URL */ |
34 | 34 | 'description' => $this->display_admin_settings_webhook_description(), |
35 | 35 | ), |
36 | 36 | 'testmode' => array( |
37 | - 'title' => __( 'Test mode', 'woocommerce-gateway-stripe' ), |
|
38 | - 'label' => __( 'Enable Test Mode', 'woocommerce-gateway-stripe' ), |
|
37 | + 'title' => __('Test mode', 'woocommerce-gateway-stripe'), |
|
38 | + 'label' => __('Enable Test Mode', 'woocommerce-gateway-stripe'), |
|
39 | 39 | 'type' => 'checkbox', |
40 | - 'description' => __( 'Place the payment gateway in test mode using test API keys.', 'woocommerce-gateway-stripe' ), |
|
40 | + 'description' => __('Place the payment gateway in test mode using test API keys.', 'woocommerce-gateway-stripe'), |
|
41 | 41 | 'default' => 'yes', |
42 | 42 | 'desc_tip' => true, |
43 | 43 | ), |
44 | 44 | 'test_publishable_key' => array( |
45 | - 'title' => __( 'Test Publishable Key', 'woocommerce-gateway-stripe' ), |
|
45 | + 'title' => __('Test Publishable Key', 'woocommerce-gateway-stripe'), |
|
46 | 46 | 'type' => 'text', |
47 | - 'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ), |
|
47 | + 'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'), |
|
48 | 48 | 'default' => '', |
49 | 49 | 'desc_tip' => true, |
50 | 50 | ), |
51 | 51 | 'test_secret_key' => array( |
52 | - 'title' => __( 'Test Secret Key', 'woocommerce-gateway-stripe' ), |
|
52 | + 'title' => __('Test Secret Key', 'woocommerce-gateway-stripe'), |
|
53 | 53 | 'type' => 'password', |
54 | - 'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ), |
|
54 | + 'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'), |
|
55 | 55 | 'default' => '', |
56 | 56 | 'desc_tip' => true, |
57 | 57 | ), |
58 | 58 | 'test_webhook_secret' => array( |
59 | - 'title' => __( 'Test Webhook Secret', 'woocommerce-gateway-stripe' ), |
|
59 | + 'title' => __('Test Webhook Secret', 'woocommerce-gateway-stripe'), |
|
60 | 60 | 'type' => 'password', |
61 | - 'description' => __( 'Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe' ), |
|
61 | + 'description' => __('Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe'), |
|
62 | 62 | 'default' => '', |
63 | 63 | 'desc_tip' => true, |
64 | 64 | ), |
65 | 65 | 'publishable_key' => array( |
66 | - 'title' => __( 'Live Publishable Key', 'woocommerce-gateway-stripe' ), |
|
66 | + 'title' => __('Live Publishable Key', 'woocommerce-gateway-stripe'), |
|
67 | 67 | 'type' => 'text', |
68 | - 'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ), |
|
68 | + 'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'), |
|
69 | 69 | 'default' => '', |
70 | 70 | 'desc_tip' => true, |
71 | 71 | ), |
72 | 72 | 'secret_key' => array( |
73 | - 'title' => __( 'Live Secret Key', 'woocommerce-gateway-stripe' ), |
|
73 | + 'title' => __('Live Secret Key', 'woocommerce-gateway-stripe'), |
|
74 | 74 | 'type' => 'password', |
75 | - 'description' => __( 'Get your API keys from your stripe account.', 'woocommerce-gateway-stripe' ), |
|
75 | + 'description' => __('Get your API keys from your stripe account.', 'woocommerce-gateway-stripe'), |
|
76 | 76 | 'default' => '', |
77 | 77 | 'desc_tip' => true, |
78 | 78 | ), |
79 | 79 | 'webhook_secret' => array( |
80 | - 'title' => __( 'Webhook Secret', 'woocommerce-gateway-stripe' ), |
|
80 | + 'title' => __('Webhook Secret', 'woocommerce-gateway-stripe'), |
|
81 | 81 | 'type' => 'password', |
82 | - 'description' => __( 'Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe' ), |
|
82 | + 'description' => __('Get your webhook signing secret from the webhooks section in your stripe account.', 'woocommerce-gateway-stripe'), |
|
83 | 83 | 'default' => '', |
84 | 84 | 'desc_tip' => true, |
85 | 85 | ), |
86 | 86 | 'inline_cc_form' => array( |
87 | - 'title' => __( 'Inline Credit Card Form', 'woocommerce-gateway-stripe' ), |
|
87 | + 'title' => __('Inline Credit Card Form', 'woocommerce-gateway-stripe'), |
|
88 | 88 | 'type' => 'checkbox', |
89 | - 'description' => __( 'Choose the style you want to show for your credit card form. When unchecked, the credit card form will display separate credit card number field, expiry date field and cvc field.', 'woocommerce-gateway-stripe' ), |
|
89 | + 'description' => __('Choose the style you want to show for your credit card form. When unchecked, the credit card form will display separate credit card number field, expiry date field and cvc field.', 'woocommerce-gateway-stripe'), |
|
90 | 90 | 'default' => 'no', |
91 | 91 | 'desc_tip' => true, |
92 | 92 | ), |
93 | 93 | 'statement_descriptor' => array( |
94 | - 'title' => __( 'Statement Descriptor', 'woocommerce-gateway-stripe' ), |
|
94 | + 'title' => __('Statement Descriptor', 'woocommerce-gateway-stripe'), |
|
95 | 95 | 'type' => 'text', |
96 | - 'description' => __( 'Statement descriptors are limited to 22 characters, cannot use the special characters >, <, ", \, \', *, and must not consist solely of numbers. This will appear on your customer\'s statement in capital letters.', 'woocommerce-gateway-stripe' ), |
|
96 | + 'description' => __('Statement descriptors are limited to 22 characters, cannot use the special characters >, <, ", \, \', *, and must not consist solely of numbers. This will appear on your customer\'s statement in capital letters.', 'woocommerce-gateway-stripe'), |
|
97 | 97 | 'default' => '', |
98 | 98 | 'desc_tip' => true, |
99 | 99 | ), |
100 | 100 | 'capture' => array( |
101 | - 'title' => __( 'Capture', 'woocommerce-gateway-stripe' ), |
|
102 | - 'label' => __( 'Capture charge immediately', 'woocommerce-gateway-stripe' ), |
|
101 | + 'title' => __('Capture', 'woocommerce-gateway-stripe'), |
|
102 | + 'label' => __('Capture charge immediately', 'woocommerce-gateway-stripe'), |
|
103 | 103 | 'type' => 'checkbox', |
104 | - 'description' => __( 'Whether or not to immediately capture the charge. When unchecked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days.', 'woocommerce-gateway-stripe' ), |
|
104 | + 'description' => __('Whether or not to immediately capture the charge. When unchecked, the charge issues an authorization and will need to be captured later. Uncaptured charges expire in 7 days.', 'woocommerce-gateway-stripe'), |
|
105 | 105 | 'default' => 'yes', |
106 | 106 | 'desc_tip' => true, |
107 | 107 | ), |
108 | 108 | 'payment_request' => array( |
109 | - 'title' => __( 'Payment Request Buttons', 'woocommerce-gateway-stripe' ), |
|
109 | + 'title' => __('Payment Request Buttons', 'woocommerce-gateway-stripe'), |
|
110 | 110 | /* translators: 1) br tag 2) opening anchor tag 3) closing anchor tag */ |
111 | - 'label' => sprintf( __( 'Enable Payment Request Buttons. (Apple Pay/Chrome Payment Request API) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service.', 'woocommerce-gateway-stripe' ), '<br />', '<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>', '<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>' ), |
|
111 | + 'label' => sprintf(__('Enable Payment Request Buttons. (Apple Pay/Chrome Payment Request API) %1$sBy using Apple Pay, you agree to %2$s and %3$s\'s terms of service.', 'woocommerce-gateway-stripe'), '<br />', '<a href="https://stripe.com/apple-pay/legal" target="_blank">Stripe</a>', '<a href="https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/" target="_blank">Apple</a>'), |
|
112 | 112 | 'type' => 'checkbox', |
113 | - 'description' => __( 'If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe' ), |
|
113 | + 'description' => __('If enabled, users will be able to pay using Apple Pay or Chrome Payment Request if supported by the browser.', 'woocommerce-gateway-stripe'), |
|
114 | 114 | 'default' => 'yes', |
115 | 115 | 'desc_tip' => true, |
116 | 116 | ), |
117 | 117 | 'payment_request_button_type' => array( |
118 | - 'title' => __( 'Payment Request Button Type', 'woocommerce-gateway-stripe' ), |
|
119 | - 'label' => __( 'Button Type', 'woocommerce-gateway-stripe' ), |
|
118 | + 'title' => __('Payment Request Button Type', 'woocommerce-gateway-stripe'), |
|
119 | + 'label' => __('Button Type', 'woocommerce-gateway-stripe'), |
|
120 | 120 | 'type' => 'select', |
121 | - 'description' => __( 'Select the button type you would like to show.', 'woocommerce-gateway-stripe' ), |
|
121 | + 'description' => __('Select the button type you would like to show.', 'woocommerce-gateway-stripe'), |
|
122 | 122 | 'default' => 'buy', |
123 | 123 | 'desc_tip' => true, |
124 | 124 | 'options' => array( |
125 | - 'default' => __( 'Default', 'woocommerce-gateway-stripe' ), |
|
126 | - 'buy' => __( 'Buy', 'woocommerce-gateway-stripe' ), |
|
127 | - 'donate' => __( 'Donate', 'woocommerce-gateway-stripe' ), |
|
125 | + 'default' => __('Default', 'woocommerce-gateway-stripe'), |
|
126 | + 'buy' => __('Buy', 'woocommerce-gateway-stripe'), |
|
127 | + 'donate' => __('Donate', 'woocommerce-gateway-stripe'), |
|
128 | 128 | ), |
129 | 129 | ), |
130 | 130 | 'payment_request_button_theme' => array( |
131 | - 'title' => __( 'Payment Request Button Theme', 'woocommerce-gateway-stripe' ), |
|
132 | - 'label' => __( 'Button Theme', 'woocommerce-gateway-stripe' ), |
|
131 | + 'title' => __('Payment Request Button Theme', 'woocommerce-gateway-stripe'), |
|
132 | + 'label' => __('Button Theme', 'woocommerce-gateway-stripe'), |
|
133 | 133 | 'type' => 'select', |
134 | - 'description' => __( 'Select the button theme you would like to show.', 'woocommerce-gateway-stripe' ), |
|
134 | + 'description' => __('Select the button theme you would like to show.', 'woocommerce-gateway-stripe'), |
|
135 | 135 | 'default' => 'dark', |
136 | 136 | 'desc_tip' => true, |
137 | 137 | 'options' => array( |
138 | - 'dark' => __( 'Dark', 'woocommerce-gateway-stripe' ), |
|
139 | - 'light' => __( 'Light', 'woocommerce-gateway-stripe' ), |
|
140 | - 'light-outline' => __( 'Light-Outline', 'woocommerce-gateway-stripe' ), |
|
138 | + 'dark' => __('Dark', 'woocommerce-gateway-stripe'), |
|
139 | + 'light' => __('Light', 'woocommerce-gateway-stripe'), |
|
140 | + 'light-outline' => __('Light-Outline', 'woocommerce-gateway-stripe'), |
|
141 | 141 | ), |
142 | 142 | ), |
143 | 143 | 'payment_request_button_height' => array( |
144 | - 'title' => __( 'Payment Request Button Height', 'woocommerce-gateway-stripe' ), |
|
145 | - 'label' => __( 'Button Height', 'woocommerce-gateway-stripe' ), |
|
144 | + 'title' => __('Payment Request Button Height', 'woocommerce-gateway-stripe'), |
|
145 | + 'label' => __('Button Height', 'woocommerce-gateway-stripe'), |
|
146 | 146 | 'type' => 'text', |
147 | - 'description' => __( 'Enter the height you would like the button to be in pixels. Width will always be 100%.', 'woocommerce-gateway-stripe' ), |
|
147 | + 'description' => __('Enter the height you would like the button to be in pixels. Width will always be 100%.', 'woocommerce-gateway-stripe'), |
|
148 | 148 | 'default' => '44', |
149 | 149 | 'desc_tip' => true, |
150 | 150 | ), |
151 | 151 | 'saved_cards' => array( |
152 | - 'title' => __( 'Saved Cards', 'woocommerce-gateway-stripe' ), |
|
153 | - 'label' => __( 'Enable Payment via Saved Cards', 'woocommerce-gateway-stripe' ), |
|
152 | + 'title' => __('Saved Cards', 'woocommerce-gateway-stripe'), |
|
153 | + 'label' => __('Enable Payment via Saved Cards', 'woocommerce-gateway-stripe'), |
|
154 | 154 | 'type' => 'checkbox', |
155 | - 'description' => __( 'If enabled, users will be able to pay with a saved card during checkout. Card details are saved on Stripe servers, not on your store.', 'woocommerce-gateway-stripe' ), |
|
155 | + 'description' => __('If enabled, users will be able to pay with a saved card during checkout. Card details are saved on Stripe servers, not on your store.', 'woocommerce-gateway-stripe'), |
|
156 | 156 | 'default' => 'yes', |
157 | 157 | 'desc_tip' => true, |
158 | 158 | ), |
159 | 159 | 'logging' => array( |
160 | - 'title' => __( 'Logging', 'woocommerce-gateway-stripe' ), |
|
161 | - 'label' => __( 'Log debug messages', 'woocommerce-gateway-stripe' ), |
|
160 | + 'title' => __('Logging', 'woocommerce-gateway-stripe'), |
|
161 | + 'label' => __('Log debug messages', 'woocommerce-gateway-stripe'), |
|
162 | 162 | 'type' => 'checkbox', |
163 | - 'description' => __( 'Save debug messages to the WooCommerce System Status log.', 'woocommerce-gateway-stripe' ), |
|
163 | + 'description' => __('Save debug messages to the WooCommerce System Status log.', 'woocommerce-gateway-stripe'), |
|
164 | 164 | 'default' => 'no', |
165 | 165 | 'desc_tip' => true, |
166 | 166 | ), |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * @since 4.0.0 |
7 | 7 | */ |
8 | 8 | |
9 | -if ( ! defined( 'ABSPATH' ) ) { |
|
9 | +if ( ! defined('ABSPATH')) { |
|
10 | 10 | exit; |
11 | 11 | } |
12 | 12 | |
@@ -64,41 +64,41 @@ discard block |
||
64 | 64 | */ |
65 | 65 | public function __construct() { |
66 | 66 | self::$_this = $this; |
67 | - $this->stripe_settings = get_option( 'woocommerce_stripe_settings', array() ); |
|
68 | - $this->testmode = ( ! empty( $this->stripe_settings['testmode'] ) && 'yes' === $this->stripe_settings['testmode'] ) ? true : false; |
|
69 | - $this->publishable_key = ! empty( $this->stripe_settings['publishable_key'] ) ? $this->stripe_settings['publishable_key'] : ''; |
|
70 | - $this->secret_key = ! empty( $this->stripe_settings['secret_key'] ) ? $this->stripe_settings['secret_key'] : ''; |
|
71 | - $this->total_label = ! empty( $this->stripe_settings['statement_descriptor'] ) ? WC_Stripe_Helper::clean_statement_descriptor( $this->stripe_settings['statement_descriptor'] ) : ''; |
|
67 | + $this->stripe_settings = get_option('woocommerce_stripe_settings', array()); |
|
68 | + $this->testmode = ( ! empty($this->stripe_settings['testmode']) && 'yes' === $this->stripe_settings['testmode']) ? true : false; |
|
69 | + $this->publishable_key = ! empty($this->stripe_settings['publishable_key']) ? $this->stripe_settings['publishable_key'] : ''; |
|
70 | + $this->secret_key = ! empty($this->stripe_settings['secret_key']) ? $this->stripe_settings['secret_key'] : ''; |
|
71 | + $this->total_label = ! empty($this->stripe_settings['statement_descriptor']) ? WC_Stripe_Helper::clean_statement_descriptor($this->stripe_settings['statement_descriptor']) : ''; |
|
72 | 72 | |
73 | - if ( $this->testmode ) { |
|
74 | - $this->publishable_key = ! empty( $this->stripe_settings['test_publishable_key'] ) ? $this->stripe_settings['test_publishable_key'] : ''; |
|
75 | - $this->secret_key = ! empty( $this->stripe_settings['test_secret_key'] ) ? $this->stripe_settings['test_secret_key'] : ''; |
|
73 | + if ($this->testmode) { |
|
74 | + $this->publishable_key = ! empty($this->stripe_settings['test_publishable_key']) ? $this->stripe_settings['test_publishable_key'] : ''; |
|
75 | + $this->secret_key = ! empty($this->stripe_settings['test_secret_key']) ? $this->stripe_settings['test_secret_key'] : ''; |
|
76 | 76 | } |
77 | 77 | |
78 | - $this->total_label = str_replace( "'", '', $this->total_label ) . apply_filters( 'wc_stripe_payment_request_total_label_suffix', ' (via WooCommerce)' ); |
|
78 | + $this->total_label = str_replace("'", '', $this->total_label) . apply_filters('wc_stripe_payment_request_total_label_suffix', ' (via WooCommerce)'); |
|
79 | 79 | |
80 | 80 | // Checks if Stripe Gateway is enabled. |
81 | - if ( empty( $this->stripe_settings ) || ( isset( $this->stripe_settings['enabled'] ) && 'yes' !== $this->stripe_settings['enabled'] ) ) { |
|
81 | + if (empty($this->stripe_settings) || (isset($this->stripe_settings['enabled']) && 'yes' !== $this->stripe_settings['enabled'])) { |
|
82 | 82 | return; |
83 | 83 | } |
84 | 84 | |
85 | 85 | // Checks if Payment Request is enabled. |
86 | - if ( ! isset( $this->stripe_settings['payment_request'] ) || 'yes' !== $this->stripe_settings['payment_request'] ) { |
|
86 | + if ( ! isset($this->stripe_settings['payment_request']) || 'yes' !== $this->stripe_settings['payment_request']) { |
|
87 | 87 | return; |
88 | 88 | } |
89 | 89 | |
90 | 90 | // Don't load for change payment method page. |
91 | - if ( isset( $_GET['change_payment_method'] ) ) { |
|
91 | + if (isset($_GET['change_payment_method'])) { |
|
92 | 92 | return; |
93 | 93 | } |
94 | 94 | |
95 | - $wc_default_country = substr( get_option( 'woocommerce_default_country' ), 0, 2 ); |
|
95 | + $wc_default_country = substr(get_option('woocommerce_default_country'), 0, 2); |
|
96 | 96 | |
97 | - if ( ! in_array( $wc_default_country, $this->get_stripe_supported_countries() ) ) { |
|
97 | + if ( ! in_array($wc_default_country, $this->get_stripe_supported_countries())) { |
|
98 | 98 | return; |
99 | 99 | } |
100 | 100 | |
101 | - add_action( 'template_redirect', array( $this, 'set_session' ) ); |
|
101 | + add_action('template_redirect', array($this, 'set_session')); |
|
102 | 102 | $this->init(); |
103 | 103 | } |
104 | 104 | |
@@ -109,7 +109,7 @@ discard block |
||
109 | 109 | * @return array The list of countries. |
110 | 110 | */ |
111 | 111 | public function get_stripe_supported_countries() { |
112 | - return apply_filters( 'wc_stripe_supported_countries', array( 'AT', 'AU', 'BE', 'BR', 'CA', 'CH', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'HK', 'IE', 'IN', 'IT', 'JP', 'LT', 'LU', 'LV', 'MX', 'NL', 'NZ', 'NO', 'PH', 'PL', 'PR', 'PT', 'RO', 'SE', 'SG', 'SK', 'US' ) ); |
|
112 | + return apply_filters('wc_stripe_supported_countries', array('AT', 'AU', 'BE', 'BR', 'CA', 'CH', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'HK', 'IE', 'IN', 'IT', 'JP', 'LT', 'LU', 'LV', 'MX', 'NL', 'NZ', 'NO', 'PH', 'PL', 'PR', 'PT', 'RO', 'SE', 'SG', 'SK', 'US')); |
|
113 | 113 | } |
114 | 114 | |
115 | 115 | /** |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | * @return bool |
120 | 120 | */ |
121 | 121 | public function are_keys_set() { |
122 | - if ( empty( $this->secret_key ) || empty( $this->publishable_key ) ) { |
|
122 | + if (empty($this->secret_key) || empty($this->publishable_key)) { |
|
123 | 123 | return false; |
124 | 124 | } |
125 | 125 | |
@@ -143,18 +143,18 @@ discard block |
||
143 | 143 | * @since 4.0.0 |
144 | 144 | */ |
145 | 145 | public function set_session() { |
146 | - if ( ! is_product() || ( isset( WC()->session ) && WC()->session->has_session() ) ) { |
|
146 | + if ( ! is_product() || (isset(WC()->session) && WC()->session->has_session())) { |
|
147 | 147 | return; |
148 | 148 | } |
149 | 149 | |
150 | - $session_class = apply_filters( 'woocommerce_session_handler', 'WC_Session_Handler' ); |
|
150 | + $session_class = apply_filters('woocommerce_session_handler', 'WC_Session_Handler'); |
|
151 | 151 | $wc_session = new $session_class(); |
152 | 152 | |
153 | - if ( version_compare( WC_VERSION, '3.3', '>=' ) ) { |
|
153 | + if (version_compare(WC_VERSION, '3.3', '>=')) { |
|
154 | 154 | $wc_session->init(); |
155 | 155 | } |
156 | 156 | |
157 | - $wc_session->set_customer_session_cookie( true ); |
|
157 | + $wc_session->set_customer_session_cookie(true); |
|
158 | 158 | } |
159 | 159 | |
160 | 160 | /** |
@@ -164,40 +164,40 @@ discard block |
||
164 | 164 | * @version 4.0.0 |
165 | 165 | */ |
166 | 166 | public function init() { |
167 | - add_action( 'wp_enqueue_scripts', array( $this, 'scripts' ) ); |
|
167 | + add_action('wp_enqueue_scripts', array($this, 'scripts')); |
|
168 | 168 | |
169 | 169 | /* |
170 | 170 | * In order to display the Payment Request button in the correct position, |
171 | 171 | * a new hook was added to WooCommerce 3.0. In older versions of WooCommerce, |
172 | 172 | * CSS is used to position the button. |
173 | 173 | */ |
174 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
175 | - add_action( 'woocommerce_after_add_to_cart_button', array( $this, 'display_payment_request_button_html' ), 1 ); |
|
176 | - add_action( 'woocommerce_after_add_to_cart_button', array( $this, 'display_payment_request_button_separator_html' ), 2 ); |
|
174 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
175 | + add_action('woocommerce_after_add_to_cart_button', array($this, 'display_payment_request_button_html'), 1); |
|
176 | + add_action('woocommerce_after_add_to_cart_button', array($this, 'display_payment_request_button_separator_html'), 2); |
|
177 | 177 | } else { |
178 | - add_action( 'woocommerce_after_add_to_cart_quantity', array( $this, 'display_payment_request_button_html' ), 1 ); |
|
179 | - add_action( 'woocommerce_after_add_to_cart_quantity', array( $this, 'display_payment_request_button_separator_html' ), 2 ); |
|
178 | + add_action('woocommerce_after_add_to_cart_quantity', array($this, 'display_payment_request_button_html'), 1); |
|
179 | + add_action('woocommerce_after_add_to_cart_quantity', array($this, 'display_payment_request_button_separator_html'), 2); |
|
180 | 180 | } |
181 | 181 | |
182 | - add_action( 'woocommerce_proceed_to_checkout', array( $this, 'display_payment_request_button_html' ), 1 ); |
|
183 | - add_action( 'woocommerce_proceed_to_checkout', array( $this, 'display_payment_request_button_separator_html' ), 2 ); |
|
182 | + add_action('woocommerce_proceed_to_checkout', array($this, 'display_payment_request_button_html'), 1); |
|
183 | + add_action('woocommerce_proceed_to_checkout', array($this, 'display_payment_request_button_separator_html'), 2); |
|
184 | 184 | |
185 | - add_action( 'woocommerce_checkout_before_customer_details', array( $this, 'display_payment_request_button_html' ), 1 ); |
|
186 | - add_action( 'woocommerce_checkout_before_customer_details', array( $this, 'display_payment_request_button_separator_html' ), 2 ); |
|
185 | + add_action('woocommerce_checkout_before_customer_details', array($this, 'display_payment_request_button_html'), 1); |
|
186 | + add_action('woocommerce_checkout_before_customer_details', array($this, 'display_payment_request_button_separator_html'), 2); |
|
187 | 187 | |
188 | - add_action( 'wc_ajax_wc_stripe_get_cart_details', array( $this, 'ajax_get_cart_details' ) ); |
|
189 | - add_action( 'wc_ajax_wc_stripe_get_shipping_options', array( $this, 'ajax_get_shipping_options' ) ); |
|
190 | - add_action( 'wc_ajax_wc_stripe_update_shipping_method', array( $this, 'ajax_update_shipping_method' ) ); |
|
191 | - add_action( 'wc_ajax_wc_stripe_create_order', array( $this, 'ajax_create_order' ) ); |
|
192 | - add_action( 'wc_ajax_wc_stripe_add_to_cart', array( $this, 'ajax_add_to_cart' ) ); |
|
193 | - add_action( 'wc_ajax_wc_stripe_get_selected_product_data', array( $this, 'ajax_get_selected_product_data' ) ); |
|
194 | - add_action( 'wc_ajax_wc_stripe_clear_cart', array( $this, 'ajax_clear_cart' ) ); |
|
195 | - add_action( 'wc_ajax_wc_stripe_log_errors', array( $this, 'ajax_log_errors' ) ); |
|
188 | + add_action('wc_ajax_wc_stripe_get_cart_details', array($this, 'ajax_get_cart_details')); |
|
189 | + add_action('wc_ajax_wc_stripe_get_shipping_options', array($this, 'ajax_get_shipping_options')); |
|
190 | + add_action('wc_ajax_wc_stripe_update_shipping_method', array($this, 'ajax_update_shipping_method')); |
|
191 | + add_action('wc_ajax_wc_stripe_create_order', array($this, 'ajax_create_order')); |
|
192 | + add_action('wc_ajax_wc_stripe_add_to_cart', array($this, 'ajax_add_to_cart')); |
|
193 | + add_action('wc_ajax_wc_stripe_get_selected_product_data', array($this, 'ajax_get_selected_product_data')); |
|
194 | + add_action('wc_ajax_wc_stripe_clear_cart', array($this, 'ajax_clear_cart')); |
|
195 | + add_action('wc_ajax_wc_stripe_log_errors', array($this, 'ajax_log_errors')); |
|
196 | 196 | |
197 | - add_filter( 'woocommerce_gateway_title', array( $this, 'filter_gateway_title' ), 10, 2 ); |
|
198 | - add_filter( 'woocommerce_validate_postcode', array( $this, 'postal_code_validation' ), 10, 3 ); |
|
197 | + add_filter('woocommerce_gateway_title', array($this, 'filter_gateway_title'), 10, 2); |
|
198 | + add_filter('woocommerce_validate_postcode', array($this, 'postal_code_validation'), 10, 3); |
|
199 | 199 | |
200 | - add_action( 'woocommerce_checkout_order_processed', array( $this, 'add_order_meta' ), 10, 2 ); |
|
200 | + add_action('woocommerce_checkout_order_processed', array($this, 'add_order_meta'), 10, 2); |
|
201 | 201 | } |
202 | 202 | |
203 | 203 | /** |
@@ -208,7 +208,7 @@ discard block |
||
208 | 208 | * @return string |
209 | 209 | */ |
210 | 210 | public function get_button_type() { |
211 | - return isset( $this->stripe_settings['payment_request_button_type'] ) ? $this->stripe_settings['payment_request_button_type'] : 'default'; |
|
211 | + return isset($this->stripe_settings['payment_request_button_type']) ? $this->stripe_settings['payment_request_button_type'] : 'default'; |
|
212 | 212 | } |
213 | 213 | |
214 | 214 | /** |
@@ -219,7 +219,7 @@ discard block |
||
219 | 219 | * @return string |
220 | 220 | */ |
221 | 221 | public function get_button_theme() { |
222 | - return isset( $this->stripe_settings['payment_request_button_theme'] ) ? $this->stripe_settings['payment_request_button_theme'] : 'dark'; |
|
222 | + return isset($this->stripe_settings['payment_request_button_theme']) ? $this->stripe_settings['payment_request_button_theme'] : 'dark'; |
|
223 | 223 | } |
224 | 224 | |
225 | 225 | /** |
@@ -230,7 +230,7 @@ discard block |
||
230 | 230 | * @return string |
231 | 231 | */ |
232 | 232 | public function get_button_height() { |
233 | - return isset( $this->stripe_settings['payment_request_button_height'] ) ? str_replace( 'px', '', $this->stripe_settings['payment_request_button_height'] ) : '64'; |
|
233 | + return isset($this->stripe_settings['payment_request_button_height']) ? str_replace('px', '', $this->stripe_settings['payment_request_button_height']) : '64'; |
|
234 | 234 | } |
235 | 235 | |
236 | 236 | /** |
@@ -240,40 +240,40 @@ discard block |
||
240 | 240 | * @version 4.0.0 |
241 | 241 | */ |
242 | 242 | public function get_product_data() { |
243 | - if ( ! is_product() ) { |
|
243 | + if ( ! is_product()) { |
|
244 | 244 | return false; |
245 | 245 | } |
246 | 246 | |
247 | 247 | global $post; |
248 | 248 | |
249 | - $product = wc_get_product( $post->ID ); |
|
249 | + $product = wc_get_product($post->ID); |
|
250 | 250 | |
251 | 251 | $data = array(); |
252 | 252 | $items = array(); |
253 | 253 | |
254 | 254 | $items[] = array( |
255 | - 'label' => WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->name : $product->get_name(), |
|
256 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->price : $product->get_price() ), |
|
255 | + 'label' => WC_Stripe_Helper::is_wc_lt('3.0') ? $product->name : $product->get_name(), |
|
256 | + 'amount' => WC_Stripe_Helper::get_stripe_amount(WC_Stripe_Helper::is_wc_lt('3.0') ? $product->price : $product->get_price()), |
|
257 | 257 | ); |
258 | 258 | |
259 | - if ( wc_tax_enabled() ) { |
|
259 | + if (wc_tax_enabled()) { |
|
260 | 260 | $items[] = array( |
261 | - 'label' => __( 'Tax', 'woocommerce-gateway-stripe' ), |
|
261 | + 'label' => __('Tax', 'woocommerce-gateway-stripe'), |
|
262 | 262 | 'amount' => 0, |
263 | 263 | 'pending' => true, |
264 | 264 | ); |
265 | 265 | } |
266 | 266 | |
267 | - if ( wc_shipping_enabled() && $product->needs_shipping() ) { |
|
267 | + if (wc_shipping_enabled() && $product->needs_shipping()) { |
|
268 | 268 | $items[] = array( |
269 | - 'label' => __( 'Shipping', 'woocommerce-gateway-stripe' ), |
|
269 | + 'label' => __('Shipping', 'woocommerce-gateway-stripe'), |
|
270 | 270 | 'amount' => 0, |
271 | 271 | 'pending' => true, |
272 | 272 | ); |
273 | 273 | |
274 | 274 | $data['shippingOptions'] = array( |
275 | 275 | 'id' => 'pending', |
276 | - 'label' => __( 'Pending', 'woocommerce-gateway-stripe' ), |
|
276 | + 'label' => __('Pending', 'woocommerce-gateway-stripe'), |
|
277 | 277 | 'detail' => '', |
278 | 278 | 'amount' => 0, |
279 | 279 | ); |
@@ -281,41 +281,41 @@ discard block |
||
281 | 281 | |
282 | 282 | $data['displayItems'] = $items; |
283 | 283 | $data['total'] = array( |
284 | - 'label' => apply_filters( 'wc_stripe_payment_request_total_label', $this->total_label ), |
|
285 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->price : $product->get_price() ), |
|
284 | + 'label' => apply_filters('wc_stripe_payment_request_total_label', $this->total_label), |
|
285 | + 'amount' => WC_Stripe_Helper::get_stripe_amount(WC_Stripe_Helper::is_wc_lt('3.0') ? $product->price : $product->get_price()), |
|
286 | 286 | 'pending' => true, |
287 | 287 | ); |
288 | 288 | |
289 | - $data['requestShipping'] = ( wc_shipping_enabled() && $product->needs_shipping() ); |
|
290 | - $data['currency'] = strtolower( get_woocommerce_currency() ); |
|
291 | - $data['country_code'] = substr( get_option( 'woocommerce_default_country' ), 0, 2 ); |
|
289 | + $data['requestShipping'] = (wc_shipping_enabled() && $product->needs_shipping()); |
|
290 | + $data['currency'] = strtolower(get_woocommerce_currency()); |
|
291 | + $data['country_code'] = substr(get_option('woocommerce_default_country'), 0, 2); |
|
292 | 292 | |
293 | - return apply_filters( 'wc_stripe_payment_request_product_data', $data, $product ); |
|
293 | + return apply_filters('wc_stripe_payment_request_product_data', $data, $product); |
|
294 | 294 | } |
295 | 295 | |
296 | 296 | /** |
297 | 297 | * Filters the gateway title to reflect Payment Request type |
298 | 298 | * |
299 | 299 | */ |
300 | - public function filter_gateway_title( $title, $id ) { |
|
300 | + public function filter_gateway_title($title, $id) { |
|
301 | 301 | global $post; |
302 | 302 | |
303 | - if ( ! is_object( $post ) ) { |
|
303 | + if ( ! is_object($post)) { |
|
304 | 304 | return $title; |
305 | 305 | } |
306 | 306 | |
307 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
308 | - $method_title = get_post_meta( $post->ID, '_payment_method_title', true ); |
|
307 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
308 | + $method_title = get_post_meta($post->ID, '_payment_method_title', true); |
|
309 | 309 | } else { |
310 | - $order = wc_get_order( $post->ID ); |
|
311 | - $method_title = is_object( $order ) ? $order->get_payment_method_title() : ''; |
|
310 | + $order = wc_get_order($post->ID); |
|
311 | + $method_title = is_object($order) ? $order->get_payment_method_title() : ''; |
|
312 | 312 | } |
313 | 313 | |
314 | - if ( 'stripe' === $id && ! empty( $method_title ) && 'Apple Pay (Stripe)' === $method_title ) { |
|
314 | + if ('stripe' === $id && ! empty($method_title) && 'Apple Pay (Stripe)' === $method_title) { |
|
315 | 315 | return $method_title; |
316 | 316 | } |
317 | 317 | |
318 | - if ( 'stripe' === $id && ! empty( $method_title ) && 'Chrome Payment Request (Stripe)' === $method_title ) { |
|
318 | + if ('stripe' === $id && ! empty($method_title) && 'Chrome Payment Request (Stripe)' === $method_title) { |
|
319 | 319 | return $method_title; |
320 | 320 | } |
321 | 321 | |
@@ -328,16 +328,16 @@ discard block |
||
328 | 328 | * @since 3.1.4 |
329 | 329 | * @version 4.0.0 |
330 | 330 | */ |
331 | - public function postal_code_validation( $valid, $postcode, $country ) { |
|
331 | + public function postal_code_validation($valid, $postcode, $country) { |
|
332 | 332 | $gateways = WC()->payment_gateways->get_available_payment_gateways(); |
333 | 333 | |
334 | - if ( ! isset( $gateways['stripe'] ) ) { |
|
334 | + if ( ! isset($gateways['stripe'])) { |
|
335 | 335 | return $valid; |
336 | 336 | } |
337 | 337 | |
338 | - $payment_request_type = isset( $_POST['payment_request_type'] ) ? wc_clean( $_POST['payment_request_type'] ) : ''; |
|
338 | + $payment_request_type = isset($_POST['payment_request_type']) ? wc_clean($_POST['payment_request_type']) : ''; |
|
339 | 339 | |
340 | - if ( 'apple_pay' !== $payment_request_type ) { |
|
340 | + if ('apple_pay' !== $payment_request_type) { |
|
341 | 341 | return $valid; |
342 | 342 | } |
343 | 343 | |
@@ -347,7 +347,7 @@ discard block |
||
347 | 347 | * the order and not let it go through. The remedy for now is just to remove this validation. |
348 | 348 | * Note that this only works with shipping providers that don't validate full postal codes. |
349 | 349 | */ |
350 | - if ( 'GB' === $country || 'CA' === $country ) { |
|
350 | + if ('GB' === $country || 'CA' === $country) { |
|
351 | 351 | return true; |
352 | 352 | } |
353 | 353 | |
@@ -362,29 +362,29 @@ discard block |
||
362 | 362 | * @param int $order_id |
363 | 363 | * @param array $posted_data The posted data from checkout form. |
364 | 364 | */ |
365 | - public function add_order_meta( $order_id, $posted_data ) { |
|
366 | - if ( empty( $_POST['payment_request_type'] ) ) { |
|
365 | + public function add_order_meta($order_id, $posted_data) { |
|
366 | + if (empty($_POST['payment_request_type'])) { |
|
367 | 367 | return; |
368 | 368 | } |
369 | 369 | |
370 | - $order = wc_get_order( $order_id ); |
|
370 | + $order = wc_get_order($order_id); |
|
371 | 371 | |
372 | - $payment_request_type = wc_clean( $_POST['payment_request_type'] ); |
|
372 | + $payment_request_type = wc_clean($_POST['payment_request_type']); |
|
373 | 373 | |
374 | - if ( 'apple_pay' === $payment_request_type ) { |
|
375 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
376 | - update_post_meta( $order_id, '_payment_method_title', 'Apple Pay (Stripe)' ); |
|
374 | + if ('apple_pay' === $payment_request_type) { |
|
375 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
376 | + update_post_meta($order_id, '_payment_method_title', 'Apple Pay (Stripe)'); |
|
377 | 377 | } else { |
378 | - $order->set_payment_method_title( 'Apple Pay (Stripe)' ); |
|
378 | + $order->set_payment_method_title('Apple Pay (Stripe)'); |
|
379 | 379 | $order->save(); |
380 | 380 | } |
381 | 381 | } |
382 | 382 | |
383 | - if ( 'payment_request_api' === $payment_request_type ) { |
|
384 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
385 | - update_post_meta( $order_id, '_payment_method_title', 'Chrome Payment Request (Stripe)' ); |
|
383 | + if ('payment_request_api' === $payment_request_type) { |
|
384 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
385 | + update_post_meta($order_id, '_payment_method_title', 'Chrome Payment Request (Stripe)'); |
|
386 | 386 | } else { |
387 | - $order->set_payment_method_title( 'Chrome Payment Request (Stripe)' ); |
|
387 | + $order->set_payment_method_title('Chrome Payment Request (Stripe)'); |
|
388 | 388 | $order->save(); |
389 | 389 | } |
390 | 390 | } |
@@ -423,20 +423,20 @@ discard block |
||
423 | 423 | * @return bool |
424 | 424 | */ |
425 | 425 | public function allowed_items_in_cart() { |
426 | - foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { |
|
427 | - $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); |
|
426 | + foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) { |
|
427 | + $_product = apply_filters('woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key); |
|
428 | 428 | |
429 | - if ( ! in_array( ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $_product->product_type : $_product->get_type() ), $this->supported_product_types() ) ) { |
|
429 | + if ( ! in_array((WC_Stripe_Helper::is_wc_lt('3.0') ? $_product->product_type : $_product->get_type()), $this->supported_product_types())) { |
|
430 | 430 | return false; |
431 | 431 | } |
432 | 432 | |
433 | 433 | // Trial subscriptions with shipping are not supported |
434 | - if ( class_exists( 'WC_Subscriptions_Order' ) && WC_Subscriptions_Cart::cart_contains_subscription() && $_product->needs_shipping() && WC_Subscriptions_Product::get_trial_length( $_product ) > 0 ) { |
|
434 | + if (class_exists('WC_Subscriptions_Order') && WC_Subscriptions_Cart::cart_contains_subscription() && $_product->needs_shipping() && WC_Subscriptions_Product::get_trial_length($_product) > 0) { |
|
435 | 435 | return false; |
436 | 436 | } |
437 | 437 | |
438 | 438 | // Pre Orders compatbility where we don't support charge upon release. |
439 | - if ( class_exists( 'WC_Pre_Orders_Order' ) && WC_Pre_Orders_Cart::cart_contains_pre_order() && WC_Pre_Orders_Product::product_is_charged_upon_release( WC_Pre_Orders_Cart::get_pre_order_product() ) ) { |
|
439 | + if (class_exists('WC_Pre_Orders_Order') && WC_Pre_Orders_Cart::cart_contains_pre_order() && WC_Pre_Orders_Product::product_is_charged_upon_release(WC_Pre_Orders_Cart::get_pre_order_product())) { |
|
440 | 440 | return false; |
441 | 441 | } |
442 | 442 | } |
@@ -452,83 +452,83 @@ discard block |
||
452 | 452 | */ |
453 | 453 | public function scripts() { |
454 | 454 | // If keys are not set bail. |
455 | - if ( ! $this->are_keys_set() ) { |
|
456 | - WC_Stripe_Logger::log( 'Keys are not set correctly.' ); |
|
455 | + if ( ! $this->are_keys_set()) { |
|
456 | + WC_Stripe_Logger::log('Keys are not set correctly.'); |
|
457 | 457 | return; |
458 | 458 | } |
459 | 459 | |
460 | 460 | // If no SSL bail. |
461 | - if ( ! $this->testmode && ! is_ssl() ) { |
|
462 | - WC_Stripe_Logger::log( 'Stripe Payment Request live mode requires SSL.' ); |
|
461 | + if ( ! $this->testmode && ! is_ssl()) { |
|
462 | + WC_Stripe_Logger::log('Stripe Payment Request live mode requires SSL.'); |
|
463 | 463 | return; |
464 | 464 | } |
465 | 465 | |
466 | - if ( ! is_product() && ! is_cart() && ! is_checkout() && ! isset( $_GET['pay_for_order'] ) ) { |
|
466 | + if ( ! is_product() && ! is_cart() && ! is_checkout() && ! isset($_GET['pay_for_order'])) { |
|
467 | 467 | return; |
468 | 468 | } |
469 | 469 | |
470 | - if ( is_product() ) { |
|
470 | + if (is_product()) { |
|
471 | 471 | global $post; |
472 | 472 | |
473 | - $product = wc_get_product( $post->ID ); |
|
473 | + $product = wc_get_product($post->ID); |
|
474 | 474 | |
475 | - if ( ! is_object( $product ) || ! in_array( ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ), $this->supported_product_types() ) ) { |
|
475 | + if ( ! is_object($product) || ! in_array((WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type()), $this->supported_product_types())) { |
|
476 | 476 | return; |
477 | 477 | } |
478 | 478 | |
479 | - if ( apply_filters( 'wc_stripe_hide_payment_request_on_product_page', false, $post ) ) { |
|
479 | + if (apply_filters('wc_stripe_hide_payment_request_on_product_page', false, $post)) { |
|
480 | 480 | return; |
481 | 481 | } |
482 | 482 | } |
483 | 483 | |
484 | - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
|
484 | + $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; |
|
485 | 485 | |
486 | 486 | $stripe_params = array( |
487 | - 'ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ), |
|
487 | + 'ajax_url' => WC_AJAX::get_endpoint('%%endpoint%%'), |
|
488 | 488 | 'stripe' => array( |
489 | 489 | 'key' => $this->publishable_key, |
490 | - 'allow_prepaid_card' => apply_filters( 'wc_stripe_allow_prepaid_card', true ) ? 'yes' : 'no', |
|
490 | + 'allow_prepaid_card' => apply_filters('wc_stripe_allow_prepaid_card', true) ? 'yes' : 'no', |
|
491 | 491 | ), |
492 | 492 | 'nonce' => array( |
493 | - 'payment' => wp_create_nonce( 'wc-stripe-payment-request' ), |
|
494 | - 'shipping' => wp_create_nonce( 'wc-stripe-payment-request-shipping' ), |
|
495 | - 'update_shipping' => wp_create_nonce( 'wc-stripe-update-shipping-method' ), |
|
496 | - 'checkout' => wp_create_nonce( 'woocommerce-process_checkout' ), |
|
497 | - 'add_to_cart' => wp_create_nonce( 'wc-stripe-add-to-cart' ), |
|
498 | - 'get_selected_product_data' => wp_create_nonce( 'wc-stripe-get-selected-product-data' ), |
|
499 | - 'log_errors' => wp_create_nonce( 'wc-stripe-log-errors' ), |
|
500 | - 'clear_cart' => wp_create_nonce( 'wc-stripe-clear-cart' ), |
|
493 | + 'payment' => wp_create_nonce('wc-stripe-payment-request'), |
|
494 | + 'shipping' => wp_create_nonce('wc-stripe-payment-request-shipping'), |
|
495 | + 'update_shipping' => wp_create_nonce('wc-stripe-update-shipping-method'), |
|
496 | + 'checkout' => wp_create_nonce('woocommerce-process_checkout'), |
|
497 | + 'add_to_cart' => wp_create_nonce('wc-stripe-add-to-cart'), |
|
498 | + 'get_selected_product_data' => wp_create_nonce('wc-stripe-get-selected-product-data'), |
|
499 | + 'log_errors' => wp_create_nonce('wc-stripe-log-errors'), |
|
500 | + 'clear_cart' => wp_create_nonce('wc-stripe-clear-cart'), |
|
501 | 501 | ), |
502 | 502 | 'i18n' => array( |
503 | - 'no_prepaid_card' => __( 'Sorry, we\'re not accepting prepaid cards at this time.', 'woocommerce-gateway-stripe' ), |
|
503 | + 'no_prepaid_card' => __('Sorry, we\'re not accepting prepaid cards at this time.', 'woocommerce-gateway-stripe'), |
|
504 | 504 | /* translators: Do not translate the [option] placeholder */ |
505 | - 'unknown_shipping' => __( 'Unknown shipping option "[option]".', 'woocommerce-gateway-stripe' ), |
|
505 | + 'unknown_shipping' => __('Unknown shipping option "[option]".', 'woocommerce-gateway-stripe'), |
|
506 | 506 | ), |
507 | 507 | 'checkout' => array( |
508 | 508 | 'url' => wc_get_checkout_url(), |
509 | - 'currency_code' => strtolower( get_woocommerce_currency() ), |
|
510 | - 'country_code' => substr( get_option( 'woocommerce_default_country' ), 0, 2 ), |
|
509 | + 'currency_code' => strtolower(get_woocommerce_currency()), |
|
510 | + 'country_code' => substr(get_option('woocommerce_default_country'), 0, 2), |
|
511 | 511 | 'needs_shipping' => WC()->cart->needs_shipping() ? 'yes' : 'no', |
512 | 512 | ), |
513 | 513 | 'button' => array( |
514 | 514 | 'type' => $this->get_button_type(), |
515 | 515 | 'theme' => $this->get_button_theme(), |
516 | 516 | 'height' => $this->get_button_height(), |
517 | - 'locale' => apply_filters( 'wc_stripe_payment_request_button_locale', substr( get_locale(), 0, 2 ) ), // Default format is en_US. |
|
517 | + 'locale' => apply_filters('wc_stripe_payment_request_button_locale', substr(get_locale(), 0, 2)), // Default format is en_US. |
|
518 | 518 | ), |
519 | 519 | 'is_product_page' => is_product(), |
520 | 520 | 'product' => $this->get_product_data(), |
521 | 521 | ); |
522 | 522 | |
523 | - wp_register_script( 'stripe', 'https://js.stripe.com/v3/', '', '3.0', true ); |
|
524 | - wp_register_script( 'wc_stripe_payment_request', plugins_url( 'assets/js/stripe-payment-request' . $suffix . '.js', WC_STRIPE_MAIN_FILE ), array( 'jquery', 'stripe' ), WC_STRIPE_VERSION, true ); |
|
523 | + wp_register_script('stripe', 'https://js.stripe.com/v3/', '', '3.0', true); |
|
524 | + wp_register_script('wc_stripe_payment_request', plugins_url('assets/js/stripe-payment-request' . $suffix . '.js', WC_STRIPE_MAIN_FILE), array('jquery', 'stripe'), WC_STRIPE_VERSION, true); |
|
525 | 525 | |
526 | - wp_localize_script( 'wc_stripe_payment_request', 'wc_stripe_payment_request_params', apply_filters( 'wc_stripe_payment_request_params', $stripe_params ) ); |
|
526 | + wp_localize_script('wc_stripe_payment_request', 'wc_stripe_payment_request_params', apply_filters('wc_stripe_payment_request_params', $stripe_params)); |
|
527 | 527 | |
528 | - wp_enqueue_script( 'wc_stripe_payment_request' ); |
|
528 | + wp_enqueue_script('wc_stripe_payment_request'); |
|
529 | 529 | |
530 | 530 | $gateways = WC()->payment_gateways->get_available_payment_gateways(); |
531 | - if ( isset( $gateways['stripe'] ) ) { |
|
531 | + if (isset($gateways['stripe'])) { |
|
532 | 532 | $gateways['stripe']->payment_scripts(); |
533 | 533 | } |
534 | 534 | } |
@@ -544,42 +544,42 @@ discard block |
||
544 | 544 | |
545 | 545 | $gateways = WC()->payment_gateways->get_available_payment_gateways(); |
546 | 546 | |
547 | - if ( ! isset( $gateways['stripe'] ) ) { |
|
547 | + if ( ! isset($gateways['stripe'])) { |
|
548 | 548 | return; |
549 | 549 | } |
550 | 550 | |
551 | - if ( ! is_cart() && ! is_checkout() && ! is_product() && ! isset( $_GET['pay_for_order'] ) ) { |
|
551 | + if ( ! is_cart() && ! is_checkout() && ! is_product() && ! isset($_GET['pay_for_order'])) { |
|
552 | 552 | return; |
553 | 553 | } |
554 | 554 | |
555 | - if ( is_product() && apply_filters( 'wc_stripe_hide_payment_request_on_product_page', false, $post ) ) { |
|
555 | + if (is_product() && apply_filters('wc_stripe_hide_payment_request_on_product_page', false, $post)) { |
|
556 | 556 | return; |
557 | 557 | } |
558 | 558 | |
559 | - if ( is_checkout() && ! apply_filters( 'wc_stripe_show_payment_request_on_checkout', false, $post ) ) { |
|
559 | + if (is_checkout() && ! apply_filters('wc_stripe_show_payment_request_on_checkout', false, $post)) { |
|
560 | 560 | return; |
561 | 561 | } |
562 | 562 | |
563 | - if ( is_product() ) { |
|
564 | - $product = wc_get_product( $post->ID ); |
|
563 | + if (is_product()) { |
|
564 | + $product = wc_get_product($post->ID); |
|
565 | 565 | |
566 | - if ( ! is_object( $product ) || ! in_array( ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ), $this->supported_product_types() ) ) { |
|
566 | + if ( ! is_object($product) || ! in_array((WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type()), $this->supported_product_types())) { |
|
567 | 567 | return; |
568 | 568 | } |
569 | 569 | |
570 | 570 | // Trial subscriptions with shipping are not supported |
571 | - if ( class_exists( 'WC_Subscriptions_Order' ) && $product->needs_shipping() && WC_Subscriptions_Product::get_trial_length( $product ) > 0 ) { |
|
571 | + if (class_exists('WC_Subscriptions_Order') && $product->needs_shipping() && WC_Subscriptions_Product::get_trial_length($product) > 0) { |
|
572 | 572 | return; |
573 | 573 | } |
574 | 574 | |
575 | 575 | // Pre Orders charge upon release not supported. |
576 | - if ( class_exists( 'WC_Pre_Orders_Order' ) && WC_Pre_Orders_Product::product_is_charged_upon_release( $product ) ) { |
|
577 | - WC_Stripe_Logger::log( 'Pre Order charge upon release is not supported. ( Payment Request button disabled )' ); |
|
576 | + if (class_exists('WC_Pre_Orders_Order') && WC_Pre_Orders_Product::product_is_charged_upon_release($product)) { |
|
577 | + WC_Stripe_Logger::log('Pre Order charge upon release is not supported. ( Payment Request button disabled )'); |
|
578 | 578 | return; |
579 | 579 | } |
580 | 580 | } else { |
581 | - if ( ! $this->allowed_items_in_cart() ) { |
|
582 | - WC_Stripe_Logger::log( 'Items in the cart has unsupported product type ( Payment Request button disabled )' ); |
|
581 | + if ( ! $this->allowed_items_in_cart()) { |
|
582 | + WC_Stripe_Logger::log('Items in the cart has unsupported product type ( Payment Request button disabled )'); |
|
583 | 583 | return; |
584 | 584 | } |
585 | 585 | } |
@@ -603,47 +603,47 @@ discard block |
||
603 | 603 | |
604 | 604 | $gateways = WC()->payment_gateways->get_available_payment_gateways(); |
605 | 605 | |
606 | - if ( ! isset( $gateways['stripe'] ) ) { |
|
606 | + if ( ! isset($gateways['stripe'])) { |
|
607 | 607 | return; |
608 | 608 | } |
609 | 609 | |
610 | - if ( ! is_cart() && ! is_checkout() && ! is_product() && ! isset( $_GET['pay_for_order'] ) ) { |
|
610 | + if ( ! is_cart() && ! is_checkout() && ! is_product() && ! isset($_GET['pay_for_order'])) { |
|
611 | 611 | return; |
612 | 612 | } |
613 | 613 | |
614 | - if ( is_product() && apply_filters( 'wc_stripe_hide_payment_request_on_product_page', false, $post ) ) { |
|
614 | + if (is_product() && apply_filters('wc_stripe_hide_payment_request_on_product_page', false, $post)) { |
|
615 | 615 | return; |
616 | 616 | } |
617 | 617 | |
618 | - if ( is_checkout() && ! apply_filters( 'wc_stripe_show_payment_request_on_checkout', false, $post ) ) { |
|
618 | + if (is_checkout() && ! apply_filters('wc_stripe_show_payment_request_on_checkout', false, $post)) { |
|
619 | 619 | return; |
620 | 620 | } |
621 | 621 | |
622 | - if ( is_product() ) { |
|
623 | - $product = wc_get_product( $post->ID ); |
|
622 | + if (is_product()) { |
|
623 | + $product = wc_get_product($post->ID); |
|
624 | 624 | |
625 | - if ( ! is_object( $product ) || ! in_array( ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ), $this->supported_product_types() ) ) { |
|
625 | + if ( ! is_object($product) || ! in_array((WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type()), $this->supported_product_types())) { |
|
626 | 626 | return; |
627 | 627 | } |
628 | 628 | |
629 | 629 | // Trial subscriptions with shipping are not supported |
630 | - if ( class_exists( 'WC_Subscriptions_Order' ) && $product->needs_shipping() && WC_Subscriptions_Product::get_trial_length( $product ) > 0 ) { |
|
630 | + if (class_exists('WC_Subscriptions_Order') && $product->needs_shipping() && WC_Subscriptions_Product::get_trial_length($product) > 0) { |
|
631 | 631 | return; |
632 | 632 | } |
633 | 633 | |
634 | 634 | // Pre Orders charge upon release not supported. |
635 | - if ( class_exists( 'WC_Pre_Orders_Order' ) && WC_Pre_Orders_Product::product_is_charged_upon_release( $product ) ) { |
|
636 | - WC_Stripe_Logger::log( 'Pre Order charge upon release is not supported. ( Payment Request button disabled )' ); |
|
635 | + if (class_exists('WC_Pre_Orders_Order') && WC_Pre_Orders_Product::product_is_charged_upon_release($product)) { |
|
636 | + WC_Stripe_Logger::log('Pre Order charge upon release is not supported. ( Payment Request button disabled )'); |
|
637 | 637 | return; |
638 | 638 | } |
639 | 639 | } else { |
640 | - if ( ! $this->allowed_items_in_cart() ) { |
|
641 | - WC_Stripe_Logger::log( 'Items in the cart has unsupported product type ( Payment Request button disabled )' ); |
|
640 | + if ( ! $this->allowed_items_in_cart()) { |
|
641 | + WC_Stripe_Logger::log('Items in the cart has unsupported product type ( Payment Request button disabled )'); |
|
642 | 642 | return; |
643 | 643 | } |
644 | 644 | } |
645 | 645 | ?> |
646 | - <p id="wc-stripe-payment-request-button-separator" style="margin-top:1.5em;text-align:center;display:none;">— <?php esc_html_e( 'OR', 'woocommerce-gateway-stripe' ); ?> —</p> |
|
646 | + <p id="wc-stripe-payment-request-button-separator" style="margin-top:1.5em;text-align:center;display:none;">— <?php esc_html_e('OR', 'woocommerce-gateway-stripe'); ?> —</p> |
|
647 | 647 | <?php |
648 | 648 | } |
649 | 649 | |
@@ -654,11 +654,11 @@ discard block |
||
654 | 654 | * @version 4.0.0 |
655 | 655 | */ |
656 | 656 | public function ajax_log_errors() { |
657 | - check_ajax_referer( 'wc-stripe-log-errors', 'security' ); |
|
657 | + check_ajax_referer('wc-stripe-log-errors', 'security'); |
|
658 | 658 | |
659 | - $errors = wc_clean( stripslashes( $_POST['errors'] ) ); |
|
659 | + $errors = wc_clean(stripslashes($_POST['errors'])); |
|
660 | 660 | |
661 | - WC_Stripe_Logger::log( $errors ); |
|
661 | + WC_Stripe_Logger::log($errors); |
|
662 | 662 | |
663 | 663 | exit; |
664 | 664 | } |
@@ -670,7 +670,7 @@ discard block |
||
670 | 670 | * @version 4.0.0 |
671 | 671 | */ |
672 | 672 | public function ajax_clear_cart() { |
673 | - check_ajax_referer( 'wc-stripe-clear-cart', 'security' ); |
|
673 | + check_ajax_referer('wc-stripe-clear-cart', 'security'); |
|
674 | 674 | |
675 | 675 | WC()->cart->empty_cart(); |
676 | 676 | exit; |
@@ -680,10 +680,10 @@ discard block |
||
680 | 680 | * Get cart details. |
681 | 681 | */ |
682 | 682 | public function ajax_get_cart_details() { |
683 | - check_ajax_referer( 'wc-stripe-payment-request', 'security' ); |
|
683 | + check_ajax_referer('wc-stripe-payment-request', 'security'); |
|
684 | 684 | |
685 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
686 | - define( 'WOOCOMMERCE_CART', true ); |
|
685 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
686 | + define('WOOCOMMERCE_CART', true); |
|
687 | 687 | } |
688 | 688 | |
689 | 689 | WC()->cart->calculate_totals(); |
@@ -694,14 +694,14 @@ discard block |
||
694 | 694 | $data = array( |
695 | 695 | 'shipping_required' => WC()->cart->needs_shipping(), |
696 | 696 | 'order_data' => array( |
697 | - 'currency' => strtolower( $currency ), |
|
698 | - 'country_code' => substr( get_option( 'woocommerce_default_country' ), 0, 2 ), |
|
697 | + 'currency' => strtolower($currency), |
|
698 | + 'country_code' => substr(get_option('woocommerce_default_country'), 0, 2), |
|
699 | 699 | ), |
700 | 700 | ); |
701 | 701 | |
702 | 702 | $data['order_data'] += $this->build_display_items(); |
703 | 703 | |
704 | - wp_send_json( $data ); |
|
704 | + wp_send_json($data); |
|
705 | 705 | } |
706 | 706 | |
707 | 707 | /** |
@@ -712,7 +712,7 @@ discard block |
||
712 | 712 | * @see WC_Shipping::get_packages(). |
713 | 713 | */ |
714 | 714 | public function ajax_get_shipping_options() { |
715 | - check_ajax_referer( 'wc-stripe-payment-request-shipping', 'security' ); |
|
715 | + check_ajax_referer('wc-stripe-payment-request-shipping', 'security'); |
|
716 | 716 | |
717 | 717 | try { |
718 | 718 | // Set the shipping package. |
@@ -728,34 +728,34 @@ discard block |
||
728 | 728 | ) |
729 | 729 | ); |
730 | 730 | |
731 | - $this->calculate_shipping( apply_filters( 'wc_stripe_payment_request_shipping_posted_values', $posted ) ); |
|
731 | + $this->calculate_shipping(apply_filters('wc_stripe_payment_request_shipping_posted_values', $posted)); |
|
732 | 732 | |
733 | 733 | // Set the shipping options. |
734 | 734 | $data = array(); |
735 | 735 | $packages = WC()->shipping->get_packages(); |
736 | 736 | |
737 | - if ( ! empty( $packages ) && WC()->customer->has_calculated_shipping() ) { |
|
738 | - foreach ( $packages as $package_key => $package ) { |
|
739 | - if ( empty( $package['rates'] ) ) { |
|
740 | - throw new Exception( __( 'Unable to find shipping method for address.', 'woocommerce-gateway-stripe' ) ); |
|
737 | + if ( ! empty($packages) && WC()->customer->has_calculated_shipping()) { |
|
738 | + foreach ($packages as $package_key => $package) { |
|
739 | + if (empty($package['rates'])) { |
|
740 | + throw new Exception(__('Unable to find shipping method for address.', 'woocommerce-gateway-stripe')); |
|
741 | 741 | } |
742 | 742 | |
743 | - foreach ( $package['rates'] as $key => $rate ) { |
|
743 | + foreach ($package['rates'] as $key => $rate) { |
|
744 | 744 | $data['shipping_options'][] = array( |
745 | 745 | 'id' => $rate->id, |
746 | 746 | 'label' => $rate->label, |
747 | 747 | 'detail' => '', |
748 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $rate->cost ), |
|
748 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($rate->cost), |
|
749 | 749 | ); |
750 | 750 | } |
751 | 751 | } |
752 | 752 | } else { |
753 | - throw new Exception( __( 'Unable to find shipping method for address.', 'woocommerce-gateway-stripe' ) ); |
|
753 | + throw new Exception(__('Unable to find shipping method for address.', 'woocommerce-gateway-stripe')); |
|
754 | 754 | } |
755 | 755 | |
756 | - if ( isset( $data[0] ) ) { |
|
756 | + if (isset($data[0])) { |
|
757 | 757 | // Auto select the first shipping method. |
758 | - WC()->session->set( 'chosen_shipping_methods', array( $data[0]['id'] ) ); |
|
758 | + WC()->session->set('chosen_shipping_methods', array($data[0]['id'])); |
|
759 | 759 | } |
760 | 760 | |
761 | 761 | WC()->cart->calculate_totals(); |
@@ -763,12 +763,12 @@ discard block |
||
763 | 763 | $data += $this->build_display_items(); |
764 | 764 | $data['result'] = 'success'; |
765 | 765 | |
766 | - wp_send_json( $data ); |
|
767 | - } catch ( Exception $e ) { |
|
766 | + wp_send_json($data); |
|
767 | + } catch (Exception $e) { |
|
768 | 768 | $data += $this->build_display_items(); |
769 | 769 | $data['result'] = 'invalid_shipping_address'; |
770 | 770 | |
771 | - wp_send_json( $data ); |
|
771 | + wp_send_json($data); |
|
772 | 772 | } |
773 | 773 | } |
774 | 774 | |
@@ -776,22 +776,22 @@ discard block |
||
776 | 776 | * Update shipping method. |
777 | 777 | */ |
778 | 778 | public function ajax_update_shipping_method() { |
779 | - check_ajax_referer( 'wc-stripe-update-shipping-method', 'security' ); |
|
779 | + check_ajax_referer('wc-stripe-update-shipping-method', 'security'); |
|
780 | 780 | |
781 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
782 | - define( 'WOOCOMMERCE_CART', true ); |
|
781 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
782 | + define('WOOCOMMERCE_CART', true); |
|
783 | 783 | } |
784 | 784 | |
785 | - $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' ); |
|
786 | - $shipping_method = filter_input( INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY ); |
|
785 | + $chosen_shipping_methods = WC()->session->get('chosen_shipping_methods'); |
|
786 | + $shipping_method = filter_input(INPUT_POST, 'shipping_method', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); |
|
787 | 787 | |
788 | - if ( is_array( $shipping_method ) ) { |
|
789 | - foreach ( $shipping_method as $i => $value ) { |
|
790 | - $chosen_shipping_methods[ $i ] = wc_clean( $value ); |
|
788 | + if (is_array($shipping_method)) { |
|
789 | + foreach ($shipping_method as $i => $value) { |
|
790 | + $chosen_shipping_methods[$i] = wc_clean($value); |
|
791 | 791 | } |
792 | 792 | } |
793 | 793 | |
794 | - WC()->session->set( 'chosen_shipping_methods', $chosen_shipping_methods ); |
|
794 | + WC()->session->set('chosen_shipping_methods', $chosen_shipping_methods); |
|
795 | 795 | |
796 | 796 | WC()->cart->calculate_totals(); |
797 | 797 | |
@@ -799,7 +799,7 @@ discard block |
||
799 | 799 | $data += $this->build_display_items(); |
800 | 800 | $data['result'] = 'success'; |
801 | 801 | |
802 | - wp_send_json( $data ); |
|
802 | + wp_send_json($data); |
|
803 | 803 | } |
804 | 804 | |
805 | 805 | /** |
@@ -810,46 +810,46 @@ discard block |
||
810 | 810 | * @return array $data |
811 | 811 | */ |
812 | 812 | public function ajax_get_selected_product_data() { |
813 | - check_ajax_referer( 'wc-stripe-get-selected-product-data', 'security' ); |
|
813 | + check_ajax_referer('wc-stripe-get-selected-product-data', 'security'); |
|
814 | 814 | |
815 | 815 | try { |
816 | - $product_id = absint( $_POST['product_id'] ); |
|
817 | - $qty = ! isset( $_POST['qty'] ) ? 1 : apply_filters( 'woocommerce_add_to_cart_quantity', absint( $_POST['qty'] ), $product_id ); |
|
818 | - $product = wc_get_product( $product_id ); |
|
816 | + $product_id = absint($_POST['product_id']); |
|
817 | + $qty = ! isset($_POST['qty']) ? 1 : apply_filters('woocommerce_add_to_cart_quantity', absint($_POST['qty']), $product_id); |
|
818 | + $product = wc_get_product($product_id); |
|
819 | 819 | $variation_id = null; |
820 | 820 | |
821 | - if ( ! is_a( $product, 'WC_Product' ) ) { |
|
822 | - throw new Exception( sprintf( __( 'Product with the ID (%d) cannot be found.', 'woocommerce-gateway-stripe' ), $product_id ) ); |
|
821 | + if ( ! is_a($product, 'WC_Product')) { |
|
822 | + throw new Exception(sprintf(__('Product with the ID (%d) cannot be found.', 'woocommerce-gateway-stripe'), $product_id)); |
|
823 | 823 | } |
824 | 824 | |
825 | - if ( 'variable' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ) && isset( $_POST['attributes'] ) ) { |
|
826 | - $attributes = array_map( 'wc_clean', $_POST['attributes'] ); |
|
825 | + if ('variable' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type()) && isset($_POST['attributes'])) { |
|
826 | + $attributes = array_map('wc_clean', $_POST['attributes']); |
|
827 | 827 | |
828 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
829 | - $variation_id = $product->get_matching_variation( $attributes ); |
|
828 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
829 | + $variation_id = $product->get_matching_variation($attributes); |
|
830 | 830 | } else { |
831 | - $data_store = WC_Data_Store::load( 'product' ); |
|
832 | - $variation_id = $data_store->find_matching_product_variation( $product, $attributes ); |
|
831 | + $data_store = WC_Data_Store::load('product'); |
|
832 | + $variation_id = $data_store->find_matching_product_variation($product, $attributes); |
|
833 | 833 | } |
834 | 834 | |
835 | - if ( ! empty( $variation_id ) ) { |
|
836 | - $product = wc_get_product( $variation_id ); |
|
835 | + if ( ! empty($variation_id)) { |
|
836 | + $product = wc_get_product($variation_id); |
|
837 | 837 | } |
838 | - } elseif ( 'simple' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ) ) { |
|
839 | - $product = wc_get_product( $product_id ); |
|
838 | + } elseif ('simple' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type())) { |
|
839 | + $product = wc_get_product($product_id); |
|
840 | 840 | } |
841 | 841 | |
842 | 842 | // Force quantity to 1 if sold individually and check for existing item in cart. |
843 | - if ( $product->is_sold_individually() ) { |
|
844 | - $qty = apply_filters( 'wc_stripe_payment_request_add_to_cart_sold_individually_quantity', 1, $qty, $product_id, $variation_id ); |
|
843 | + if ($product->is_sold_individually()) { |
|
844 | + $qty = apply_filters('wc_stripe_payment_request_add_to_cart_sold_individually_quantity', 1, $qty, $product_id, $variation_id); |
|
845 | 845 | } |
846 | 846 | |
847 | - if ( ! $product->has_enough_stock( $qty ) ) { |
|
847 | + if ( ! $product->has_enough_stock($qty)) { |
|
848 | 848 | /* translators: 1: product name 2: quantity in stock */ |
849 | - throw new Exception( sprintf( __( 'You cannot add that amount of "%1$s"; to the cart because there is not enough stock (%2$s remaining).', 'woocommerce-gateway-stripe' ), $product->get_name(), wc_format_stock_quantity_for_display( $product->get_stock_quantity(), $product ) ) ); |
|
849 | + throw new Exception(sprintf(__('You cannot add that amount of "%1$s"; to the cart because there is not enough stock (%2$s remaining).', 'woocommerce-gateway-stripe'), $product->get_name(), wc_format_stock_quantity_for_display($product->get_stock_quantity(), $product))); |
|
850 | 850 | } |
851 | 851 | |
852 | - $total = $qty * ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->price : $product->get_price() ); |
|
852 | + $total = $qty * (WC_Stripe_Helper::is_wc_lt('3.0') ? $product->price : $product->get_price()); |
|
853 | 853 | |
854 | 854 | $quantity_label = 1 < $qty ? ' (x' . $qty . ')' : ''; |
855 | 855 | |
@@ -857,28 +857,28 @@ discard block |
||
857 | 857 | $items = array(); |
858 | 858 | |
859 | 859 | $items[] = array( |
860 | - 'label' => ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->name : $product->get_name() ) . $quantity_label, |
|
861 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $total ), |
|
860 | + 'label' => (WC_Stripe_Helper::is_wc_lt('3.0') ? $product->name : $product->get_name()) . $quantity_label, |
|
861 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($total), |
|
862 | 862 | ); |
863 | 863 | |
864 | - if ( wc_tax_enabled() ) { |
|
864 | + if (wc_tax_enabled()) { |
|
865 | 865 | $items[] = array( |
866 | - 'label' => __( 'Tax', 'woocommerce-gateway-stripe' ), |
|
866 | + 'label' => __('Tax', 'woocommerce-gateway-stripe'), |
|
867 | 867 | 'amount' => 0, |
868 | 868 | 'pending' => true, |
869 | 869 | ); |
870 | 870 | } |
871 | 871 | |
872 | - if ( wc_shipping_enabled() && $product->needs_shipping() ) { |
|
872 | + if (wc_shipping_enabled() && $product->needs_shipping()) { |
|
873 | 873 | $items[] = array( |
874 | - 'label' => __( 'Shipping', 'woocommerce-gateway-stripe' ), |
|
874 | + 'label' => __('Shipping', 'woocommerce-gateway-stripe'), |
|
875 | 875 | 'amount' => 0, |
876 | 876 | 'pending' => true, |
877 | 877 | ); |
878 | 878 | |
879 | 879 | $data['shippingOptions'] = array( |
880 | 880 | 'id' => 'pending', |
881 | - 'label' => __( 'Pending', 'woocommerce-gateway-stripe' ), |
|
881 | + 'label' => __('Pending', 'woocommerce-gateway-stripe'), |
|
882 | 882 | 'detail' => '', |
883 | 883 | 'amount' => 0, |
884 | 884 | ); |
@@ -887,17 +887,17 @@ discard block |
||
887 | 887 | $data['displayItems'] = $items; |
888 | 888 | $data['total'] = array( |
889 | 889 | 'label' => $this->total_label, |
890 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $total ), |
|
890 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($total), |
|
891 | 891 | 'pending' => true, |
892 | 892 | ); |
893 | 893 | |
894 | - $data['requestShipping'] = ( wc_shipping_enabled() && $product->needs_shipping() ); |
|
895 | - $data['currency'] = strtolower( get_woocommerce_currency() ); |
|
896 | - $data['country_code'] = substr( get_option( 'woocommerce_default_country' ), 0, 2 ); |
|
894 | + $data['requestShipping'] = (wc_shipping_enabled() && $product->needs_shipping()); |
|
895 | + $data['currency'] = strtolower(get_woocommerce_currency()); |
|
896 | + $data['country_code'] = substr(get_option('woocommerce_default_country'), 0, 2); |
|
897 | 897 | |
898 | - wp_send_json( $data ); |
|
899 | - } catch ( Exception $e ) { |
|
900 | - wp_send_json( array( 'error' => wp_strip_all_tags( $e->getMessage() ) ) ); |
|
898 | + wp_send_json($data); |
|
899 | + } catch (Exception $e) { |
|
900 | + wp_send_json(array('error' => wp_strip_all_tags($e->getMessage()))); |
|
901 | 901 | } |
902 | 902 | } |
903 | 903 | |
@@ -909,36 +909,36 @@ discard block |
||
909 | 909 | * @return array $data |
910 | 910 | */ |
911 | 911 | public function ajax_add_to_cart() { |
912 | - check_ajax_referer( 'wc-stripe-add-to-cart', 'security' ); |
|
912 | + check_ajax_referer('wc-stripe-add-to-cart', 'security'); |
|
913 | 913 | |
914 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
915 | - define( 'WOOCOMMERCE_CART', true ); |
|
914 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
915 | + define('WOOCOMMERCE_CART', true); |
|
916 | 916 | } |
917 | 917 | |
918 | 918 | WC()->shipping->reset_shipping(); |
919 | 919 | |
920 | - $product_id = absint( $_POST['product_id'] ); |
|
921 | - $qty = ! isset( $_POST['qty'] ) ? 1 : absint( $_POST['qty'] ); |
|
922 | - $product = wc_get_product( $product_id ); |
|
920 | + $product_id = absint($_POST['product_id']); |
|
921 | + $qty = ! isset($_POST['qty']) ? 1 : absint($_POST['qty']); |
|
922 | + $product = wc_get_product($product_id); |
|
923 | 923 | |
924 | 924 | // First empty the cart to prevent wrong calculation. |
925 | 925 | WC()->cart->empty_cart(); |
926 | 926 | |
927 | - if ( 'variable' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ) && isset( $_POST['attributes'] ) ) { |
|
928 | - $attributes = array_map( 'wc_clean', $_POST['attributes'] ); |
|
927 | + if ('variable' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type()) && isset($_POST['attributes'])) { |
|
928 | + $attributes = array_map('wc_clean', $_POST['attributes']); |
|
929 | 929 | |
930 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
931 | - $variation_id = $product->get_matching_variation( $attributes ); |
|
930 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
931 | + $variation_id = $product->get_matching_variation($attributes); |
|
932 | 932 | } else { |
933 | - $data_store = WC_Data_Store::load( 'product' ); |
|
934 | - $variation_id = $data_store->find_matching_product_variation( $product, $attributes ); |
|
933 | + $data_store = WC_Data_Store::load('product'); |
|
934 | + $variation_id = $data_store->find_matching_product_variation($product, $attributes); |
|
935 | 935 | } |
936 | 936 | |
937 | - WC()->cart->add_to_cart( $product->get_id(), $qty, $variation_id, $attributes ); |
|
937 | + WC()->cart->add_to_cart($product->get_id(), $qty, $variation_id, $attributes); |
|
938 | 938 | } |
939 | 939 | |
940 | - if ( 'simple' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $product->product_type : $product->get_type() ) ) { |
|
941 | - WC()->cart->add_to_cart( $product->get_id(), $qty ); |
|
940 | + if ('simple' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $product->product_type : $product->get_type())) { |
|
941 | + WC()->cart->add_to_cart($product->get_id(), $qty); |
|
942 | 942 | } |
943 | 943 | |
944 | 944 | WC()->cart->calculate_totals(); |
@@ -947,7 +947,7 @@ discard block |
||
947 | 947 | $data += $this->build_display_items(); |
948 | 948 | $data['result'] = 'success'; |
949 | 949 | |
950 | - wp_send_json( $data ); |
|
950 | + wp_send_json($data); |
|
951 | 951 | } |
952 | 952 | |
953 | 953 | /** |
@@ -960,31 +960,31 @@ discard block |
||
960 | 960 | * @version 4.0.0 |
961 | 961 | */ |
962 | 962 | public function normalize_state() { |
963 | - $billing_country = ! empty( $_POST['billing_country'] ) ? wc_clean( $_POST['billing_country'] ) : ''; |
|
964 | - $shipping_country = ! empty( $_POST['shipping_country'] ) ? wc_clean( $_POST['shipping_country'] ) : ''; |
|
965 | - $billing_state = ! empty( $_POST['billing_state'] ) ? wc_clean( $_POST['billing_state'] ) : ''; |
|
966 | - $shipping_state = ! empty( $_POST['shipping_state'] ) ? wc_clean( $_POST['shipping_state'] ) : ''; |
|
963 | + $billing_country = ! empty($_POST['billing_country']) ? wc_clean($_POST['billing_country']) : ''; |
|
964 | + $shipping_country = ! empty($_POST['shipping_country']) ? wc_clean($_POST['shipping_country']) : ''; |
|
965 | + $billing_state = ! empty($_POST['billing_state']) ? wc_clean($_POST['billing_state']) : ''; |
|
966 | + $shipping_state = ! empty($_POST['shipping_state']) ? wc_clean($_POST['shipping_state']) : ''; |
|
967 | 967 | |
968 | - if ( $billing_state && $billing_country ) { |
|
969 | - $valid_states = WC()->countries->get_states( $billing_country ); |
|
968 | + if ($billing_state && $billing_country) { |
|
969 | + $valid_states = WC()->countries->get_states($billing_country); |
|
970 | 970 | |
971 | 971 | // Valid states found for country. |
972 | - if ( ! empty( $valid_states ) && is_array( $valid_states ) && sizeof( $valid_states ) > 0 ) { |
|
973 | - foreach ( $valid_states as $state_abbr => $state ) { |
|
974 | - if ( preg_match( '/' . preg_quote( $state ) . '/i', $billing_state ) ) { |
|
972 | + if ( ! empty($valid_states) && is_array($valid_states) && sizeof($valid_states) > 0) { |
|
973 | + foreach ($valid_states as $state_abbr => $state) { |
|
974 | + if (preg_match('/' . preg_quote($state) . '/i', $billing_state)) { |
|
975 | 975 | $_POST['billing_state'] = $state_abbr; |
976 | 976 | } |
977 | 977 | } |
978 | 978 | } |
979 | 979 | } |
980 | 980 | |
981 | - if ( $shipping_state && $shipping_country ) { |
|
982 | - $valid_states = WC()->countries->get_states( $shipping_country ); |
|
981 | + if ($shipping_state && $shipping_country) { |
|
982 | + $valid_states = WC()->countries->get_states($shipping_country); |
|
983 | 983 | |
984 | 984 | // Valid states found for country. |
985 | - if ( ! empty( $valid_states ) && is_array( $valid_states ) && sizeof( $valid_states ) > 0 ) { |
|
986 | - foreach ( $valid_states as $state_abbr => $state ) { |
|
987 | - if ( preg_match( '/' . preg_quote( $state ) . '/i', $shipping_state ) ) { |
|
985 | + if ( ! empty($valid_states) && is_array($valid_states) && sizeof($valid_states) > 0) { |
|
986 | + foreach ($valid_states as $state_abbr => $state) { |
|
987 | + if (preg_match('/' . preg_quote($state) . '/i', $shipping_state)) { |
|
988 | 988 | $_POST['shipping_state'] = $state_abbr; |
989 | 989 | } |
990 | 990 | } |
@@ -999,19 +999,19 @@ discard block |
||
999 | 999 | * @version 4.0.0 |
1000 | 1000 | */ |
1001 | 1001 | public function ajax_create_order() { |
1002 | - if ( WC()->cart->is_empty() ) { |
|
1003 | - wp_send_json_error( __( 'Empty cart', 'woocommerce-gateway-stripe' ) ); |
|
1002 | + if (WC()->cart->is_empty()) { |
|
1003 | + wp_send_json_error(__('Empty cart', 'woocommerce-gateway-stripe')); |
|
1004 | 1004 | } |
1005 | 1005 | |
1006 | - if ( ! defined( 'WOOCOMMERCE_CHECKOUT' ) ) { |
|
1007 | - define( 'WOOCOMMERCE_CHECKOUT', true ); |
|
1006 | + if ( ! defined('WOOCOMMERCE_CHECKOUT')) { |
|
1007 | + define('WOOCOMMERCE_CHECKOUT', true); |
|
1008 | 1008 | } |
1009 | 1009 | |
1010 | 1010 | $this->normalize_state(); |
1011 | 1011 | |
1012 | 1012 | WC()->checkout()->process_checkout(); |
1013 | 1013 | |
1014 | - die( 0 ); |
|
1014 | + die(0); |
|
1015 | 1015 | } |
1016 | 1016 | |
1017 | 1017 | /** |
@@ -1021,41 +1021,41 @@ discard block |
||
1021 | 1021 | * @version 4.0.0 |
1022 | 1022 | * @param array $address |
1023 | 1023 | */ |
1024 | - protected function calculate_shipping( $address = array() ) { |
|
1024 | + protected function calculate_shipping($address = array()) { |
|
1025 | 1025 | $country = $address['country']; |
1026 | 1026 | $state = $address['state']; |
1027 | 1027 | $postcode = $address['postcode']; |
1028 | 1028 | $city = $address['city']; |
1029 | 1029 | $address_1 = $address['address']; |
1030 | 1030 | $address_2 = $address['address_2']; |
1031 | - $wc_states = WC()->countries->get_states( $country ); |
|
1031 | + $wc_states = WC()->countries->get_states($country); |
|
1032 | 1032 | |
1033 | 1033 | /** |
1034 | 1034 | * In some versions of Chrome, state can be a full name. So we need |
1035 | 1035 | * to convert that to abbreviation as WC is expecting that. |
1036 | 1036 | */ |
1037 | - if ( 2 < strlen( $state ) && ! empty( $wc_states ) ) { |
|
1038 | - $state = array_search( ucwords( strtolower( $state ) ), $wc_states, true ); |
|
1037 | + if (2 < strlen($state) && ! empty($wc_states)) { |
|
1038 | + $state = array_search(ucwords(strtolower($state)), $wc_states, true); |
|
1039 | 1039 | } |
1040 | 1040 | |
1041 | 1041 | WC()->shipping->reset_shipping(); |
1042 | 1042 | |
1043 | - if ( $postcode && WC_Validation::is_postcode( $postcode, $country ) ) { |
|
1044 | - $postcode = wc_format_postcode( $postcode, $country ); |
|
1043 | + if ($postcode && WC_Validation::is_postcode($postcode, $country)) { |
|
1044 | + $postcode = wc_format_postcode($postcode, $country); |
|
1045 | 1045 | } |
1046 | 1046 | |
1047 | - if ( $country ) { |
|
1048 | - WC()->customer->set_location( $country, $state, $postcode, $city ); |
|
1049 | - WC()->customer->set_shipping_location( $country, $state, $postcode, $city ); |
|
1047 | + if ($country) { |
|
1048 | + WC()->customer->set_location($country, $state, $postcode, $city); |
|
1049 | + WC()->customer->set_shipping_location($country, $state, $postcode, $city); |
|
1050 | 1050 | } else { |
1051 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) ? WC()->customer->set_to_base() : WC()->customer->set_billing_address_to_base(); |
|
1052 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) ? WC()->customer->set_shipping_to_base() : WC()->customer->set_shipping_address_to_base(); |
|
1051 | + WC_Stripe_Helper::is_wc_lt('3.0') ? WC()->customer->set_to_base() : WC()->customer->set_billing_address_to_base(); |
|
1052 | + WC_Stripe_Helper::is_wc_lt('3.0') ? WC()->customer->set_shipping_to_base() : WC()->customer->set_shipping_address_to_base(); |
|
1053 | 1053 | } |
1054 | 1054 | |
1055 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
1056 | - WC()->customer->calculated_shipping( true ); |
|
1055 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
1056 | + WC()->customer->calculated_shipping(true); |
|
1057 | 1057 | } else { |
1058 | - WC()->customer->set_calculated_shipping( true ); |
|
1058 | + WC()->customer->set_calculated_shipping(true); |
|
1059 | 1059 | WC()->customer->save(); |
1060 | 1060 | } |
1061 | 1061 | |
@@ -1072,17 +1072,17 @@ discard block |
||
1072 | 1072 | $packages[0]['destination']['address'] = $address_1; |
1073 | 1073 | $packages[0]['destination']['address_2'] = $address_2; |
1074 | 1074 | |
1075 | - foreach ( WC()->cart->get_cart() as $item ) { |
|
1076 | - if ( $item['data']->needs_shipping() ) { |
|
1077 | - if ( isset( $item['line_total'] ) ) { |
|
1075 | + foreach (WC()->cart->get_cart() as $item) { |
|
1076 | + if ($item['data']->needs_shipping()) { |
|
1077 | + if (isset($item['line_total'])) { |
|
1078 | 1078 | $packages[0]['contents_cost'] += $item['line_total']; |
1079 | 1079 | } |
1080 | 1080 | } |
1081 | 1081 | } |
1082 | 1082 | |
1083 | - $packages = apply_filters( 'woocommerce_cart_shipping_packages', $packages ); |
|
1083 | + $packages = apply_filters('woocommerce_cart_shipping_packages', $packages); |
|
1084 | 1084 | |
1085 | - WC()->shipping->calculate_shipping( $packages ); |
|
1085 | + WC()->shipping->calculate_shipping($packages); |
|
1086 | 1086 | } |
1087 | 1087 | |
1088 | 1088 | /** |
@@ -1091,19 +1091,19 @@ discard block |
||
1091 | 1091 | * @since 3.1.0 |
1092 | 1092 | * @version 4.0.0 |
1093 | 1093 | */ |
1094 | - protected function build_shipping_methods( $shipping_methods ) { |
|
1095 | - if ( empty( $shipping_methods ) ) { |
|
1094 | + protected function build_shipping_methods($shipping_methods) { |
|
1095 | + if (empty($shipping_methods)) { |
|
1096 | 1096 | return array(); |
1097 | 1097 | } |
1098 | 1098 | |
1099 | 1099 | $shipping = array(); |
1100 | 1100 | |
1101 | - foreach ( $shipping_methods as $method ) { |
|
1101 | + foreach ($shipping_methods as $method) { |
|
1102 | 1102 | $shipping[] = array( |
1103 | 1103 | 'id' => $method['id'], |
1104 | 1104 | 'label' => $method['label'], |
1105 | 1105 | 'detail' => '', |
1106 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $method['amount']['value'] ), |
|
1106 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($method['amount']['value']), |
|
1107 | 1107 | ); |
1108 | 1108 | } |
1109 | 1109 | |
@@ -1117,8 +1117,8 @@ discard block |
||
1117 | 1117 | * @version 4.0.0 |
1118 | 1118 | */ |
1119 | 1119 | protected function build_display_items() { |
1120 | - if ( ! defined( 'WOOCOMMERCE_CART' ) ) { |
|
1121 | - define( 'WOOCOMMERCE_CART', true ); |
|
1120 | + if ( ! defined('WOOCOMMERCE_CART')) { |
|
1121 | + define('WOOCOMMERCE_CART', true); |
|
1122 | 1122 | } |
1123 | 1123 | |
1124 | 1124 | $items = array(); |
@@ -1126,71 +1126,71 @@ discard block |
||
1126 | 1126 | $discounts = 0; |
1127 | 1127 | |
1128 | 1128 | // Default show only subtotal instead of itemization. |
1129 | - if ( ! apply_filters( 'wc_stripe_payment_request_hide_itemization', true ) ) { |
|
1130 | - foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { |
|
1129 | + if ( ! apply_filters('wc_stripe_payment_request_hide_itemization', true)) { |
|
1130 | + foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) { |
|
1131 | 1131 | $amount = $cart_item['line_subtotal']; |
1132 | 1132 | $subtotal += $cart_item['line_subtotal']; |
1133 | 1133 | $quantity_label = 1 < $cart_item['quantity'] ? ' (x' . $cart_item['quantity'] . ')' : ''; |
1134 | 1134 | |
1135 | - $product_name = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $cart_item['data']->post->post_title : $cart_item['data']->get_name(); |
|
1135 | + $product_name = WC_Stripe_Helper::is_wc_lt('3.0') ? $cart_item['data']->post->post_title : $cart_item['data']->get_name(); |
|
1136 | 1136 | |
1137 | 1137 | $item = array( |
1138 | 1138 | 'label' => $product_name . $quantity_label, |
1139 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $amount ), |
|
1139 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($amount), |
|
1140 | 1140 | ); |
1141 | 1141 | |
1142 | 1142 | $items[] = $item; |
1143 | 1143 | } |
1144 | 1144 | } |
1145 | 1145 | |
1146 | - if ( version_compare( WC_VERSION, '3.2', '<' ) ) { |
|
1147 | - $discounts = wc_format_decimal( WC()->cart->get_cart_discount_total(), WC()->cart->dp ); |
|
1146 | + if (version_compare(WC_VERSION, '3.2', '<')) { |
|
1147 | + $discounts = wc_format_decimal(WC()->cart->get_cart_discount_total(), WC()->cart->dp); |
|
1148 | 1148 | } else { |
1149 | - $applied_coupons = array_values( WC()->cart->get_coupon_discount_totals() ); |
|
1149 | + $applied_coupons = array_values(WC()->cart->get_coupon_discount_totals()); |
|
1150 | 1150 | |
1151 | - foreach ( $applied_coupons as $amount ) { |
|
1151 | + foreach ($applied_coupons as $amount) { |
|
1152 | 1152 | $discounts += (float) $amount; |
1153 | 1153 | } |
1154 | 1154 | } |
1155 | 1155 | |
1156 | - $discounts = wc_format_decimal( $discounts, WC()->cart->dp ); |
|
1157 | - $tax = wc_format_decimal( WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp ); |
|
1158 | - $shipping = wc_format_decimal( WC()->cart->shipping_total, WC()->cart->dp ); |
|
1159 | - $items_total = wc_format_decimal( WC()->cart->cart_contents_total, WC()->cart->dp ) + $discounts; |
|
1160 | - $order_total = version_compare( WC_VERSION, '3.2', '<' ) ? wc_format_decimal( $items_total + $tax + $shipping - $discounts, WC()->cart->dp ) : WC()->cart->get_total( false ); |
|
1156 | + $discounts = wc_format_decimal($discounts, WC()->cart->dp); |
|
1157 | + $tax = wc_format_decimal(WC()->cart->tax_total + WC()->cart->shipping_tax_total, WC()->cart->dp); |
|
1158 | + $shipping = wc_format_decimal(WC()->cart->shipping_total, WC()->cart->dp); |
|
1159 | + $items_total = wc_format_decimal(WC()->cart->cart_contents_total, WC()->cart->dp) + $discounts; |
|
1160 | + $order_total = version_compare(WC_VERSION, '3.2', '<') ? wc_format_decimal($items_total + $tax + $shipping - $discounts, WC()->cart->dp) : WC()->cart->get_total(false); |
|
1161 | 1161 | |
1162 | - if ( wc_tax_enabled() ) { |
|
1162 | + if (wc_tax_enabled()) { |
|
1163 | 1163 | $items[] = array( |
1164 | - 'label' => esc_html( __( 'Tax', 'woocommerce-gateway-stripe' ) ), |
|
1165 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $tax ), |
|
1164 | + 'label' => esc_html(__('Tax', 'woocommerce-gateway-stripe')), |
|
1165 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($tax), |
|
1166 | 1166 | ); |
1167 | 1167 | } |
1168 | 1168 | |
1169 | - if ( WC()->cart->needs_shipping() ) { |
|
1169 | + if (WC()->cart->needs_shipping()) { |
|
1170 | 1170 | $items[] = array( |
1171 | - 'label' => esc_html( __( 'Shipping', 'woocommerce-gateway-stripe' ) ), |
|
1172 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $shipping ), |
|
1171 | + 'label' => esc_html(__('Shipping', 'woocommerce-gateway-stripe')), |
|
1172 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($shipping), |
|
1173 | 1173 | ); |
1174 | 1174 | } |
1175 | 1175 | |
1176 | - if ( WC()->cart->has_discount() ) { |
|
1176 | + if (WC()->cart->has_discount()) { |
|
1177 | 1177 | $items[] = array( |
1178 | - 'label' => esc_html( __( 'Discount', 'woocommerce-gateway-stripe' ) ), |
|
1179 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $discounts ), |
|
1178 | + 'label' => esc_html(__('Discount', 'woocommerce-gateway-stripe')), |
|
1179 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($discounts), |
|
1180 | 1180 | ); |
1181 | 1181 | } |
1182 | 1182 | |
1183 | - if ( version_compare( WC_VERSION, '3.2', '<' ) ) { |
|
1183 | + if (version_compare(WC_VERSION, '3.2', '<')) { |
|
1184 | 1184 | $cart_fees = WC()->cart->fees; |
1185 | 1185 | } else { |
1186 | 1186 | $cart_fees = WC()->cart->get_fees(); |
1187 | 1187 | } |
1188 | 1188 | |
1189 | 1189 | // Include fees and taxes as display items. |
1190 | - foreach ( $cart_fees as $key => $fee ) { |
|
1190 | + foreach ($cart_fees as $key => $fee) { |
|
1191 | 1191 | $items[] = array( |
1192 | 1192 | 'label' => $fee->name, |
1193 | - 'amount' => WC_Stripe_Helper::get_stripe_amount( $fee->amount ), |
|
1193 | + 'amount' => WC_Stripe_Helper::get_stripe_amount($fee->amount), |
|
1194 | 1194 | ); |
1195 | 1195 | } |
1196 | 1196 | |
@@ -1198,7 +1198,7 @@ discard block |
||
1198 | 1198 | 'displayItems' => $items, |
1199 | 1199 | 'total' => array( |
1200 | 1200 | 'label' => $this->total_label, |
1201 | - 'amount' => max( 0, apply_filters( 'woocommerce_stripe_calculated_total', WC_Stripe_Helper::get_stripe_amount( $order_total ), $order_total, WC()->cart ) ), |
|
1201 | + 'amount' => max(0, apply_filters('woocommerce_stripe_calculated_total', WC_Stripe_Helper::get_stripe_amount($order_total), $order_total, WC()->cart)), |
|
1202 | 1202 | 'pending' => false, |
1203 | 1203 | ), |
1204 | 1204 | ); |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | * @since 4.2.0 |
24 | 24 | */ |
25 | 25 | public function __construct() { |
26 | - add_action( 'wc_ajax_wc_stripe_verify_intent', array( $this, 'verify_intent' ) ); |
|
26 | + add_action('wc_ajax_wc_stripe_verify_intent', array($this, 'verify_intent')); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | /** |
@@ -33,8 +33,8 @@ discard block |
||
33 | 33 | * @return WC_Gateway_Stripe |
34 | 34 | */ |
35 | 35 | protected function get_gateway() { |
36 | - if ( ! isset( $this->gateway ) ) { |
|
37 | - if ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) { |
|
36 | + if ( ! isset($this->gateway)) { |
|
37 | + if (class_exists('WC_Subscriptions_Order') && function_exists('wcs_create_renewal_order')) { |
|
38 | 38 | $class_name = 'WC_Stripe_Subs_Compat'; |
39 | 39 | } else { |
40 | 40 | $class_name = 'WC_Gateway_Stripe'; |
@@ -54,21 +54,21 @@ discard block |
||
54 | 54 | * @return WC_Order |
55 | 55 | */ |
56 | 56 | protected function get_order_from_request() { |
57 | - if ( ! isset( $_GET['nonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['nonce'] ), 'wc_stripe_confirm_pi' ) ) { |
|
58 | - throw new WC_Stripe_Exception( 'missing-nonce', __( 'CSRF verification failed.', 'woocommerce-gateway-stripe' ) ); |
|
57 | + if ( ! isset($_GET['nonce']) || ! wp_verify_nonce(sanitize_key($_GET['nonce']), 'wc_stripe_confirm_pi')) { |
|
58 | + throw new WC_Stripe_Exception('missing-nonce', __('CSRF verification failed.', 'woocommerce-gateway-stripe')); |
|
59 | 59 | } |
60 | 60 | |
61 | 61 | // Load the order ID. |
62 | 62 | $order_id = null; |
63 | - if ( isset( $_GET['order'] ) && absint( $_GET['order'] ) ) { |
|
64 | - $order_id = absint( $_GET['order'] ); |
|
63 | + if (isset($_GET['order']) && absint($_GET['order'])) { |
|
64 | + $order_id = absint($_GET['order']); |
|
65 | 65 | } |
66 | 66 | |
67 | 67 | // Retrieve the order. |
68 | - $order = wc_get_order( $order_id ); |
|
68 | + $order = wc_get_order($order_id); |
|
69 | 69 | |
70 | - if ( ! $order ) { |
|
71 | - throw new WC_Stripe_Exception( 'missing-order', __( 'Missing order ID for payment confirmation', 'woocommerce-gateway-stripe' ) ); |
|
70 | + if ( ! $order) { |
|
71 | + throw new WC_Stripe_Exception('missing-order', __('Missing order ID for payment confirmation', 'woocommerce-gateway-stripe')); |
|
72 | 72 | } |
73 | 73 | |
74 | 74 | return $order; |
@@ -86,32 +86,32 @@ discard block |
||
86 | 86 | |
87 | 87 | try { |
88 | 88 | $order = $this->get_order_from_request(); |
89 | - } catch ( WC_Stripe_Exception $e ) { |
|
89 | + } catch (WC_Stripe_Exception $e) { |
|
90 | 90 | /* translators: Error message text */ |
91 | - $message = sprintf( __( 'Payment verification error: %s', 'woocommerce-gateway-stripe' ), $e->getLocalizedMessage() ); |
|
92 | - wc_add_notice( esc_html( $message ), 'error' ); |
|
91 | + $message = sprintf(__('Payment verification error: %s', 'woocommerce-gateway-stripe'), $e->getLocalizedMessage()); |
|
92 | + wc_add_notice(esc_html($message), 'error'); |
|
93 | 93 | |
94 | 94 | $redirect_url = $woocommerce->cart->is_empty() |
95 | - ? get_permalink( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? woocommerce_get_page_id( 'shop' ) : wc_get_page_id( 'shop' ) ) |
|
95 | + ? get_permalink(WC_Stripe_Helper::is_wc_lt('3.0') ? woocommerce_get_page_id('shop') : wc_get_page_id('shop')) |
|
96 | 96 | : wc_get_checkout_url(); |
97 | 97 | |
98 | - $this->handle_error( $e, $redirect_url ); |
|
98 | + $this->handle_error($e, $redirect_url); |
|
99 | 99 | } |
100 | 100 | |
101 | 101 | try { |
102 | - $gateway->verify_intent_after_checkout( $order ); |
|
102 | + $gateway->verify_intent_after_checkout($order); |
|
103 | 103 | |
104 | - if ( ! isset( $_GET['is_ajax'] ) ) { |
|
105 | - $redirect_url = isset( $_GET['redirect_to'] ) // wpcs: csrf ok. |
|
106 | - ? esc_url_raw( wp_unslash( $_GET['redirect_to'] ) ) // wpcs: csrf ok. |
|
107 | - : $gateway->get_return_url( $order ); |
|
104 | + if ( ! isset($_GET['is_ajax'])) { |
|
105 | + $redirect_url = isset($_GET['redirect_to']) // wpcs: csrf ok. |
|
106 | + ? esc_url_raw(wp_unslash($_GET['redirect_to'])) // wpcs: csrf ok. |
|
107 | + : $gateway->get_return_url($order); |
|
108 | 108 | |
109 | - wp_safe_redirect( $redirect_url ); |
|
109 | + wp_safe_redirect($redirect_url); |
|
110 | 110 | } |
111 | 111 | |
112 | 112 | exit; |
113 | - } catch ( WC_Stripe_Exception $e ) { |
|
114 | - $this->handle_error( $e, $gateway->get_return_url( $order ) ); |
|
113 | + } catch (WC_Stripe_Exception $e) { |
|
114 | + $this->handle_error($e, $gateway->get_return_url($order)); |
|
115 | 115 | } |
116 | 116 | } |
117 | 117 | |
@@ -122,17 +122,17 @@ discard block |
||
122 | 122 | * @param WC_Stripe_Exception $e The exception that was thrown. |
123 | 123 | * @param string $redirect_url An URL to use if a redirect is needed. |
124 | 124 | */ |
125 | - protected function handle_error( $e, $redirect_url ) { |
|
125 | + protected function handle_error($e, $redirect_url) { |
|
126 | 126 | // Log the exception before redirecting. |
127 | - $message = sprintf( 'PaymentIntent verification exception: %s', $e->getLocalizedMessage() ); |
|
128 | - WC_Stripe_Logger::log( $message ); |
|
127 | + $message = sprintf('PaymentIntent verification exception: %s', $e->getLocalizedMessage()); |
|
128 | + WC_Stripe_Logger::log($message); |
|
129 | 129 | |
130 | 130 | // `is_ajax` is only used for PI error reporting, a response is not expected. |
131 | - if ( isset( $_GET['is_ajax'] ) ) { |
|
131 | + if (isset($_GET['is_ajax'])) { |
|
132 | 132 | exit; |
133 | 133 | } |
134 | 134 | |
135 | - wp_safe_redirect( $redirect_url ); |
|
135 | + wp_safe_redirect($redirect_url); |
|
136 | 136 | exit; |
137 | 137 | } |
138 | 138 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -32,10 +32,10 @@ discard block |
||
32 | 32 | * Constructor |
33 | 33 | * @param int $user_id The WP user ID |
34 | 34 | */ |
35 | - public function __construct( $user_id = 0 ) { |
|
36 | - if ( $user_id ) { |
|
37 | - $this->set_user_id( $user_id ); |
|
38 | - $this->set_id( get_user_meta( $user_id, '_stripe_customer_id', true ) ); |
|
35 | + public function __construct($user_id = 0) { |
|
36 | + if ($user_id) { |
|
37 | + $this->set_user_id($user_id); |
|
38 | + $this->set_id(get_user_meta($user_id, '_stripe_customer_id', true)); |
|
39 | 39 | } |
40 | 40 | } |
41 | 41 | |
@@ -51,15 +51,15 @@ discard block |
||
51 | 51 | * Set Stripe customer ID. |
52 | 52 | * @param [type] $id [description] |
53 | 53 | */ |
54 | - public function set_id( $id ) { |
|
54 | + public function set_id($id) { |
|
55 | 55 | // Backwards compat for customer ID stored in array format. (Pre 3.0) |
56 | - if ( is_array( $id ) && isset( $id['customer_id'] ) ) { |
|
56 | + if (is_array($id) && isset($id['customer_id'])) { |
|
57 | 57 | $id = $id['customer_id']; |
58 | 58 | |
59 | - update_user_meta( $this->get_user_id(), '_stripe_customer_id', $id ); |
|
59 | + update_user_meta($this->get_user_id(), '_stripe_customer_id', $id); |
|
60 | 60 | } |
61 | 61 | |
62 | - $this->id = wc_clean( $id ); |
|
62 | + $this->id = wc_clean($id); |
|
63 | 63 | } |
64 | 64 | |
65 | 65 | /** |
@@ -67,15 +67,15 @@ discard block |
||
67 | 67 | * @return int |
68 | 68 | */ |
69 | 69 | public function get_user_id() { |
70 | - return absint( $this->user_id ); |
|
70 | + return absint($this->user_id); |
|
71 | 71 | } |
72 | 72 | |
73 | 73 | /** |
74 | 74 | * Set User ID used by WordPress. |
75 | 75 | * @param int $user_id |
76 | 76 | */ |
77 | - public function set_user_id( $user_id ) { |
|
78 | - $this->user_id = absint( $user_id ); |
|
77 | + public function set_user_id($user_id) { |
|
78 | + $this->user_id = absint($user_id); |
|
79 | 79 | } |
80 | 80 | |
81 | 81 | /** |
@@ -83,13 +83,13 @@ discard block |
||
83 | 83 | * @return WP_User |
84 | 84 | */ |
85 | 85 | protected function get_user() { |
86 | - return $this->get_user_id() ? get_user_by( 'id', $this->get_user_id() ) : false; |
|
86 | + return $this->get_user_id() ? get_user_by('id', $this->get_user_id()) : false; |
|
87 | 87 | } |
88 | 88 | |
89 | 89 | /** |
90 | 90 | * Store data from the Stripe API about this customer |
91 | 91 | */ |
92 | - public function set_customer_data( $data ) { |
|
92 | + public function set_customer_data($data) { |
|
93 | 93 | $this->customer_data = $data; |
94 | 94 | } |
95 | 95 | |
@@ -98,37 +98,37 @@ discard block |
||
98 | 98 | * @param array $args |
99 | 99 | * @return WP_Error|int |
100 | 100 | */ |
101 | - public function create_customer( $args = array() ) { |
|
102 | - $billing_email = isset( $_POST['billing_email'] ) ? filter_var( $_POST['billing_email'], FILTER_SANITIZE_EMAIL ) : ''; |
|
101 | + public function create_customer($args = array()) { |
|
102 | + $billing_email = isset($_POST['billing_email']) ? filter_var($_POST['billing_email'], FILTER_SANITIZE_EMAIL) : ''; |
|
103 | 103 | $user = $this->get_user(); |
104 | 104 | |
105 | - if ( $user ) { |
|
106 | - $billing_first_name = get_user_meta( $user->ID, 'billing_first_name', true ); |
|
107 | - $billing_last_name = get_user_meta( $user->ID, 'billing_last_name', true ); |
|
105 | + if ($user) { |
|
106 | + $billing_first_name = get_user_meta($user->ID, 'billing_first_name', true); |
|
107 | + $billing_last_name = get_user_meta($user->ID, 'billing_last_name', true); |
|
108 | 108 | |
109 | 109 | // If billing first name does not exists try the user first name. |
110 | - if ( empty( $billing_first_name ) ) { |
|
111 | - $billing_first_name = get_user_meta( $user->ID, 'first_name', true ); |
|
110 | + if (empty($billing_first_name)) { |
|
111 | + $billing_first_name = get_user_meta($user->ID, 'first_name', true); |
|
112 | 112 | } |
113 | 113 | |
114 | 114 | // If billing last name does not exists try the user last name. |
115 | - if ( empty( $billing_last_name ) ) { |
|
116 | - $billing_last_name = get_user_meta( $user->ID, 'last_name', true ); |
|
115 | + if (empty($billing_last_name)) { |
|
116 | + $billing_last_name = get_user_meta($user->ID, 'last_name', true); |
|
117 | 117 | } |
118 | 118 | |
119 | 119 | // translators: %1$s First name, %2$s Second name, %3$s Username. |
120 | - $description = sprintf( __( 'Name: %1$s %2$s, Username: %s', 'woocommerce-gateway-stripe' ), $billing_first_name, $billing_last_name, $user->user_login ); |
|
120 | + $description = sprintf(__('Name: %1$s %2$s, Username: %s', 'woocommerce-gateway-stripe'), $billing_first_name, $billing_last_name, $user->user_login); |
|
121 | 121 | |
122 | 122 | $defaults = array( |
123 | 123 | 'email' => $user->user_email, |
124 | 124 | 'description' => $description, |
125 | 125 | ); |
126 | 126 | } else { |
127 | - $billing_first_name = isset( $_POST['billing_first_name'] ) ? filter_var( wp_unslash( $_POST['billing_first_name'] ), FILTER_SANITIZE_STRING ) : ''; // phpcs:ignore WordPress.Security.NonceVerification |
|
128 | - $billing_last_name = isset( $_POST['billing_last_name'] ) ? filter_var( wp_unslash( $_POST['billing_last_name'] ), FILTER_SANITIZE_STRING ) : ''; // phpcs:ignore WordPress.Security.NonceVerification |
|
127 | + $billing_first_name = isset($_POST['billing_first_name']) ? filter_var(wp_unslash($_POST['billing_first_name']), FILTER_SANITIZE_STRING) : ''; // phpcs:ignore WordPress.Security.NonceVerification |
|
128 | + $billing_last_name = isset($_POST['billing_last_name']) ? filter_var(wp_unslash($_POST['billing_last_name']), FILTER_SANITIZE_STRING) : ''; // phpcs:ignore WordPress.Security.NonceVerification |
|
129 | 129 | |
130 | 130 | // translators: %1$s First name, %2$s Second name. |
131 | - $description = sprintf( __( 'Name: %1$s %2$s, Guest', 'woocommerce-gateway-stripe' ), $billing_first_name, $billing_last_name ); |
|
131 | + $description = sprintf(__('Name: %1$s %2$s, Guest', 'woocommerce-gateway-stripe'), $billing_first_name, $billing_last_name); |
|
132 | 132 | |
133 | 133 | $defaults = array( |
134 | 134 | 'email' => $billing_email, |
@@ -138,24 +138,24 @@ discard block |
||
138 | 138 | |
139 | 139 | $metadata = array(); |
140 | 140 | |
141 | - $defaults['metadata'] = apply_filters( 'wc_stripe_customer_metadata', $metadata, $user ); |
|
141 | + $defaults['metadata'] = apply_filters('wc_stripe_customer_metadata', $metadata, $user); |
|
142 | 142 | |
143 | - $args = wp_parse_args( $args, $defaults ); |
|
144 | - $response = WC_Stripe_API::request( apply_filters( 'wc_stripe_create_customer_args', $args ), 'customers' ); |
|
143 | + $args = wp_parse_args($args, $defaults); |
|
144 | + $response = WC_Stripe_API::request(apply_filters('wc_stripe_create_customer_args', $args), 'customers'); |
|
145 | 145 | |
146 | - if ( ! empty( $response->error ) ) { |
|
147 | - throw new WC_Stripe_Exception( print_r( $response, true ), $response->error->message ); |
|
146 | + if ( ! empty($response->error)) { |
|
147 | + throw new WC_Stripe_Exception(print_r($response, true), $response->error->message); |
|
148 | 148 | } |
149 | 149 | |
150 | - $this->set_id( $response->id ); |
|
150 | + $this->set_id($response->id); |
|
151 | 151 | $this->clear_cache(); |
152 | - $this->set_customer_data( $response ); |
|
152 | + $this->set_customer_data($response); |
|
153 | 153 | |
154 | - if ( $this->get_user_id() ) { |
|
155 | - update_user_meta( $this->get_user_id(), '_stripe_customer_id', $response->id ); |
|
154 | + if ($this->get_user_id()) { |
|
155 | + update_user_meta($this->get_user_id(), '_stripe_customer_id', $response->id); |
|
156 | 156 | } |
157 | 157 | |
158 | - do_action( 'woocommerce_stripe_add_customer', $args, $response ); |
|
158 | + do_action('woocommerce_stripe_add_customer', $args, $response); |
|
159 | 159 | |
160 | 160 | return $response->id; |
161 | 161 | } |
@@ -167,11 +167,11 @@ discard block |
||
167 | 167 | * @since 4.1.2 |
168 | 168 | * @param array $error |
169 | 169 | */ |
170 | - public function is_no_such_customer_error( $error ) { |
|
170 | + public function is_no_such_customer_error($error) { |
|
171 | 171 | return ( |
172 | 172 | $error && |
173 | 173 | 'invalid_request_error' === $error->type && |
174 | - preg_match( '/No such customer/i', $error->message ) |
|
174 | + preg_match('/No such customer/i', $error->message) |
|
175 | 175 | ); |
176 | 176 | } |
177 | 177 | |
@@ -181,9 +181,9 @@ discard block |
||
181 | 181 | * @param bool $retry |
182 | 182 | * @return WP_Error|int |
183 | 183 | */ |
184 | - public function add_source( $source_id, $retry = true ) { |
|
185 | - if ( ! $this->get_id() ) { |
|
186 | - $this->set_id( $this->create_customer() ); |
|
184 | + public function add_source($source_id, $retry = true) { |
|
185 | + if ( ! $this->get_id()) { |
|
186 | + $this->set_id($this->create_customer()); |
|
187 | 187 | } |
188 | 188 | |
189 | 189 | $response = WC_Stripe_API::request( |
@@ -195,63 +195,63 @@ discard block |
||
195 | 195 | |
196 | 196 | $wc_token = false; |
197 | 197 | |
198 | - if ( ! empty( $response->error ) ) { |
|
198 | + if ( ! empty($response->error)) { |
|
199 | 199 | // It is possible the WC user once was linked to a customer on Stripe |
200 | 200 | // but no longer exists. Instead of failing, lets try to create a |
201 | 201 | // new customer. |
202 | - if ( $this->is_no_such_customer_error( $response->error ) ) { |
|
203 | - delete_user_meta( $this->get_user_id(), '_stripe_customer_id' ); |
|
202 | + if ($this->is_no_such_customer_error($response->error)) { |
|
203 | + delete_user_meta($this->get_user_id(), '_stripe_customer_id'); |
|
204 | 204 | $this->create_customer(); |
205 | - return $this->add_source( $source_id, false ); |
|
205 | + return $this->add_source($source_id, false); |
|
206 | 206 | } else { |
207 | 207 | return $response; |
208 | 208 | } |
209 | - } elseif ( empty( $response->id ) ) { |
|
210 | - return new WP_Error( 'error', __( 'Unable to add payment source.', 'woocommerce-gateway-stripe' ) ); |
|
209 | + } elseif (empty($response->id)) { |
|
210 | + return new WP_Error('error', __('Unable to add payment source.', 'woocommerce-gateway-stripe')); |
|
211 | 211 | } |
212 | 212 | |
213 | 213 | // Add token to WooCommerce. |
214 | - if ( $this->get_user_id() && class_exists( 'WC_Payment_Token_CC' ) ) { |
|
215 | - if ( ! empty( $response->type ) ) { |
|
216 | - switch ( $response->type ) { |
|
214 | + if ($this->get_user_id() && class_exists('WC_Payment_Token_CC')) { |
|
215 | + if ( ! empty($response->type)) { |
|
216 | + switch ($response->type) { |
|
217 | 217 | case 'alipay': |
218 | 218 | break; |
219 | 219 | case 'sepa_debit': |
220 | 220 | $wc_token = new WC_Payment_Token_SEPA(); |
221 | - $wc_token->set_token( $response->id ); |
|
222 | - $wc_token->set_gateway_id( 'stripe_sepa' ); |
|
223 | - $wc_token->set_last4( $response->sepa_debit->last4 ); |
|
221 | + $wc_token->set_token($response->id); |
|
222 | + $wc_token->set_gateway_id('stripe_sepa'); |
|
223 | + $wc_token->set_last4($response->sepa_debit->last4); |
|
224 | 224 | break; |
225 | 225 | default: |
226 | - if ( 'source' === $response->object && 'card' === $response->type ) { |
|
226 | + if ('source' === $response->object && 'card' === $response->type) { |
|
227 | 227 | $wc_token = new WC_Payment_Token_CC(); |
228 | - $wc_token->set_token( $response->id ); |
|
229 | - $wc_token->set_gateway_id( 'stripe' ); |
|
230 | - $wc_token->set_card_type( strtolower( $response->card->brand ) ); |
|
231 | - $wc_token->set_last4( $response->card->last4 ); |
|
232 | - $wc_token->set_expiry_month( $response->card->exp_month ); |
|
233 | - $wc_token->set_expiry_year( $response->card->exp_year ); |
|
228 | + $wc_token->set_token($response->id); |
|
229 | + $wc_token->set_gateway_id('stripe'); |
|
230 | + $wc_token->set_card_type(strtolower($response->card->brand)); |
|
231 | + $wc_token->set_last4($response->card->last4); |
|
232 | + $wc_token->set_expiry_month($response->card->exp_month); |
|
233 | + $wc_token->set_expiry_year($response->card->exp_year); |
|
234 | 234 | } |
235 | 235 | break; |
236 | 236 | } |
237 | 237 | } else { |
238 | 238 | // Legacy. |
239 | 239 | $wc_token = new WC_Payment_Token_CC(); |
240 | - $wc_token->set_token( $response->id ); |
|
241 | - $wc_token->set_gateway_id( 'stripe' ); |
|
242 | - $wc_token->set_card_type( strtolower( $response->brand ) ); |
|
243 | - $wc_token->set_last4( $response->last4 ); |
|
244 | - $wc_token->set_expiry_month( $response->exp_month ); |
|
245 | - $wc_token->set_expiry_year( $response->exp_year ); |
|
240 | + $wc_token->set_token($response->id); |
|
241 | + $wc_token->set_gateway_id('stripe'); |
|
242 | + $wc_token->set_card_type(strtolower($response->brand)); |
|
243 | + $wc_token->set_last4($response->last4); |
|
244 | + $wc_token->set_expiry_month($response->exp_month); |
|
245 | + $wc_token->set_expiry_year($response->exp_year); |
|
246 | 246 | } |
247 | 247 | |
248 | - $wc_token->set_user_id( $this->get_user_id() ); |
|
248 | + $wc_token->set_user_id($this->get_user_id()); |
|
249 | 249 | $wc_token->save(); |
250 | 250 | } |
251 | 251 | |
252 | 252 | $this->clear_cache(); |
253 | 253 | |
254 | - do_action( 'woocommerce_stripe_add_source', $this->get_id(), $wc_token, $response, $source_id ); |
|
254 | + do_action('woocommerce_stripe_add_source', $this->get_id(), $wc_token, $response, $source_id); |
|
255 | 255 | |
256 | 256 | return $response->id; |
257 | 257 | } |
@@ -263,11 +263,11 @@ discard block |
||
263 | 263 | * @return array |
264 | 264 | */ |
265 | 265 | public function get_sources() { |
266 | - if ( ! $this->get_id() ) { |
|
266 | + if ( ! $this->get_id()) { |
|
267 | 267 | return array(); |
268 | 268 | } |
269 | 269 | |
270 | - $sources = get_transient( 'stripe_sources_' . $this->get_id() ); |
|
270 | + $sources = get_transient('stripe_sources_' . $this->get_id()); |
|
271 | 271 | |
272 | 272 | $response = WC_Stripe_API::request( |
273 | 273 | array( |
@@ -277,32 +277,32 @@ discard block |
||
277 | 277 | 'GET' |
278 | 278 | ); |
279 | 279 | |
280 | - if ( ! empty( $response->error ) ) { |
|
280 | + if ( ! empty($response->error)) { |
|
281 | 281 | return array(); |
282 | 282 | } |
283 | 283 | |
284 | - if ( is_array( $response->data ) ) { |
|
284 | + if (is_array($response->data)) { |
|
285 | 285 | $sources = $response->data; |
286 | 286 | } |
287 | 287 | |
288 | - return empty( $sources ) ? array() : $sources; |
|
288 | + return empty($sources) ? array() : $sources; |
|
289 | 289 | } |
290 | 290 | |
291 | 291 | /** |
292 | 292 | * Delete a source from stripe. |
293 | 293 | * @param string $source_id |
294 | 294 | */ |
295 | - public function delete_source( $source_id ) { |
|
296 | - if ( ! $this->get_id() ) { |
|
295 | + public function delete_source($source_id) { |
|
296 | + if ( ! $this->get_id()) { |
|
297 | 297 | return false; |
298 | 298 | } |
299 | 299 | |
300 | - $response = WC_Stripe_API::request( array(), 'customers/' . $this->get_id() . '/sources/' . sanitize_text_field( $source_id ), 'DELETE' ); |
|
300 | + $response = WC_Stripe_API::request(array(), 'customers/' . $this->get_id() . '/sources/' . sanitize_text_field($source_id), 'DELETE'); |
|
301 | 301 | |
302 | 302 | $this->clear_cache(); |
303 | 303 | |
304 | - if ( empty( $response->error ) ) { |
|
305 | - do_action( 'wc_stripe_delete_source', $this->get_id(), $response ); |
|
304 | + if (empty($response->error)) { |
|
305 | + do_action('wc_stripe_delete_source', $this->get_id(), $response); |
|
306 | 306 | |
307 | 307 | return true; |
308 | 308 | } |
@@ -314,10 +314,10 @@ discard block |
||
314 | 314 | * Set default source in Stripe |
315 | 315 | * @param string $source_id |
316 | 316 | */ |
317 | - public function set_default_source( $source_id ) { |
|
317 | + public function set_default_source($source_id) { |
|
318 | 318 | $response = WC_Stripe_API::request( |
319 | 319 | array( |
320 | - 'default_source' => sanitize_text_field( $source_id ), |
|
320 | + 'default_source' => sanitize_text_field($source_id), |
|
321 | 321 | ), |
322 | 322 | 'customers/' . $this->get_id(), |
323 | 323 | 'POST' |
@@ -325,8 +325,8 @@ discard block |
||
325 | 325 | |
326 | 326 | $this->clear_cache(); |
327 | 327 | |
328 | - if ( empty( $response->error ) ) { |
|
329 | - do_action( 'wc_stripe_set_default_source', $this->get_id(), $response ); |
|
328 | + if (empty($response->error)) { |
|
329 | + do_action('wc_stripe_set_default_source', $this->get_id(), $response); |
|
330 | 330 | |
331 | 331 | return true; |
332 | 332 | } |
@@ -338,8 +338,8 @@ discard block |
||
338 | 338 | * Deletes caches for this users cards. |
339 | 339 | */ |
340 | 340 | public function clear_cache() { |
341 | - delete_transient( 'stripe_sources_' . $this->get_id() ); |
|
342 | - delete_transient( 'stripe_customer_' . $this->get_id() ); |
|
341 | + delete_transient('stripe_sources_' . $this->get_id()); |
|
342 | + delete_transient('stripe_customer_' . $this->get_id()); |
|
343 | 343 | $this->customer_data = array(); |
344 | 344 | } |
345 | 345 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -22,14 +22,14 @@ discard block |
||
22 | 22 | * @param object $order |
23 | 23 | * @return string $currency |
24 | 24 | */ |
25 | - public static function get_stripe_currency( $order = null ) { |
|
26 | - if ( is_null( $order ) ) { |
|
25 | + public static function get_stripe_currency($order = null) { |
|
26 | + if (is_null($order)) { |
|
27 | 27 | return false; |
28 | 28 | } |
29 | 29 | |
30 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
30 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
31 | 31 | |
32 | - return WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, self::META_NAME_STRIPE_CURRENCY, true ) : $order->get_meta( self::META_NAME_STRIPE_CURRENCY, true ); |
|
32 | + return WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, self::META_NAME_STRIPE_CURRENCY, true) : $order->get_meta(self::META_NAME_STRIPE_CURRENCY, true); |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | /** |
@@ -39,14 +39,14 @@ discard block |
||
39 | 39 | * @param object $order |
40 | 40 | * @param string $currency |
41 | 41 | */ |
42 | - public static function update_stripe_currency( $order = null, $currency ) { |
|
43 | - if ( is_null( $order ) ) { |
|
42 | + public static function update_stripe_currency($order = null, $currency) { |
|
43 | + if (is_null($order)) { |
|
44 | 44 | return false; |
45 | 45 | } |
46 | 46 | |
47 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
47 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
48 | 48 | |
49 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, self::META_NAME_STRIPE_CURRENCY, $currency ) : $order->update_meta_data( self::META_NAME_STRIPE_CURRENCY, $currency ); |
|
49 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, self::META_NAME_STRIPE_CURRENCY, $currency) : $order->update_meta_data(self::META_NAME_STRIPE_CURRENCY, $currency); |
|
50 | 50 | } |
51 | 51 | |
52 | 52 | /** |
@@ -56,22 +56,22 @@ discard block |
||
56 | 56 | * @param object $order |
57 | 57 | * @return string $amount |
58 | 58 | */ |
59 | - public static function get_stripe_fee( $order = null ) { |
|
60 | - if ( is_null( $order ) ) { |
|
59 | + public static function get_stripe_fee($order = null) { |
|
60 | + if (is_null($order)) { |
|
61 | 61 | return false; |
62 | 62 | } |
63 | 63 | |
64 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
64 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
65 | 65 | |
66 | - $amount = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, self::META_NAME_FEE, true ) : $order->get_meta( self::META_NAME_FEE, true ); |
|
66 | + $amount = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, self::META_NAME_FEE, true) : $order->get_meta(self::META_NAME_FEE, true); |
|
67 | 67 | |
68 | 68 | // If not found let's check for legacy name. |
69 | - if ( empty( $amount ) ) { |
|
70 | - $amount = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, self::LEGACY_META_NAME_FEE, true ) : $order->get_meta( self::LEGACY_META_NAME_FEE, true ); |
|
69 | + if (empty($amount)) { |
|
70 | + $amount = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, self::LEGACY_META_NAME_FEE, true) : $order->get_meta(self::LEGACY_META_NAME_FEE, true); |
|
71 | 71 | |
72 | 72 | // If found update to new name. |
73 | - if ( $amount ) { |
|
74 | - self::update_stripe_fee( $order, $amount ); |
|
73 | + if ($amount) { |
|
74 | + self::update_stripe_fee($order, $amount); |
|
75 | 75 | } |
76 | 76 | } |
77 | 77 | |
@@ -85,14 +85,14 @@ discard block |
||
85 | 85 | * @param object $order |
86 | 86 | * @param float $amount |
87 | 87 | */ |
88 | - public static function update_stripe_fee( $order = null, $amount = 0.0 ) { |
|
89 | - if ( is_null( $order ) ) { |
|
88 | + public static function update_stripe_fee($order = null, $amount = 0.0) { |
|
89 | + if (is_null($order)) { |
|
90 | 90 | return false; |
91 | 91 | } |
92 | 92 | |
93 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
93 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
94 | 94 | |
95 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, self::META_NAME_FEE, $amount ) : $order->update_meta_data( self::META_NAME_FEE, $amount ); |
|
95 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, self::META_NAME_FEE, $amount) : $order->update_meta_data(self::META_NAME_FEE, $amount); |
|
96 | 96 | } |
97 | 97 | |
98 | 98 | /** |
@@ -101,15 +101,15 @@ discard block |
||
101 | 101 | * @since 4.1.0 |
102 | 102 | * @param object $order |
103 | 103 | */ |
104 | - public static function delete_stripe_fee( $order = null ) { |
|
105 | - if ( is_null( $order ) ) { |
|
104 | + public static function delete_stripe_fee($order = null) { |
|
105 | + if (is_null($order)) { |
|
106 | 106 | return false; |
107 | 107 | } |
108 | 108 | |
109 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
109 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
110 | 110 | |
111 | - delete_post_meta( $order_id, self::META_NAME_FEE ); |
|
112 | - delete_post_meta( $order_id, self::LEGACY_META_NAME_FEE ); |
|
111 | + delete_post_meta($order_id, self::META_NAME_FEE); |
|
112 | + delete_post_meta($order_id, self::LEGACY_META_NAME_FEE); |
|
113 | 113 | } |
114 | 114 | |
115 | 115 | /** |
@@ -119,22 +119,22 @@ discard block |
||
119 | 119 | * @param object $order |
120 | 120 | * @return string $amount |
121 | 121 | */ |
122 | - public static function get_stripe_net( $order = null ) { |
|
123 | - if ( is_null( $order ) ) { |
|
122 | + public static function get_stripe_net($order = null) { |
|
123 | + if (is_null($order)) { |
|
124 | 124 | return false; |
125 | 125 | } |
126 | 126 | |
127 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
127 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
128 | 128 | |
129 | - $amount = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, self::META_NAME_NET, true ) : $order->get_meta( self::META_NAME_NET, true ); |
|
129 | + $amount = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, self::META_NAME_NET, true) : $order->get_meta(self::META_NAME_NET, true); |
|
130 | 130 | |
131 | 131 | // If not found let's check for legacy name. |
132 | - if ( empty( $amount ) ) { |
|
133 | - $amount = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, self::LEGACY_META_NAME_NET, true ) : $order->get_meta( self::LEGACY_META_NAME_NET, true ); |
|
132 | + if (empty($amount)) { |
|
133 | + $amount = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, self::LEGACY_META_NAME_NET, true) : $order->get_meta(self::LEGACY_META_NAME_NET, true); |
|
134 | 134 | |
135 | 135 | // If found update to new name. |
136 | - if ( $amount ) { |
|
137 | - self::update_stripe_net( $order, $amount ); |
|
136 | + if ($amount) { |
|
137 | + self::update_stripe_net($order, $amount); |
|
138 | 138 | } |
139 | 139 | } |
140 | 140 | |
@@ -148,14 +148,14 @@ discard block |
||
148 | 148 | * @param object $order |
149 | 149 | * @param float $amount |
150 | 150 | */ |
151 | - public static function update_stripe_net( $order = null, $amount = 0.0 ) { |
|
152 | - if ( is_null( $order ) ) { |
|
151 | + public static function update_stripe_net($order = null, $amount = 0.0) { |
|
152 | + if (is_null($order)) { |
|
153 | 153 | return false; |
154 | 154 | } |
155 | 155 | |
156 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
156 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
157 | 157 | |
158 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) ? update_post_meta( $order_id, self::META_NAME_NET, $amount ) : $order->update_meta_data( self::META_NAME_NET, $amount ); |
|
158 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, self::META_NAME_NET, $amount) : $order->update_meta_data(self::META_NAME_NET, $amount); |
|
159 | 159 | } |
160 | 160 | |
161 | 161 | /** |
@@ -164,15 +164,15 @@ discard block |
||
164 | 164 | * @since 4.1.0 |
165 | 165 | * @param object $order |
166 | 166 | */ |
167 | - public static function delete_stripe_net( $order = null ) { |
|
168 | - if ( is_null( $order ) ) { |
|
167 | + public static function delete_stripe_net($order = null) { |
|
168 | + if (is_null($order)) { |
|
169 | 169 | return false; |
170 | 170 | } |
171 | 171 | |
172 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
172 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
173 | 173 | |
174 | - delete_post_meta( $order_id, self::META_NAME_NET ); |
|
175 | - delete_post_meta( $order_id, self::LEGACY_META_NAME_NET ); |
|
174 | + delete_post_meta($order_id, self::META_NAME_NET); |
|
175 | + delete_post_meta($order_id, self::LEGACY_META_NAME_NET); |
|
176 | 176 | } |
177 | 177 | |
178 | 178 | /** |
@@ -183,15 +183,15 @@ discard block |
||
183 | 183 | * |
184 | 184 | * @return float|int |
185 | 185 | */ |
186 | - public static function get_stripe_amount( $total, $currency = '' ) { |
|
187 | - if ( ! $currency ) { |
|
186 | + public static function get_stripe_amount($total, $currency = '') { |
|
187 | + if ( ! $currency) { |
|
188 | 188 | $currency = get_woocommerce_currency(); |
189 | 189 | } |
190 | 190 | |
191 | - if ( in_array( strtolower( $currency ), self::no_decimal_currencies() ) ) { |
|
192 | - return absint( $total ); |
|
191 | + if (in_array(strtolower($currency), self::no_decimal_currencies())) { |
|
192 | + return absint($total); |
|
193 | 193 | } else { |
194 | - return absint( wc_format_decimal( ( (float) $total * 100 ), wc_get_price_decimals() ) ); // In cents. |
|
194 | + return absint(wc_format_decimal(((float) $total * 100), wc_get_price_decimals())); // In cents. |
|
195 | 195 | } |
196 | 196 | } |
197 | 197 | |
@@ -206,24 +206,24 @@ discard block |
||
206 | 206 | return apply_filters( |
207 | 207 | 'wc_stripe_localized_messages', |
208 | 208 | array( |
209 | - 'invalid_number' => __( 'The card number is not a valid credit card number.', 'woocommerce-gateway-stripe' ), |
|
210 | - 'invalid_expiry_month' => __( 'The card\'s expiration month is invalid.', 'woocommerce-gateway-stripe' ), |
|
211 | - 'invalid_expiry_year' => __( 'The card\'s expiration year is invalid.', 'woocommerce-gateway-stripe' ), |
|
212 | - 'invalid_cvc' => __( 'The card\'s security code is invalid.', 'woocommerce-gateway-stripe' ), |
|
213 | - 'incorrect_number' => __( 'The card number is incorrect.', 'woocommerce-gateway-stripe' ), |
|
214 | - 'incomplete_number' => __( 'The card number is incomplete.', 'woocommerce-gateway-stripe' ), |
|
215 | - 'incomplete_cvc' => __( 'The card\'s security code is incomplete.', 'woocommerce-gateway-stripe' ), |
|
216 | - 'incomplete_expiry' => __( 'The card\'s expiration date is incomplete.', 'woocommerce-gateway-stripe' ), |
|
217 | - 'expired_card' => __( 'The card has expired.', 'woocommerce-gateway-stripe' ), |
|
218 | - 'incorrect_cvc' => __( 'The card\'s security code is incorrect.', 'woocommerce-gateway-stripe' ), |
|
219 | - 'incorrect_zip' => __( 'The card\'s zip code failed validation.', 'woocommerce-gateway-stripe' ), |
|
220 | - 'invalid_expiry_year_past' => __( 'The card\'s expiration year is in the past', 'woocommerce-gateway-stripe' ), |
|
221 | - 'card_declined' => __( 'The card was declined.', 'woocommerce-gateway-stripe' ), |
|
222 | - 'missing' => __( 'There is no card on a customer that is being charged.', 'woocommerce-gateway-stripe' ), |
|
223 | - 'processing_error' => __( 'An error occurred while processing the card.', 'woocommerce-gateway-stripe' ), |
|
224 | - 'invalid_request_error' => __( 'Unable to process this payment, please try again or use alternative method.', 'woocommerce-gateway-stripe' ), |
|
225 | - 'invalid_sofort_country' => __( 'The billing country is not accepted by SOFORT. Please try another country.', 'woocommerce-gateway-stripe' ), |
|
226 | - 'email_invalid' => __( 'Invalid email address, please correct and try again.', 'woocommerce-gateway-stripe' ), |
|
209 | + 'invalid_number' => __('The card number is not a valid credit card number.', 'woocommerce-gateway-stripe'), |
|
210 | + 'invalid_expiry_month' => __('The card\'s expiration month is invalid.', 'woocommerce-gateway-stripe'), |
|
211 | + 'invalid_expiry_year' => __('The card\'s expiration year is invalid.', 'woocommerce-gateway-stripe'), |
|
212 | + 'invalid_cvc' => __('The card\'s security code is invalid.', 'woocommerce-gateway-stripe'), |
|
213 | + 'incorrect_number' => __('The card number is incorrect.', 'woocommerce-gateway-stripe'), |
|
214 | + 'incomplete_number' => __('The card number is incomplete.', 'woocommerce-gateway-stripe'), |
|
215 | + 'incomplete_cvc' => __('The card\'s security code is incomplete.', 'woocommerce-gateway-stripe'), |
|
216 | + 'incomplete_expiry' => __('The card\'s expiration date is incomplete.', 'woocommerce-gateway-stripe'), |
|
217 | + 'expired_card' => __('The card has expired.', 'woocommerce-gateway-stripe'), |
|
218 | + 'incorrect_cvc' => __('The card\'s security code is incorrect.', 'woocommerce-gateway-stripe'), |
|
219 | + 'incorrect_zip' => __('The card\'s zip code failed validation.', 'woocommerce-gateway-stripe'), |
|
220 | + 'invalid_expiry_year_past' => __('The card\'s expiration year is in the past', 'woocommerce-gateway-stripe'), |
|
221 | + 'card_declined' => __('The card was declined.', 'woocommerce-gateway-stripe'), |
|
222 | + 'missing' => __('There is no card on a customer that is being charged.', 'woocommerce-gateway-stripe'), |
|
223 | + 'processing_error' => __('An error occurred while processing the card.', 'woocommerce-gateway-stripe'), |
|
224 | + 'invalid_request_error' => __('Unable to process this payment, please try again or use alternative method.', 'woocommerce-gateway-stripe'), |
|
225 | + 'invalid_sofort_country' => __('The billing country is not accepted by SOFORT. Please try another country.', 'woocommerce-gateway-stripe'), |
|
226 | + 'email_invalid' => __('Invalid email address, please correct and try again.', 'woocommerce-gateway-stripe'), |
|
227 | 227 | ) |
228 | 228 | ); |
229 | 229 | } |
@@ -264,24 +264,24 @@ discard block |
||
264 | 264 | * @param string $type Type of number to format |
265 | 265 | * @return string |
266 | 266 | */ |
267 | - public static function format_balance_fee( $balance_transaction, $type = 'fee' ) { |
|
268 | - if ( ! is_object( $balance_transaction ) ) { |
|
267 | + public static function format_balance_fee($balance_transaction, $type = 'fee') { |
|
268 | + if ( ! is_object($balance_transaction)) { |
|
269 | 269 | return; |
270 | 270 | } |
271 | 271 | |
272 | - if ( in_array( strtolower( $balance_transaction->currency ), self::no_decimal_currencies() ) ) { |
|
273 | - if ( 'fee' === $type ) { |
|
272 | + if (in_array(strtolower($balance_transaction->currency), self::no_decimal_currencies())) { |
|
273 | + if ('fee' === $type) { |
|
274 | 274 | return $balance_transaction->fee; |
275 | 275 | } |
276 | 276 | |
277 | 277 | return $balance_transaction->net; |
278 | 278 | } |
279 | 279 | |
280 | - if ( 'fee' === $type ) { |
|
281 | - return number_format( $balance_transaction->fee / 100, 2, '.', '' ); |
|
280 | + if ('fee' === $type) { |
|
281 | + return number_format($balance_transaction->fee / 100, 2, '.', ''); |
|
282 | 282 | } |
283 | 283 | |
284 | - return number_format( $balance_transaction->net / 100, 2, '.', '' ); |
|
284 | + return number_format($balance_transaction->net / 100, 2, '.', ''); |
|
285 | 285 | } |
286 | 286 | |
287 | 287 | /** |
@@ -289,7 +289,7 @@ discard block |
||
289 | 289 | */ |
290 | 290 | public static function get_minimum_amount() { |
291 | 291 | // Check order amount |
292 | - switch ( get_woocommerce_currency() ) { |
|
292 | + switch (get_woocommerce_currency()) { |
|
293 | 293 | case 'USD': |
294 | 294 | case 'CAD': |
295 | 295 | case 'EUR': |
@@ -334,14 +334,14 @@ discard block |
||
334 | 334 | * @param string $method The payment method to get the settings from. |
335 | 335 | * @param string $setting The name of the setting to get. |
336 | 336 | */ |
337 | - public static function get_settings( $method = null, $setting = null ) { |
|
338 | - $all_settings = null === $method ? get_option( 'woocommerce_stripe_settings', array() ) : get_option( 'woocommerce_stripe_' . $method . '_settings', array() ); |
|
337 | + public static function get_settings($method = null, $setting = null) { |
|
338 | + $all_settings = null === $method ? get_option('woocommerce_stripe_settings', array()) : get_option('woocommerce_stripe_' . $method . '_settings', array()); |
|
339 | 339 | |
340 | - if ( null === $setting ) { |
|
340 | + if (null === $setting) { |
|
341 | 341 | return $all_settings; |
342 | 342 | } |
343 | 343 | |
344 | - return isset( $all_settings[ $setting ] ) ? $all_settings[ $setting ] : ''; |
|
344 | + return isset($all_settings[$setting]) ? $all_settings[$setting] : ''; |
|
345 | 345 | } |
346 | 346 | |
347 | 347 | /** |
@@ -351,7 +351,7 @@ discard block |
||
351 | 351 | * @return bool |
352 | 352 | */ |
353 | 353 | public static function is_pre_orders_exists() { |
354 | - return class_exists( 'WC_Pre_Orders_Order' ); |
|
354 | + return class_exists('WC_Pre_Orders_Order'); |
|
355 | 355 | } |
356 | 356 | |
357 | 357 | /** |
@@ -363,9 +363,9 @@ discard block |
||
363 | 363 | * @return bool |
364 | 364 | */ |
365 | 365 | public static function is_pre_30() { |
366 | - error_log( 'is_pre_30() function has been deprecated since 4.1.11. Please use is_wc_lt( $version ) instead.' ); |
|
366 | + error_log('is_pre_30() function has been deprecated since 4.1.11. Please use is_wc_lt( $version ) instead.'); |
|
367 | 367 | |
368 | - return self::is_wc_lt( '3.0' ); |
|
368 | + return self::is_wc_lt('3.0'); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | /** |
@@ -375,8 +375,8 @@ discard block |
||
375 | 375 | * @param string $version Version to check against. |
376 | 376 | * @return bool |
377 | 377 | */ |
378 | - public static function is_wc_lt( $version ) { |
|
379 | - return version_compare( WC_VERSION, $version, '<' ); |
|
378 | + public static function is_wc_lt($version) { |
|
379 | + return version_compare(WC_VERSION, $version, '<'); |
|
380 | 380 | } |
381 | 381 | |
382 | 382 | /** |
@@ -389,7 +389,7 @@ discard block |
||
389 | 389 | * @return string |
390 | 390 | */ |
391 | 391 | public static function get_webhook_url() { |
392 | - return add_query_arg( 'wc-api', 'wc_stripe', trailingslashit( get_home_url() ) ); |
|
392 | + return add_query_arg('wc-api', 'wc_stripe', trailingslashit(get_home_url())); |
|
393 | 393 | } |
394 | 394 | |
395 | 395 | /** |
@@ -399,13 +399,13 @@ discard block |
||
399 | 399 | * @version 4.0.0 |
400 | 400 | * @param string $source_id |
401 | 401 | */ |
402 | - public static function get_order_by_source_id( $source_id ) { |
|
402 | + public static function get_order_by_source_id($source_id) { |
|
403 | 403 | global $wpdb; |
404 | 404 | |
405 | - $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $source_id, '_stripe_source_id' ) ); |
|
405 | + $order_id = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $source_id, '_stripe_source_id')); |
|
406 | 406 | |
407 | - if ( ! empty( $order_id ) ) { |
|
408 | - return wc_get_order( $order_id ); |
|
407 | + if ( ! empty($order_id)) { |
|
408 | + return wc_get_order($order_id); |
|
409 | 409 | } |
410 | 410 | |
411 | 411 | return false; |
@@ -418,17 +418,17 @@ discard block |
||
418 | 418 | * @since 4.1.16 Return false if charge_id is empty. |
419 | 419 | * @param string $charge_id |
420 | 420 | */ |
421 | - public static function get_order_by_charge_id( $charge_id ) { |
|
421 | + public static function get_order_by_charge_id($charge_id) { |
|
422 | 422 | global $wpdb; |
423 | 423 | |
424 | - if ( empty( $charge_id ) ) { |
|
424 | + if (empty($charge_id)) { |
|
425 | 425 | return false; |
426 | 426 | } |
427 | 427 | |
428 | - $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $charge_id, '_transaction_id' ) ); |
|
428 | + $order_id = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $charge_id, '_transaction_id')); |
|
429 | 429 | |
430 | - if ( ! empty( $order_id ) ) { |
|
431 | - return wc_get_order( $order_id ); |
|
430 | + if ( ! empty($order_id)) { |
|
431 | + return wc_get_order($order_id); |
|
432 | 432 | } |
433 | 433 | |
434 | 434 | return false; |
@@ -441,13 +441,13 @@ discard block |
||
441 | 441 | * @param string $intent_id The ID of the intent. |
442 | 442 | * @return WC_Order|bool Either an order or false when not found. |
443 | 443 | */ |
444 | - public static function get_order_by_intent_id( $intent_id ) { |
|
444 | + public static function get_order_by_intent_id($intent_id) { |
|
445 | 445 | global $wpdb; |
446 | 446 | |
447 | - $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $intent_id, '_stripe_intent_id' ) ); |
|
447 | + $order_id = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $intent_id, '_stripe_intent_id')); |
|
448 | 448 | |
449 | - if ( ! empty( $order_id ) ) { |
|
450 | - return wc_get_order( $order_id ); |
|
449 | + if ( ! empty($order_id)) { |
|
450 | + return wc_get_order($order_id); |
|
451 | 451 | } |
452 | 452 | |
453 | 453 | return false; |
@@ -460,13 +460,13 @@ discard block |
||
460 | 460 | * @param string $intent_id The ID of the intent. |
461 | 461 | * @return WC_Order|bool Either an order or false when not found. |
462 | 462 | */ |
463 | - public static function get_order_by_setup_intent_id( $intent_id ) { |
|
463 | + public static function get_order_by_setup_intent_id($intent_id) { |
|
464 | 464 | global $wpdb; |
465 | 465 | |
466 | - $order_id = $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $intent_id, '_stripe_setup_intent' ) ); |
|
466 | + $order_id = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts as posts LEFT JOIN $wpdb->postmeta as meta ON posts.ID = meta.post_id WHERE meta.meta_value = %s AND meta.meta_key = %s", $intent_id, '_stripe_setup_intent')); |
|
467 | 467 | |
468 | - if ( ! empty( $order_id ) ) { |
|
469 | - return wc_get_order( $order_id ); |
|
468 | + if ( ! empty($order_id)) { |
|
469 | + return wc_get_order($order_id); |
|
470 | 470 | } |
471 | 471 | |
472 | 472 | return false; |
@@ -482,13 +482,13 @@ discard block |
||
482 | 482 | * @param string $statement_descriptor |
483 | 483 | * @return string $statement_descriptor Sanitized statement descriptor |
484 | 484 | */ |
485 | - public static function clean_statement_descriptor( $statement_descriptor = '' ) { |
|
486 | - $disallowed_characters = array( '<', '>', '"', "'" ); |
|
485 | + public static function clean_statement_descriptor($statement_descriptor = '') { |
|
486 | + $disallowed_characters = array('<', '>', '"', "'"); |
|
487 | 487 | |
488 | 488 | // Remove special characters. |
489 | - $statement_descriptor = str_replace( $disallowed_characters, '', $statement_descriptor ); |
|
489 | + $statement_descriptor = str_replace($disallowed_characters, '', $statement_descriptor); |
|
490 | 490 | |
491 | - $statement_descriptor = substr( trim( $statement_descriptor ), 0, 22 ); |
|
491 | + $statement_descriptor = substr(trim($statement_descriptor), 0, 22); |
|
492 | 492 | |
493 | 493 | return $statement_descriptor; |
494 | 494 | } |
@@ -34,9 +34,9 @@ discard block |
||
34 | 34 | public function setUp() { |
35 | 35 | parent::setUp(); |
36 | 36 | |
37 | - $this->wc_stripe_subs_compat = $this->getMockBuilder( 'WC_Stripe_Subs_Compat' ) |
|
37 | + $this->wc_stripe_subs_compat = $this->getMockBuilder('WC_Stripe_Subs_Compat') |
|
38 | 38 | ->disableOriginalConstructor() |
39 | - ->setMethods( array( 'prepare_source', 'has_subscription' ) ) |
|
39 | + ->setMethods(array('prepare_source', 'has_subscription')) |
|
40 | 40 | ->getMock(); |
41 | 41 | |
42 | 42 | // Mocked in order to get metadata[payment_type] = recurring in the HTTP request. |
@@ -54,7 +54,7 @@ discard block |
||
54 | 54 | */ |
55 | 55 | public function tearDown() { |
56 | 56 | parent::tearDown(); |
57 | - delete_option( 'woocommerce_stripe_settings' ); |
|
57 | + delete_option('woocommerce_stripe_settings'); |
|
58 | 58 | } |
59 | 59 | |
60 | 60 | /** |
@@ -69,27 +69,27 @@ discard block |
||
69 | 69 | */ |
70 | 70 | public function test_initial_intent_parameters() { |
71 | 71 | $initial_order = WC_Helper_Order::create_order(); |
72 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $initial_order->id : $initial_order->get_id(); |
|
73 | - $stripe_amount = WC_Stripe_Helper::get_stripe_amount( $initial_order->get_total() ); |
|
74 | - $currency = strtolower( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $initial_order->get_order_currency() : $initial_order->get_currency() ); |
|
72 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $initial_order->id : $initial_order->get_id(); |
|
73 | + $stripe_amount = WC_Stripe_Helper::get_stripe_amount($initial_order->get_total()); |
|
74 | + $currency = strtolower(WC_Stripe_Helper::is_wc_lt('3.0') ? $initial_order->get_order_currency() : $initial_order->get_currency()); |
|
75 | 75 | $customer = 'cus_123abc'; |
76 | 76 | $source = 'src_123abc'; |
77 | - $statement_descriptor = WC_Stripe_Helper::clean_statement_descriptor( $this->statement_descriptor ); |
|
77 | + $statement_descriptor = WC_Stripe_Helper::clean_statement_descriptor($this->statement_descriptor); |
|
78 | 78 | $intents_api_endpoint = 'https://api.stripe.com/v1/payment_intents'; |
79 | 79 | $urls_used = array(); |
80 | 80 | |
81 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
81 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
82 | 82 | $initial_order->payment_method = 'stripe'; |
83 | - update_post_meta( $order_id, '_payment_method', 'stripe' ); // for `wc_get_order()`. |
|
83 | + update_post_meta($order_id, '_payment_method', 'stripe'); // for `wc_get_order()`. |
|
84 | 84 | } else { |
85 | - $initial_order->set_payment_method( 'stripe' ); |
|
85 | + $initial_order->set_payment_method('stripe'); |
|
86 | 86 | $initial_order->save(); |
87 | 87 | } |
88 | 88 | |
89 | 89 | // Arrange: Mock prepare_source() so that we have a customer and source. |
90 | 90 | $this->wc_stripe_subs_compat |
91 | - ->expects( $this->any() ) |
|
92 | - ->method( 'prepare_source' ) |
|
91 | + ->expects($this->any()) |
|
92 | + ->method('prepare_source') |
|
93 | 93 | ->will( |
94 | 94 | $this->returnValue( |
95 | 95 | (object) array( |
@@ -103,11 +103,11 @@ discard block |
||
103 | 103 | |
104 | 104 | // Emulate a subscription. |
105 | 105 | $this->wc_stripe_subs_compat |
106 | - ->expects( $this->any() ) |
|
107 | - ->method( 'has_subscription' ) |
|
108 | - ->will( $this->returnValue( true ) ); |
|
106 | + ->expects($this->any()) |
|
107 | + ->method('has_subscription') |
|
108 | + ->will($this->returnValue(true)); |
|
109 | 109 | |
110 | - $pre_http_request_response_callback = function( $preempt, $request_args, $url ) use ( |
|
110 | + $pre_http_request_response_callback = function($preempt, $request_args, $url) use ( |
|
111 | 111 | $stripe_amount, |
112 | 112 | $currency, |
113 | 113 | $customer, |
@@ -118,9 +118,9 @@ discard block |
||
118 | 118 | &$urls_used |
119 | 119 | ) { |
120 | 120 | // Add all urls to array so we can later make assertions about which endpoints were used. |
121 | - array_push( $urls_used, $url ); |
|
121 | + array_push($urls_used, $url); |
|
122 | 122 | // Continue without mocking the request if it's not the endpoint we care about. |
123 | - if ( 0 !== strpos( $url, $intents_api_endpoint ) ) { |
|
123 | + if (0 !== strpos($url, $intents_api_endpoint)) { |
|
124 | 124 | return false; |
125 | 125 | } |
126 | 126 | |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | $response = array( |
129 | 129 | 'headers' => array(), |
130 | 130 | // Too bad we aren't dynamically setting things 'cus_123abc' when using this file. |
131 | - 'body' => file_get_contents( 'tests/phpunit/dummy-data/subscription_signup_response_success.json' ), |
|
131 | + 'body' => file_get_contents('tests/phpunit/dummy-data/subscription_signup_response_success.json'), |
|
132 | 132 | 'response' => array( |
133 | 133 | 'code' => 200, |
134 | 134 | 'message' => 'OK', |
@@ -138,17 +138,17 @@ discard block |
||
138 | 138 | ); |
139 | 139 | |
140 | 140 | // Respond with a successfull intent for confirmations. |
141 | - if ( $url !== $intents_api_endpoint ) { |
|
142 | - $response['body'] = str_replace( 'requires_confirmation', 'succeeded', $response['body'] ); |
|
141 | + if ($url !== $intents_api_endpoint) { |
|
142 | + $response['body'] = str_replace('requires_confirmation', 'succeeded', $response['body']); |
|
143 | 143 | return $response; |
144 | 144 | } |
145 | 145 | |
146 | 146 | // Assert: the request method is POST. |
147 | - $this->assertArrayHasKey( 'method', $request_args ); |
|
148 | - $this->assertSame( 'POST', $request_args['method'] ); |
|
147 | + $this->assertArrayHasKey('method', $request_args); |
|
148 | + $this->assertSame('POST', $request_args['method']); |
|
149 | 149 | |
150 | 150 | // Assert: the request has a body. |
151 | - $this->assertArrayHasKey( 'body', $request_args ); |
|
151 | + $this->assertArrayHasKey('body', $request_args); |
|
152 | 152 | |
153 | 153 | // Assert: the request body contains these values. |
154 | 154 | $expected_request_body_values = array( |
@@ -158,11 +158,11 @@ discard block |
||
158 | 158 | 'statement_descriptor' => $statement_descriptor, |
159 | 159 | 'customer' => $customer, |
160 | 160 | 'setup_future_usage' => 'off_session', |
161 | - 'payment_method_types' => array( 'card' ), |
|
161 | + 'payment_method_types' => array('card'), |
|
162 | 162 | ); |
163 | - foreach ( $expected_request_body_values as $key => $value ) { |
|
164 | - $this->assertArrayHasKey( $key, $request_args['body'] ); |
|
165 | - $this->assertSame( $value, $request_args['body'][ $key ] ); |
|
163 | + foreach ($expected_request_body_values as $key => $value) { |
|
164 | + $this->assertArrayHasKey($key, $request_args['body']); |
|
165 | + $this->assertSame($value, $request_args['body'][$key]); |
|
166 | 166 | } |
167 | 167 | |
168 | 168 | // Assert: the request body contains these keys, without checking for their value. |
@@ -170,48 +170,48 @@ discard block |
||
170 | 170 | 'description', |
171 | 171 | 'capture_method', |
172 | 172 | ); |
173 | - foreach ( $expected_request_body_keys as $key ) { |
|
174 | - $this->assertArrayHasKey( $key, $request_args['body'] ); |
|
173 | + foreach ($expected_request_body_keys as $key) { |
|
174 | + $this->assertArrayHasKey($key, $request_args['body']); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | // Assert: the body metadata contains the order ID. |
178 | - $this->assertSame( $order_id, absint( $request_args['body']['metadata']['order_id'] ) ); |
|
178 | + $this->assertSame($order_id, absint($request_args['body']['metadata']['order_id'])); |
|
179 | 179 | |
180 | 180 | // // Assert: the body metadata has these keys, without checking for their value. |
181 | 181 | $expected_metadata_keys = array( |
182 | 182 | 'customer_name', |
183 | 183 | 'customer_email', |
184 | 184 | ); |
185 | - foreach ( $expected_metadata_keys as $key ) { |
|
186 | - $this->assertArrayHasKey( $key, $request_args['body']['metadata'] ); |
|
185 | + foreach ($expected_metadata_keys as $key) { |
|
186 | + $this->assertArrayHasKey($key, $request_args['body']['metadata']); |
|
187 | 187 | } |
188 | 188 | |
189 | 189 | // Return dummy content as the response. |
190 | 190 | return $response; |
191 | 191 | }; |
192 | - add_filter( 'pre_http_request', $pre_http_request_response_callback, 10, 3 ); |
|
192 | + add_filter('pre_http_request', $pre_http_request_response_callback, 10, 3); |
|
193 | 193 | |
194 | 194 | // Act: call process_subscription_payment(). |
195 | 195 | // We need to use `wc_stripe_subs_compat` here because we mocked this class earlier. |
196 | - $result = $this->wc_stripe_subs_compat->process_payment( $order_id ); |
|
196 | + $result = $this->wc_stripe_subs_compat->process_payment($order_id); |
|
197 | 197 | |
198 | 198 | // Assert: nothing was returned. |
199 | - $this->assertEquals( $result['result'], 'success' ); |
|
200 | - $this->assertArrayHasKey( 'redirect', $result ); |
|
199 | + $this->assertEquals($result['result'], 'success'); |
|
200 | + $this->assertArrayHasKey('redirect', $result); |
|
201 | 201 | |
202 | - $order = wc_get_order( $order_id ); |
|
202 | + $order = wc_get_order($order_id); |
|
203 | 203 | $order_data = ( |
204 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) |
|
205 | - ? get_post_meta( $order_id, '_stripe_intent_id', true ) |
|
206 | - : $order->get_meta( '_stripe_intent_id' ) |
|
204 | + WC_Stripe_Helper::is_wc_lt('3.0') |
|
205 | + ? get_post_meta($order_id, '_stripe_intent_id', true) |
|
206 | + : $order->get_meta('_stripe_intent_id') |
|
207 | 207 | ); |
208 | 208 | |
209 | - $this->assertEquals( $order_data, 'pi_123abc' ); |
|
209 | + $this->assertEquals($order_data, 'pi_123abc'); |
|
210 | 210 | |
211 | 211 | // Assert: called payment intents. |
212 | - $this->assertTrue( in_array( $intents_api_endpoint, $urls_used, true ) ); |
|
212 | + $this->assertTrue(in_array($intents_api_endpoint, $urls_used, true)); |
|
213 | 213 | |
214 | 214 | // Clean up. |
215 | - remove_filter( 'pre_http_request', array( $this, 'pre_http_request_response_success' ) ); |
|
215 | + remove_filter('pre_http_request', array($this, 'pre_http_request_response_success')); |
|
216 | 216 | } |
217 | 217 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -39,12 +39,12 @@ discard block |
||
39 | 39 | */ |
40 | 40 | public function __construct() { |
41 | 41 | $this->retry_interval = 2; |
42 | - $stripe_settings = get_option( 'woocommerce_stripe_settings', array() ); |
|
43 | - $this->testmode = ( ! empty( $stripe_settings['testmode'] ) && 'yes' === $stripe_settings['testmode'] ) ? true : false; |
|
44 | - $secret_key = ( $this->testmode ? 'test_' : '' ) . 'webhook_secret'; |
|
45 | - $this->secret = ! empty( $stripe_settings[ $secret_key ] ) ? $stripe_settings[ $secret_key ] : false; |
|
42 | + $stripe_settings = get_option('woocommerce_stripe_settings', array()); |
|
43 | + $this->testmode = ( ! empty($stripe_settings['testmode']) && 'yes' === $stripe_settings['testmode']) ? true : false; |
|
44 | + $secret_key = ($this->testmode ? 'test_' : '') . 'webhook_secret'; |
|
45 | + $this->secret = ! empty($stripe_settings[$secret_key]) ? $stripe_settings[$secret_key] : false; |
|
46 | 46 | |
47 | - add_action( 'woocommerce_api_wc_stripe', array( $this, 'check_for_webhook' ) ); |
|
47 | + add_action('woocommerce_api_wc_stripe', array($this, 'check_for_webhook')); |
|
48 | 48 | } |
49 | 49 | |
50 | 50 | /** |
@@ -54,24 +54,24 @@ discard block |
||
54 | 54 | * @version 4.0.0 |
55 | 55 | */ |
56 | 56 | public function check_for_webhook() { |
57 | - if ( ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) |
|
58 | - || ! isset( $_GET['wc-api'] ) |
|
59 | - || ( 'wc_stripe' !== $_GET['wc-api'] ) |
|
57 | + if (('POST' !== $_SERVER['REQUEST_METHOD']) |
|
58 | + || ! isset($_GET['wc-api']) |
|
59 | + || ('wc_stripe' !== $_GET['wc-api']) |
|
60 | 60 | ) { |
61 | 61 | return; |
62 | 62 | } |
63 | 63 | |
64 | - $request_body = file_get_contents( 'php://input' ); |
|
65 | - $request_headers = array_change_key_case( $this->get_request_headers(), CASE_UPPER ); |
|
64 | + $request_body = file_get_contents('php://input'); |
|
65 | + $request_headers = array_change_key_case($this->get_request_headers(), CASE_UPPER); |
|
66 | 66 | |
67 | 67 | // Validate it to make sure it is legit. |
68 | - if ( $this->is_valid_request( $request_headers, $request_body ) ) { |
|
69 | - $this->process_webhook( $request_body ); |
|
70 | - status_header( 200 ); |
|
68 | + if ($this->is_valid_request($request_headers, $request_body)) { |
|
69 | + $this->process_webhook($request_body); |
|
70 | + status_header(200); |
|
71 | 71 | exit; |
72 | 72 | } else { |
73 | - WC_Stripe_Logger::log( 'Incoming webhook failed validation: ' . print_r( $request_body, true ) ); |
|
74 | - status_header( 400 ); |
|
73 | + WC_Stripe_Logger::log('Incoming webhook failed validation: ' . print_r($request_body, true)); |
|
74 | + status_header(400); |
|
75 | 75 | exit; |
76 | 76 | } |
77 | 77 | } |
@@ -85,34 +85,34 @@ discard block |
||
85 | 85 | * @param string $request_body The request body from Stripe. |
86 | 86 | * @return bool |
87 | 87 | */ |
88 | - public function is_valid_request( $request_headers = null, $request_body = null ) { |
|
89 | - if ( null === $request_headers || null === $request_body ) { |
|
88 | + public function is_valid_request($request_headers = null, $request_body = null) { |
|
89 | + if (null === $request_headers || null === $request_body) { |
|
90 | 90 | return false; |
91 | 91 | } |
92 | 92 | |
93 | - if ( ! empty( $request_headers['USER-AGENT'] ) && ! preg_match( '/Stripe/', $request_headers['USER-AGENT'] ) ) { |
|
93 | + if ( ! empty($request_headers['USER-AGENT']) && ! preg_match('/Stripe/', $request_headers['USER-AGENT'])) { |
|
94 | 94 | return false; |
95 | 95 | } |
96 | 96 | |
97 | - if ( ! empty( $this->secret ) ) { |
|
97 | + if ( ! empty($this->secret)) { |
|
98 | 98 | // Check for a valid signature. |
99 | 99 | $signature_format = '/^t=(?P<timestamp>\d+)(?P<signatures>(,v\d+=[a-z0-9]+){1,2})$/'; |
100 | - if ( empty( $request_headers['STRIPE-SIGNATURE'] ) || ! preg_match( $signature_format, $request_headers['STRIPE-SIGNATURE'], $matches ) ) { |
|
100 | + if (empty($request_headers['STRIPE-SIGNATURE']) || ! preg_match($signature_format, $request_headers['STRIPE-SIGNATURE'], $matches)) { |
|
101 | 101 | return false; |
102 | 102 | } |
103 | 103 | |
104 | 104 | // Verify the timestamp. |
105 | - $timestamp = intval( $matches['timestamp'] ); |
|
106 | - if ( abs( $timestamp - time() ) > 5 * MINUTE_IN_SECONDS ) { |
|
105 | + $timestamp = intval($matches['timestamp']); |
|
106 | + if (abs($timestamp - time()) > 5 * MINUTE_IN_SECONDS) { |
|
107 | 107 | return; |
108 | 108 | } |
109 | 109 | |
110 | 110 | // Generate the expected signature. |
111 | 111 | $signed_payload = $timestamp . '.' . $request_body; |
112 | - $expected_signature = hash_hmac( 'sha256', $signed_payload, $this->secret ); |
|
112 | + $expected_signature = hash_hmac('sha256', $signed_payload, $this->secret); |
|
113 | 113 | |
114 | 114 | // Check if the expected signature is present. |
115 | - if ( ! preg_match( '/,v\d+=' . preg_quote( $expected_signature, '/' ) . '/', $matches['signatures'] ) ) { |
|
115 | + if ( ! preg_match('/,v\d+=' . preg_quote($expected_signature, '/') . '/', $matches['signatures'])) { |
|
116 | 116 | return false; |
117 | 117 | } |
118 | 118 | } |
@@ -129,12 +129,12 @@ discard block |
||
129 | 129 | * @version 4.0.0 |
130 | 130 | */ |
131 | 131 | public function get_request_headers() { |
132 | - if ( ! function_exists( 'getallheaders' ) ) { |
|
132 | + if ( ! function_exists('getallheaders')) { |
|
133 | 133 | $headers = array(); |
134 | 134 | |
135 | - foreach ( $_SERVER as $name => $value ) { |
|
136 | - if ( 'HTTP_' === substr( $name, 0, 5 ) ) { |
|
137 | - $headers[ str_replace( ' ', '-', ucwords( strtolower( str_replace( '_', ' ', substr( $name, 5 ) ) ) ) ) ] = $value; |
|
135 | + foreach ($_SERVER as $name => $value) { |
|
136 | + if ('HTTP_' === substr($name, 0, 5)) { |
|
137 | + $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; |
|
138 | 138 | } |
139 | 139 | } |
140 | 140 | |
@@ -153,30 +153,30 @@ discard block |
||
153 | 153 | * @param object $notification |
154 | 154 | * @param bool $retry |
155 | 155 | */ |
156 | - public function process_webhook_payment( $notification, $retry = true ) { |
|
156 | + public function process_webhook_payment($notification, $retry = true) { |
|
157 | 157 | // The following 3 payment methods are synchronous so does not need to be handle via webhook. |
158 | - if ( 'card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $notification->data->object->type ) { |
|
158 | + if ('card' === $notification->data->object->type || 'sepa_debit' === $notification->data->object->type || 'three_d_secure' === $notification->data->object->type) { |
|
159 | 159 | return; |
160 | 160 | } |
161 | 161 | |
162 | - $order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id ); |
|
162 | + $order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id); |
|
163 | 163 | |
164 | - if ( ! $order ) { |
|
165 | - WC_Stripe_Logger::log( 'Could not find order via source ID: ' . $notification->data->object->id ); |
|
164 | + if ( ! $order) { |
|
165 | + WC_Stripe_Logger::log('Could not find order via source ID: ' . $notification->data->object->id); |
|
166 | 166 | return; |
167 | 167 | } |
168 | 168 | |
169 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
169 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
170 | 170 | $source_id = $notification->data->object->id; |
171 | 171 | |
172 | - $is_pending_receiver = ( 'receiver' === $notification->data->object->flow ); |
|
172 | + $is_pending_receiver = ('receiver' === $notification->data->object->flow); |
|
173 | 173 | |
174 | 174 | try { |
175 | - if ( 'processing' === $order->get_status() || 'completed' === $order->get_status() ) { |
|
175 | + if ('processing' === $order->get_status() || 'completed' === $order->get_status()) { |
|
176 | 176 | return; |
177 | 177 | } |
178 | 178 | |
179 | - if ( 'on-hold' === $order->get_status() && ! $is_pending_receiver ) { |
|
179 | + if ('on-hold' === $order->get_status() && ! $is_pending_receiver) { |
|
180 | 180 | return; |
181 | 181 | } |
182 | 182 | |
@@ -184,94 +184,94 @@ discard block |
||
184 | 184 | $response = null; |
185 | 185 | |
186 | 186 | // This will throw exception if not valid. |
187 | - $this->validate_minimum_order_amount( $order ); |
|
187 | + $this->validate_minimum_order_amount($order); |
|
188 | 188 | |
189 | - WC_Stripe_Logger::log( "Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}" ); |
|
189 | + WC_Stripe_Logger::log("Info: (Webhook) Begin processing payment for order $order_id for the amount of {$order->get_total()}"); |
|
190 | 190 | |
191 | 191 | // Prep source object. |
192 | 192 | $source_object = new stdClass(); |
193 | 193 | $source_object->token_id = ''; |
194 | - $source_object->customer = $this->get_stripe_customer_id( $order ); |
|
194 | + $source_object->customer = $this->get_stripe_customer_id($order); |
|
195 | 195 | $source_object->source = $source_id; |
196 | 196 | |
197 | 197 | // Make the request. |
198 | - $response = WC_Stripe_API::request( $this->generate_payment_request( $order, $source_object ), 'charges', 'POST', true ); |
|
198 | + $response = WC_Stripe_API::request($this->generate_payment_request($order, $source_object), 'charges', 'POST', true); |
|
199 | 199 | $headers = $response['headers']; |
200 | 200 | $response = $response['body']; |
201 | 201 | |
202 | - if ( ! empty( $response->error ) ) { |
|
202 | + if ( ! empty($response->error)) { |
|
203 | 203 | // Customer param wrong? The user may have been deleted on stripe's end. Remove customer_id. Can be retried without. |
204 | - if ( $this->is_no_such_customer_error( $response->error ) ) { |
|
205 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
206 | - delete_user_meta( $order->customer_user, '_stripe_customer_id' ); |
|
207 | - delete_post_meta( $order_id, '_stripe_customer_id' ); |
|
204 | + if ($this->is_no_such_customer_error($response->error)) { |
|
205 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
206 | + delete_user_meta($order->customer_user, '_stripe_customer_id'); |
|
207 | + delete_post_meta($order_id, '_stripe_customer_id'); |
|
208 | 208 | } else { |
209 | - delete_user_meta( $order->get_customer_id(), '_stripe_customer_id' ); |
|
210 | - $order->delete_meta_data( '_stripe_customer_id' ); |
|
209 | + delete_user_meta($order->get_customer_id(), '_stripe_customer_id'); |
|
210 | + $order->delete_meta_data('_stripe_customer_id'); |
|
211 | 211 | $order->save(); |
212 | 212 | } |
213 | 213 | } |
214 | 214 | |
215 | - if ( $this->is_no_such_token_error( $response->error ) && $prepared_source->token_id ) { |
|
215 | + if ($this->is_no_such_token_error($response->error) && $prepared_source->token_id) { |
|
216 | 216 | // Source param wrong? The CARD may have been deleted on stripe's end. Remove token and show message. |
217 | - $wc_token = WC_Payment_Tokens::get( $prepared_source->token_id ); |
|
217 | + $wc_token = WC_Payment_Tokens::get($prepared_source->token_id); |
|
218 | 218 | $wc_token->delete(); |
219 | - $localized_message = __( 'This card is no longer available and has been removed.', 'woocommerce-gateway-stripe' ); |
|
220 | - $order->add_order_note( $localized_message ); |
|
221 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
219 | + $localized_message = __('This card is no longer available and has been removed.', 'woocommerce-gateway-stripe'); |
|
220 | + $order->add_order_note($localized_message); |
|
221 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
222 | 222 | } |
223 | 223 | |
224 | 224 | // We want to retry. |
225 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
226 | - if ( $retry ) { |
|
225 | + if ($this->is_retryable_error($response->error)) { |
|
226 | + if ($retry) { |
|
227 | 227 | // Don't do anymore retries after this. |
228 | - if ( 5 <= $this->retry_interval ) { |
|
228 | + if (5 <= $this->retry_interval) { |
|
229 | 229 | |
230 | - return $this->process_webhook_payment( $notification, false ); |
|
230 | + return $this->process_webhook_payment($notification, false); |
|
231 | 231 | } |
232 | 232 | |
233 | - sleep( $this->retry_interval ); |
|
233 | + sleep($this->retry_interval); |
|
234 | 234 | |
235 | 235 | $this->retry_interval++; |
236 | - return $this->process_webhook_payment( $notification, true ); |
|
236 | + return $this->process_webhook_payment($notification, true); |
|
237 | 237 | } else { |
238 | - $localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' ); |
|
239 | - $order->add_order_note( $localized_message ); |
|
240 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
238 | + $localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe'); |
|
239 | + $order->add_order_note($localized_message); |
|
240 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
241 | 241 | } |
242 | 242 | } |
243 | 243 | |
244 | 244 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
245 | 245 | |
246 | - if ( 'card_error' === $response->error->type ) { |
|
247 | - $localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
246 | + if ('card_error' === $response->error->type) { |
|
247 | + $localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
248 | 248 | } else { |
249 | - $localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
249 | + $localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
250 | 250 | } |
251 | 251 | |
252 | - $order->add_order_note( $localized_message ); |
|
252 | + $order->add_order_note($localized_message); |
|
253 | 253 | |
254 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
254 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
255 | 255 | } |
256 | 256 | |
257 | 257 | // To prevent double processing the order on WC side. |
258 | - if ( ! $this->is_original_request( $headers ) ) { |
|
258 | + if ( ! $this->is_original_request($headers)) { |
|
259 | 259 | return; |
260 | 260 | } |
261 | 261 | |
262 | - do_action( 'wc_gateway_stripe_process_webhook_payment', $response, $order ); |
|
262 | + do_action('wc_gateway_stripe_process_webhook_payment', $response, $order); |
|
263 | 263 | |
264 | - $this->process_response( $response, $order ); |
|
264 | + $this->process_response($response, $order); |
|
265 | 265 | |
266 | - } catch ( WC_Stripe_Exception $e ) { |
|
267 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
266 | + } catch (WC_Stripe_Exception $e) { |
|
267 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
268 | 268 | |
269 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e ); |
|
269 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification, $e); |
|
270 | 270 | |
271 | - $statuses = array( 'pending', 'failed' ); |
|
271 | + $statuses = array('pending', 'failed'); |
|
272 | 272 | |
273 | - if ( $order->has_status( $statuses ) ) { |
|
274 | - $this->send_failed_order_email( $order_id ); |
|
273 | + if ($order->has_status($statuses)) { |
|
274 | + $this->send_failed_order_email($order_id); |
|
275 | 275 | } |
276 | 276 | } |
277 | 277 | } |
@@ -284,21 +284,21 @@ discard block |
||
284 | 284 | * @since 4.0.0 |
285 | 285 | * @param object $notification |
286 | 286 | */ |
287 | - public function process_webhook_dispute( $notification ) { |
|
288 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge ); |
|
287 | + public function process_webhook_dispute($notification) { |
|
288 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge); |
|
289 | 289 | |
290 | - if ( ! $order ) { |
|
291 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->charge ); |
|
290 | + if ( ! $order) { |
|
291 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->charge); |
|
292 | 292 | return; |
293 | 293 | } |
294 | 294 | |
295 | 295 | /* translators: 1) The URL to the order. */ |
296 | - $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 ) ) ); |
|
296 | + $order->update_status('on-hold', sprintf(__('A dispute was created for this order. Response is needed. Please go to your <a href="%s" title="Stripe Dashboard" target="_blank">Stripe Dashboard</a> to review this dispute.', 'woocommerce-gateway-stripe'), $this->get_transaction_url($order))); |
|
297 | 297 | |
298 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
298 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
299 | 299 | |
300 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
301 | - $this->send_failed_order_email( $order_id ); |
|
300 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
301 | + $this->send_failed_order_email($order_id); |
|
302 | 302 | } |
303 | 303 | |
304 | 304 | /** |
@@ -309,45 +309,45 @@ discard block |
||
309 | 309 | * @version 4.0.0 |
310 | 310 | * @param object $notification |
311 | 311 | */ |
312 | - public function process_webhook_capture( $notification ) { |
|
313 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
312 | + public function process_webhook_capture($notification) { |
|
313 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
314 | 314 | |
315 | - if ( ! $order ) { |
|
316 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
315 | + if ( ! $order) { |
|
316 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
317 | 317 | return; |
318 | 318 | } |
319 | 319 | |
320 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
320 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
321 | 321 | |
322 | - if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) { |
|
323 | - $charge = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id(); |
|
324 | - $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 ); |
|
322 | + if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) { |
|
323 | + $charge = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id(); |
|
324 | + $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); |
|
325 | 325 | |
326 | - if ( $charge && 'no' === $captured ) { |
|
327 | - 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' ); |
|
326 | + if ($charge && 'no' === $captured) { |
|
327 | + 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'); |
|
328 | 328 | |
329 | 329 | // Store other data such as fees |
330 | - 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 ); |
|
330 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id); |
|
331 | 331 | |
332 | - if ( isset( $notification->data->object->balance_transaction ) ) { |
|
333 | - $this->update_fees( $order, $notification->data->object->balance_transaction ); |
|
332 | + if (isset($notification->data->object->balance_transaction)) { |
|
333 | + $this->update_fees($order, $notification->data->object->balance_transaction); |
|
334 | 334 | } |
335 | 335 | |
336 | 336 | // Check and see if capture is partial. |
337 | - if ( $this->is_partial_capture( $notification ) ) { |
|
338 | - $partial_amount = $this->get_partial_amount_to_charge( $notification ); |
|
339 | - $order->set_total( $partial_amount ); |
|
340 | - $this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction ); |
|
337 | + if ($this->is_partial_capture($notification)) { |
|
338 | + $partial_amount = $this->get_partial_amount_to_charge($notification); |
|
339 | + $order->set_total($partial_amount); |
|
340 | + $this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction); |
|
341 | 341 | /* translators: partial captured amount */ |
342 | - $order->add_order_note( sprintf( __( 'This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe' ), $partial_amount ) ); |
|
342 | + $order->add_order_note(sprintf(__('This charge was partially captured via Stripe Dashboard in the amount of: %s', 'woocommerce-gateway-stripe'), $partial_amount)); |
|
343 | 343 | } else { |
344 | - $order->payment_complete( $notification->data->object->id ); |
|
344 | + $order->payment_complete($notification->data->object->id); |
|
345 | 345 | |
346 | 346 | /* translators: transaction id */ |
347 | - $order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) ); |
|
347 | + $order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id)); |
|
348 | 348 | } |
349 | 349 | |
350 | - if ( is_callable( array( $order, 'save' ) ) ) { |
|
350 | + if (is_callable(array($order, 'save'))) { |
|
351 | 351 | $order->save(); |
352 | 352 | } |
353 | 353 | } |
@@ -362,43 +362,43 @@ discard block |
||
362 | 362 | * @version 4.0.0 |
363 | 363 | * @param object $notification |
364 | 364 | */ |
365 | - public function process_webhook_charge_succeeded( $notification ) { |
|
365 | + public function process_webhook_charge_succeeded($notification) { |
|
366 | 366 | // Ignore the notification for charges, created through PaymentIntents. |
367 | - if ( isset( $notification->data->object->payment_intent ) && $notification->data->object->payment_intent ) { |
|
367 | + if (isset($notification->data->object->payment_intent) && $notification->data->object->payment_intent) { |
|
368 | 368 | return; |
369 | 369 | } |
370 | 370 | |
371 | 371 | // The following payment methods are synchronous so does not need to be handle via webhook. |
372 | - 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 ) ) { |
|
372 | + if ((isset($notification->data->object->source->type) && 'card' === $notification->data->object->source->type) || (isset($notification->data->object->source->type) && 'three_d_secure' === $notification->data->object->source->type)) { |
|
373 | 373 | return; |
374 | 374 | } |
375 | 375 | |
376 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
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 | - if ( 'on-hold' !== $order->get_status() ) { |
|
385 | + if ('on-hold' !== $order->get_status()) { |
|
386 | 386 | return; |
387 | 387 | } |
388 | 388 | |
389 | 389 | // Store other data such as fees |
390 | - 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 ); |
|
390 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_transaction_id', $notification->data->object->id) : $order->set_transaction_id($notification->data->object->id); |
|
391 | 391 | |
392 | - if ( isset( $notification->data->object->balance_transaction ) ) { |
|
393 | - $this->update_fees( $order, $notification->data->object->balance_transaction ); |
|
392 | + if (isset($notification->data->object->balance_transaction)) { |
|
393 | + $this->update_fees($order, $notification->data->object->balance_transaction); |
|
394 | 394 | } |
395 | 395 | |
396 | - $order->payment_complete( $notification->data->object->id ); |
|
396 | + $order->payment_complete($notification->data->object->id); |
|
397 | 397 | |
398 | 398 | /* translators: transaction id */ |
399 | - $order->add_order_note( sprintf( __( 'Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $notification->data->object->id ) ); |
|
399 | + $order->add_order_note(sprintf(__('Stripe charge complete (Charge ID: %s)', 'woocommerce-gateway-stripe'), $notification->data->object->id)); |
|
400 | 400 | |
401 | - if ( is_callable( array( $order, 'save' ) ) ) { |
|
401 | + if (is_callable(array($order, 'save'))) { |
|
402 | 402 | $order->save(); |
403 | 403 | } |
404 | 404 | } |
@@ -410,24 +410,24 @@ discard block |
||
410 | 410 | * @since 4.1.5 Can handle any fail payments from any methods. |
411 | 411 | * @param object $notification |
412 | 412 | */ |
413 | - public function process_webhook_charge_failed( $notification ) { |
|
414 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
413 | + public function process_webhook_charge_failed($notification) { |
|
414 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
415 | 415 | |
416 | - if ( ! $order ) { |
|
417 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
416 | + if ( ! $order) { |
|
417 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
418 | 418 | return; |
419 | 419 | } |
420 | 420 | |
421 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
421 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
422 | 422 | |
423 | 423 | // If order status is already in failed status don't continue. |
424 | - if ( 'failed' === $order->get_status() ) { |
|
424 | + if ('failed' === $order->get_status()) { |
|
425 | 425 | return; |
426 | 426 | } |
427 | 427 | |
428 | - $order->update_status( 'failed', __( 'This payment failed to clear.', 'woocommerce-gateway-stripe' ) ); |
|
428 | + $order->update_status('failed', __('This payment failed to clear.', 'woocommerce-gateway-stripe')); |
|
429 | 429 | |
430 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
430 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
431 | 431 | } |
432 | 432 | |
433 | 433 | /** |
@@ -438,30 +438,30 @@ discard block |
||
438 | 438 | * @since 4.1.15 Add check to make sure order is processed by Stripe. |
439 | 439 | * @param object $notification |
440 | 440 | */ |
441 | - public function process_webhook_source_canceled( $notification ) { |
|
442 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
441 | + public function process_webhook_source_canceled($notification) { |
|
442 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
443 | 443 | |
444 | 444 | // If can't find order by charge ID, try source ID. |
445 | - if ( ! $order ) { |
|
446 | - $order = WC_Stripe_Helper::get_order_by_source_id( $notification->data->object->id ); |
|
445 | + if ( ! $order) { |
|
446 | + $order = WC_Stripe_Helper::get_order_by_source_id($notification->data->object->id); |
|
447 | 447 | |
448 | - if ( ! $order ) { |
|
449 | - WC_Stripe_Logger::log( 'Could not find order via charge/source ID: ' . $notification->data->object->id ); |
|
448 | + if ( ! $order) { |
|
449 | + WC_Stripe_Logger::log('Could not find order via charge/source ID: ' . $notification->data->object->id); |
|
450 | 450 | return; |
451 | 451 | } |
452 | 452 | } |
453 | 453 | |
454 | 454 | // Don't proceed if payment method isn't Stripe. |
455 | - if ( 'stripe' !== $order->get_payment_method() ) { |
|
456 | - WC_Stripe_Logger::log( 'Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id() ); |
|
455 | + if ('stripe' !== $order->get_payment_method()) { |
|
456 | + WC_Stripe_Logger::log('Canceled webhook abort: Order was not processed by Stripe: ' . $order->get_id()); |
|
457 | 457 | return; |
458 | 458 | } |
459 | 459 | |
460 | - if ( 'cancelled' !== $order->get_status() ) { |
|
461 | - $order->update_status( 'cancelled', __( 'This payment has cancelled.', 'woocommerce-gateway-stripe' ) ); |
|
460 | + if ('cancelled' !== $order->get_status()) { |
|
461 | + $order->update_status('cancelled', __('This payment has cancelled.', 'woocommerce-gateway-stripe')); |
|
462 | 462 | } |
463 | 463 | |
464 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
464 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
465 | 465 | } |
466 | 466 | |
467 | 467 | /** |
@@ -471,59 +471,59 @@ discard block |
||
471 | 471 | * @version 4.0.0 |
472 | 472 | * @param object $notification |
473 | 473 | */ |
474 | - public function process_webhook_refund( $notification ) { |
|
475 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->id ); |
|
474 | + public function process_webhook_refund($notification) { |
|
475 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->id); |
|
476 | 476 | |
477 | - if ( ! $order ) { |
|
478 | - WC_Stripe_Logger::log( 'Could not find order via charge ID: ' . $notification->data->object->id ); |
|
477 | + if ( ! $order) { |
|
478 | + WC_Stripe_Logger::log('Could not find order via charge ID: ' . $notification->data->object->id); |
|
479 | 479 | return; |
480 | 480 | } |
481 | 481 | |
482 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
482 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
483 | 483 | |
484 | - if ( 'stripe' === ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->payment_method : $order->get_payment_method() ) ) { |
|
485 | - $charge = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? get_post_meta( $order_id, '_transaction_id', true ) : $order->get_transaction_id(); |
|
486 | - $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 ); |
|
487 | - $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 ); |
|
484 | + if ('stripe' === (WC_Stripe_Helper::is_wc_lt('3.0') ? $order->payment_method : $order->get_payment_method())) { |
|
485 | + $charge = WC_Stripe_Helper::is_wc_lt('3.0') ? get_post_meta($order_id, '_transaction_id', true) : $order->get_transaction_id(); |
|
486 | + $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); |
|
487 | + $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); |
|
488 | 488 | |
489 | 489 | // If the refund ID matches, don't continue to prevent double refunding. |
490 | - if ( $notification->data->object->refunds->data[0]->id === $refund_id ) { |
|
490 | + if ($notification->data->object->refunds->data[0]->id === $refund_id) { |
|
491 | 491 | return; |
492 | 492 | } |
493 | 493 | |
494 | 494 | // Only refund captured charge. |
495 | - if ( $charge ) { |
|
496 | - $reason = ( isset( $captured ) && 'yes' === $captured ) ? __( 'Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe' ) : __( 'Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe' ); |
|
495 | + if ($charge) { |
|
496 | + $reason = (isset($captured) && 'yes' === $captured) ? __('Refunded via Stripe Dashboard', 'woocommerce-gateway-stripe') : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe'); |
|
497 | 497 | |
498 | 498 | // Create the refund. |
499 | 499 | $refund = wc_create_refund( |
500 | 500 | array( |
501 | 501 | 'order_id' => $order_id, |
502 | - 'amount' => $this->get_refund_amount( $notification ), |
|
502 | + 'amount' => $this->get_refund_amount($notification), |
|
503 | 503 | 'reason' => $reason, |
504 | 504 | ) |
505 | 505 | ); |
506 | 506 | |
507 | - if ( is_wp_error( $refund ) ) { |
|
508 | - WC_Stripe_Logger::log( $refund->get_error_message() ); |
|
507 | + if (is_wp_error($refund)) { |
|
508 | + WC_Stripe_Logger::log($refund->get_error_message()); |
|
509 | 509 | } |
510 | 510 | |
511 | - 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 ); |
|
511 | + WC_Stripe_Helper::is_wc_lt('3.0') ? update_post_meta($order_id, '_stripe_refund_id', $notification->data->object->refunds->data[0]->id) : $order->update_meta_data('_stripe_refund_id', $notification->data->object->refunds->data[0]->id); |
|
512 | 512 | |
513 | - $amount = wc_price( $notification->data->object->refunds->data[0]->amount / 100 ); |
|
513 | + $amount = wc_price($notification->data->object->refunds->data[0]->amount / 100); |
|
514 | 514 | |
515 | - 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() ) ) { |
|
516 | - $amount = wc_price( $notification->data->object->refunds->data[0]->amount ); |
|
515 | + 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())) { |
|
516 | + $amount = wc_price($notification->data->object->refunds->data[0]->amount); |
|
517 | 517 | } |
518 | 518 | |
519 | - if ( isset( $notification->data->object->refunds->data[0]->balance_transaction ) ) { |
|
520 | - $this->update_fees( $order, $notification->data->object->refunds->data[0]->balance_transaction ); |
|
519 | + if (isset($notification->data->object->refunds->data[0]->balance_transaction)) { |
|
520 | + $this->update_fees($order, $notification->data->object->refunds->data[0]->balance_transaction); |
|
521 | 521 | } |
522 | 522 | |
523 | 523 | /* translators: 1) dollar amount 2) transaction id 3) refund message */ |
524 | - $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' ); |
|
524 | + $refund_message = (isset($captured) && 'yes' === $captured) ? sprintf(__('Refunded %1$s - Refund ID: %2$s - %3$s', 'woocommerce-gateway-stripe'), $amount, $notification->data->object->refunds->data[0]->id, $reason) : __('Pre-Authorization Released via Stripe Dashboard', 'woocommerce-gateway-stripe'); |
|
525 | 525 | |
526 | - $order->add_order_note( $refund_message ); |
|
526 | + $order->add_order_note($refund_message); |
|
527 | 527 | } |
528 | 528 | } |
529 | 529 | } |
@@ -534,30 +534,30 @@ discard block |
||
534 | 534 | * @since 4.0.6 |
535 | 535 | * @param object $notification |
536 | 536 | */ |
537 | - public function process_review_opened( $notification ) { |
|
538 | - if ( isset( $notification->data->object->payment_intent ) ) { |
|
539 | - $order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent ); |
|
537 | + public function process_review_opened($notification) { |
|
538 | + if (isset($notification->data->object->payment_intent)) { |
|
539 | + $order = WC_Stripe_Helper::get_order_by_intent_id($notification->data->object->payment_intent); |
|
540 | 540 | |
541 | - if ( ! $order ) { |
|
542 | - WC_Stripe_Logger::log( '[Review Opened] Could not find order via intent ID: ' . $notification->data->object->payment_intent ); |
|
541 | + if ( ! $order) { |
|
542 | + WC_Stripe_Logger::log('[Review Opened] Could not find order via intent ID: ' . $notification->data->object->payment_intent); |
|
543 | 543 | return; |
544 | 544 | } |
545 | 545 | } else { |
546 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge ); |
|
546 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge); |
|
547 | 547 | |
548 | - if ( ! $order ) { |
|
549 | - WC_Stripe_Logger::log( '[Review Opened] Could not find order via charge ID: ' . $notification->data->object->charge ); |
|
548 | + if ( ! $order) { |
|
549 | + WC_Stripe_Logger::log('[Review Opened] Could not find order via charge ID: ' . $notification->data->object->charge); |
|
550 | 550 | return; |
551 | 551 | } |
552 | 552 | } |
553 | 553 | |
554 | 554 | /* translators: 1) The URL to the order. 2) The reason type. */ |
555 | - $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 ); |
|
555 | + $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); |
|
556 | 556 | |
557 | - if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) { |
|
558 | - $order->update_status( 'on-hold', $message ); |
|
557 | + if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) { |
|
558 | + $order->update_status('on-hold', $message); |
|
559 | 559 | } else { |
560 | - $order->add_order_note( $message ); |
|
560 | + $order->add_order_note($message); |
|
561 | 561 | } |
562 | 562 | } |
563 | 563 | |
@@ -567,34 +567,34 @@ discard block |
||
567 | 567 | * @since 4.0.6 |
568 | 568 | * @param object $notification |
569 | 569 | */ |
570 | - public function process_review_closed( $notification ) { |
|
571 | - if ( isset( $notification->data->object->payment_intent ) ) { |
|
572 | - $order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent ); |
|
570 | + public function process_review_closed($notification) { |
|
571 | + if (isset($notification->data->object->payment_intent)) { |
|
572 | + $order = WC_Stripe_Helper::get_order_by_intent_id($notification->data->object->payment_intent); |
|
573 | 573 | |
574 | - if ( ! $order ) { |
|
575 | - WC_Stripe_Logger::log( '[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent ); |
|
574 | + if ( ! $order) { |
|
575 | + WC_Stripe_Logger::log('[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent); |
|
576 | 576 | return; |
577 | 577 | } |
578 | 578 | } else { |
579 | - $order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge ); |
|
579 | + $order = WC_Stripe_Helper::get_order_by_charge_id($notification->data->object->charge); |
|
580 | 580 | |
581 | - if ( ! $order ) { |
|
582 | - WC_Stripe_Logger::log( '[Review Closed] Could not find order via charge ID: ' . $notification->data->object->charge ); |
|
581 | + if ( ! $order) { |
|
582 | + WC_Stripe_Logger::log('[Review Closed] Could not find order via charge ID: ' . $notification->data->object->charge); |
|
583 | 583 | return; |
584 | 584 | } |
585 | 585 | } |
586 | 586 | |
587 | 587 | /* translators: 1) The reason type. */ |
588 | - $message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason ); |
|
588 | + $message = sprintf(__('The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe'), $notification->data->object->reason); |
|
589 | 589 | |
590 | - if ( 'on-hold' === $order->get_status() ) { |
|
591 | - if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) ) { |
|
592 | - $order->update_status( 'processing', $message ); |
|
590 | + if ('on-hold' === $order->get_status()) { |
|
591 | + if (apply_filters('wc_stripe_webhook_review_change_order_status', true, $order, $notification)) { |
|
592 | + $order->update_status('processing', $message); |
|
593 | 593 | } else { |
594 | - $order->add_order_note( $message ); |
|
594 | + $order->add_order_note($message); |
|
595 | 595 | } |
596 | 596 | } else { |
597 | - $order->add_order_note( $message ); |
|
597 | + $order->add_order_note($message); |
|
598 | 598 | } |
599 | 599 | } |
600 | 600 | |
@@ -605,7 +605,7 @@ discard block |
||
605 | 605 | * @version 4.0.0 |
606 | 606 | * @param object $notification |
607 | 607 | */ |
608 | - public function is_partial_capture( $notification ) { |
|
608 | + public function is_partial_capture($notification) { |
|
609 | 609 | return 0 < $notification->data->object->amount_refunded; |
610 | 610 | } |
611 | 611 | |
@@ -616,11 +616,11 @@ discard block |
||
616 | 616 | * @version 4.0.0 |
617 | 617 | * @param object $notification |
618 | 618 | */ |
619 | - public function get_refund_amount( $notification ) { |
|
620 | - if ( $this->is_partial_capture( $notification ) ) { |
|
619 | + public function get_refund_amount($notification) { |
|
620 | + if ($this->is_partial_capture($notification)) { |
|
621 | 621 | $amount = $notification->data->object->refunds->data[0]->amount / 100; |
622 | 622 | |
623 | - if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) { |
|
623 | + if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) { |
|
624 | 624 | $amount = $notification->data->object->refunds->data[0]->amount; |
625 | 625 | } |
626 | 626 | |
@@ -637,12 +637,12 @@ discard block |
||
637 | 637 | * @version 4.0.0 |
638 | 638 | * @param object $notification |
639 | 639 | */ |
640 | - public function get_partial_amount_to_charge( $notification ) { |
|
641 | - if ( $this->is_partial_capture( $notification ) ) { |
|
642 | - $amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ) / 100; |
|
640 | + public function get_partial_amount_to_charge($notification) { |
|
641 | + if ($this->is_partial_capture($notification)) { |
|
642 | + $amount = ($notification->data->object->amount - $notification->data->object->amount_refunded) / 100; |
|
643 | 643 | |
644 | - if ( in_array( strtolower( $notification->data->object->currency ), WC_Stripe_Helper::no_decimal_currencies() ) ) { |
|
645 | - $amount = ( $notification->data->object->amount - $notification->data->object->amount_refunded ); |
|
644 | + if (in_array(strtolower($notification->data->object->currency), WC_Stripe_Helper::no_decimal_currencies())) { |
|
645 | + $amount = ($notification->data->object->amount - $notification->data->object->amount_refunded); |
|
646 | 646 | } |
647 | 647 | |
648 | 648 | return $amount; |
@@ -651,69 +651,69 @@ discard block |
||
651 | 651 | return false; |
652 | 652 | } |
653 | 653 | |
654 | - public function process_payment_intent_success( $notification ) { |
|
654 | + public function process_payment_intent_success($notification) { |
|
655 | 655 | $intent = $notification->data->object; |
656 | - $order = WC_Stripe_Helper::get_order_by_intent_id( $intent->id ); |
|
656 | + $order = WC_Stripe_Helper::get_order_by_intent_id($intent->id); |
|
657 | 657 | |
658 | - if ( ! $order ) { |
|
659 | - WC_Stripe_Logger::log( 'Could not find order via intent ID: ' . $intent->id ); |
|
658 | + if ( ! $order) { |
|
659 | + WC_Stripe_Logger::log('Could not find order via intent ID: ' . $intent->id); |
|
660 | 660 | return; |
661 | 661 | } |
662 | 662 | |
663 | - if ( 'pending' !== $order->get_status() && 'failed' !== $order->get_status() ) { |
|
663 | + if ('pending' !== $order->get_status() && 'failed' !== $order->get_status()) { |
|
664 | 664 | return; |
665 | 665 | } |
666 | 666 | |
667 | - if ( $this->lock_order_payment( $order, $intent ) ) { |
|
667 | + if ($this->lock_order_payment($order, $intent)) { |
|
668 | 668 | return; |
669 | 669 | } |
670 | 670 | |
671 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
672 | - if ( 'payment_intent.succeeded' === $notification->type || 'payment_intent.amount_capturable_updated' === $notification->type ) { |
|
673 | - $charge = end( $intent->charges->data ); |
|
674 | - WC_Stripe_Logger::log( "Stripe PaymentIntent $intent->id succeeded for order $order_id" ); |
|
671 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
672 | + if ('payment_intent.succeeded' === $notification->type || 'payment_intent.amount_capturable_updated' === $notification->type) { |
|
673 | + $charge = end($intent->charges->data); |
|
674 | + WC_Stripe_Logger::log("Stripe PaymentIntent $intent->id succeeded for order $order_id"); |
|
675 | 675 | |
676 | - do_action( 'wc_gateway_stripe_process_payment', $charge, $order ); |
|
676 | + do_action('wc_gateway_stripe_process_payment', $charge, $order); |
|
677 | 677 | |
678 | 678 | // Process valid response. |
679 | - $this->process_response( $charge, $order ); |
|
679 | + $this->process_response($charge, $order); |
|
680 | 680 | |
681 | 681 | } else { |
682 | 682 | $error_message = $intent->last_payment_error ? $intent->last_payment_error->message : ""; |
683 | 683 | |
684 | 684 | /* translators: 1) The error message that was received from Stripe. */ |
685 | - $order->update_status( 'failed', sprintf( __( 'Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe' ), $error_message ) ); |
|
685 | + $order->update_status('failed', sprintf(__('Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe'), $error_message)); |
|
686 | 686 | |
687 | - do_action( 'wc_gateway_stripe_process_webhook_payment_error', $order, $notification ); |
|
687 | + do_action('wc_gateway_stripe_process_webhook_payment_error', $order, $notification); |
|
688 | 688 | |
689 | - $this->send_failed_order_email( $order_id ); |
|
689 | + $this->send_failed_order_email($order_id); |
|
690 | 690 | } |
691 | 691 | |
692 | - $this->unlock_order_payment( $order ); |
|
692 | + $this->unlock_order_payment($order); |
|
693 | 693 | } |
694 | 694 | |
695 | - public function process_setup_intent( $notification ) { |
|
695 | + public function process_setup_intent($notification) { |
|
696 | 696 | $intent = $notification->data->object; |
697 | - $order = WC_Stripe_Helper::get_order_by_setup_intent_id( $intent->id ); |
|
697 | + $order = WC_Stripe_Helper::get_order_by_setup_intent_id($intent->id); |
|
698 | 698 | |
699 | - if ( ! $order ) { |
|
700 | - WC_Stripe_Logger::log( 'Could not find order via setup intent ID: ' . $intent->id ); |
|
699 | + if ( ! $order) { |
|
700 | + WC_Stripe_Logger::log('Could not find order via setup intent ID: ' . $intent->id); |
|
701 | 701 | return; |
702 | 702 | } |
703 | 703 | |
704 | - if ( 'pending' !== $order->get_status() && 'failed' !== $order->get_status() ) { |
|
704 | + if ('pending' !== $order->get_status() && 'failed' !== $order->get_status()) { |
|
705 | 705 | return; |
706 | 706 | } |
707 | 707 | |
708 | - if ( $this->lock_order_payment( $order, $intent ) ) { |
|
708 | + if ($this->lock_order_payment($order, $intent)) { |
|
709 | 709 | return; |
710 | 710 | } |
711 | 711 | |
712 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $order->id : $order->get_id(); |
|
713 | - if ( 'setup_intent.succeeded' === $notification->type ) { |
|
714 | - WC_Stripe_Logger::log( "Stripe SetupIntent $intent->id succeeded for order $order_id" ); |
|
715 | - if ( WC_Stripe_Helper::is_pre_orders_exists() && WC_Pre_Orders_Order::order_contains_pre_order( $order ) ) { |
|
716 | - WC_Pre_Orders_Order::mark_order_as_pre_ordered( $order ); |
|
712 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $order->id : $order->get_id(); |
|
713 | + if ('setup_intent.succeeded' === $notification->type) { |
|
714 | + WC_Stripe_Logger::log("Stripe SetupIntent $intent->id succeeded for order $order_id"); |
|
715 | + if (WC_Stripe_Helper::is_pre_orders_exists() && WC_Pre_Orders_Order::order_contains_pre_order($order)) { |
|
716 | + WC_Pre_Orders_Order::mark_order_as_pre_ordered($order); |
|
717 | 717 | } else { |
718 | 718 | $order->payment_complete(); |
719 | 719 | } |
@@ -721,12 +721,12 @@ discard block |
||
721 | 721 | $error_message = $intent->last_setup_error ? $intent->last_setup_error->message : ""; |
722 | 722 | |
723 | 723 | /* translators: 1) The error message that was received from Stripe. */ |
724 | - $order->update_status( 'failed', sprintf( __( 'Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe' ), $error_message ) ); |
|
724 | + $order->update_status('failed', sprintf(__('Stripe SCA authentication failed. Reason: %s', 'woocommerce-gateway-stripe'), $error_message)); |
|
725 | 725 | |
726 | - $this->send_failed_order_email( $order_id ); |
|
726 | + $this->send_failed_order_email($order_id); |
|
727 | 727 | } |
728 | 728 | |
729 | - $this->unlock_order_payment( $order ); |
|
729 | + $this->unlock_order_payment($order); |
|
730 | 730 | } |
731 | 731 | |
732 | 732 | /** |
@@ -736,54 +736,54 @@ discard block |
||
736 | 736 | * @version 4.0.0 |
737 | 737 | * @param string $request_body |
738 | 738 | */ |
739 | - public function process_webhook( $request_body ) { |
|
740 | - $notification = json_decode( $request_body ); |
|
739 | + public function process_webhook($request_body) { |
|
740 | + $notification = json_decode($request_body); |
|
741 | 741 | |
742 | - switch ( $notification->type ) { |
|
742 | + switch ($notification->type) { |
|
743 | 743 | case 'source.chargeable': |
744 | - $this->process_webhook_payment( $notification ); |
|
744 | + $this->process_webhook_payment($notification); |
|
745 | 745 | break; |
746 | 746 | |
747 | 747 | case 'source.canceled': |
748 | - $this->process_webhook_source_canceled( $notification ); |
|
748 | + $this->process_webhook_source_canceled($notification); |
|
749 | 749 | break; |
750 | 750 | |
751 | 751 | case 'charge.succeeded': |
752 | - $this->process_webhook_charge_succeeded( $notification ); |
|
752 | + $this->process_webhook_charge_succeeded($notification); |
|
753 | 753 | break; |
754 | 754 | |
755 | 755 | case 'charge.failed': |
756 | - $this->process_webhook_charge_failed( $notification ); |
|
756 | + $this->process_webhook_charge_failed($notification); |
|
757 | 757 | break; |
758 | 758 | |
759 | 759 | case 'charge.captured': |
760 | - $this->process_webhook_capture( $notification ); |
|
760 | + $this->process_webhook_capture($notification); |
|
761 | 761 | break; |
762 | 762 | |
763 | 763 | case 'charge.dispute.created': |
764 | - $this->process_webhook_dispute( $notification ); |
|
764 | + $this->process_webhook_dispute($notification); |
|
765 | 765 | break; |
766 | 766 | |
767 | 767 | case 'charge.refunded': |
768 | - $this->process_webhook_refund( $notification ); |
|
768 | + $this->process_webhook_refund($notification); |
|
769 | 769 | break; |
770 | 770 | |
771 | 771 | case 'review.opened': |
772 | - $this->process_review_opened( $notification ); |
|
772 | + $this->process_review_opened($notification); |
|
773 | 773 | break; |
774 | 774 | |
775 | 775 | case 'review.closed': |
776 | - $this->process_review_closed( $notification ); |
|
776 | + $this->process_review_closed($notification); |
|
777 | 777 | break; |
778 | 778 | |
779 | 779 | case 'payment_intent.succeeded': |
780 | 780 | case 'payment_intent.payment_failed': |
781 | 781 | case 'payment_intent.amount_capturable_updated': |
782 | - $this->process_payment_intent_success( $notification ); |
|
782 | + $this->process_payment_intent_success($notification); |
|
783 | 783 | |
784 | 784 | case 'setup_intent.succeeded': |
785 | 785 | case 'setup_intent.setup_failed': |
786 | - $this->process_setup_intent( $notification ); |
|
786 | + $this->process_setup_intent($notification); |
|
787 | 787 | |
788 | 788 | } |
789 | 789 | } |
@@ -34,17 +34,17 @@ discard block |
||
34 | 34 | public function setUp() { |
35 | 35 | parent::setUp(); |
36 | 36 | |
37 | - $this->wc_stripe_subs_compat = $this->getMockBuilder( 'WC_Stripe_Subs_Compat' ) |
|
37 | + $this->wc_stripe_subs_compat = $this->getMockBuilder('WC_Stripe_Subs_Compat') |
|
38 | 38 | ->disableOriginalConstructor() |
39 | - ->setMethods( array( 'prepare_order_source', 'has_subscription' ) ) |
|
39 | + ->setMethods(array('prepare_order_source', 'has_subscription')) |
|
40 | 40 | ->getMock(); |
41 | 41 | |
42 | 42 | // Mocked in order to get metadata[payment_type] = recurring in the HTTP request. |
43 | 43 | $this->wc_stripe_subs_compat |
44 | - ->expects( $this->any() ) |
|
45 | - ->method( 'has_subscription' ) |
|
44 | + ->expects($this->any()) |
|
45 | + ->method('has_subscription') |
|
46 | 46 | ->will( |
47 | - $this->returnValue( true ) |
|
47 | + $this->returnValue(true) |
|
48 | 48 | ); |
49 | 49 | |
50 | 50 | $this->statement_descriptor = 'This is a statement descriptor.'; |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | public function tearDown() { |
63 | 63 | parent::tearDown(); |
64 | 64 | |
65 | - delete_option( 'woocommerce_stripe_settings' ); |
|
65 | + delete_option('woocommerce_stripe_settings'); |
|
66 | 66 | } |
67 | 67 | |
68 | 68 | /** |
@@ -79,11 +79,11 @@ discard block |
||
79 | 79 | // Arrange: Some variables we'll use later. |
80 | 80 | $renewal_order = WC_Helper_Order::create_order(); |
81 | 81 | $amount = 20; // WC Subs sends an amount to be used, instead of using the order amount. |
82 | - $stripe_amount = WC_Stripe_Helper::get_stripe_amount( $amount ); |
|
83 | - $currency = strtolower( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $renewal_order->get_order_currency() : $renewal_order->get_currency() ); |
|
82 | + $stripe_amount = WC_Stripe_Helper::get_stripe_amount($amount); |
|
83 | + $currency = strtolower(WC_Stripe_Helper::is_wc_lt('3.0') ? $renewal_order->get_order_currency() : $renewal_order->get_currency()); |
|
84 | 84 | $customer = 'cus_123abc'; |
85 | 85 | $source = 'src_123abc'; |
86 | - $statement_descriptor = WC_Stripe_Helper::clean_statement_descriptor( $this->statement_descriptor ); |
|
86 | + $statement_descriptor = WC_Stripe_Helper::clean_statement_descriptor($this->statement_descriptor); |
|
87 | 87 | $should_retry = false; |
88 | 88 | $previous_error = false; |
89 | 89 | $payments_intents_api_endpoint = 'https://api.stripe.com/v1/payment_intents'; |
@@ -91,16 +91,16 @@ discard block |
||
91 | 91 | |
92 | 92 | // Arrange: Set payment method to stripe, and not stripe_sepa, for example. |
93 | 93 | // This needed for testing the statement_descriptor. |
94 | - if ( WC_Stripe_Helper::is_wc_lt( '3.0' ) ) { |
|
94 | + if (WC_Stripe_Helper::is_wc_lt('3.0')) { |
|
95 | 95 | $renewal_order->payment_method = 'stripe'; |
96 | 96 | } else { |
97 | - $renewal_order->set_payment_method( 'stripe' ); |
|
97 | + $renewal_order->set_payment_method('stripe'); |
|
98 | 98 | } |
99 | 99 | |
100 | 100 | // Arrange: Mock prepare_order_source() so that we have a customer and source. |
101 | 101 | $this->wc_stripe_subs_compat |
102 | - ->expects( $this->any() ) |
|
103 | - ->method( 'prepare_order_source' ) |
|
102 | + ->expects($this->any()) |
|
103 | + ->method('prepare_order_source') |
|
104 | 104 | ->will( |
105 | 105 | $this->returnValue( |
106 | 106 | (object) array( |
@@ -114,7 +114,7 @@ discard block |
||
114 | 114 | |
115 | 115 | // Arrange: Add filter that will return a mocked HTTP response for the payment_intent call. |
116 | 116 | // Note: There are assertions in the callback function. |
117 | - $pre_http_request_response_callback = function( $preempt, $request_args, $url ) use ( |
|
117 | + $pre_http_request_response_callback = function($preempt, $request_args, $url) use ( |
|
118 | 118 | $renewal_order, |
119 | 119 | $stripe_amount, |
120 | 120 | $currency, |
@@ -125,35 +125,35 @@ discard block |
||
125 | 125 | &$urls_used |
126 | 126 | ) { |
127 | 127 | // Add all urls to array so we can later make assertions about which endpoints were used. |
128 | - array_push( $urls_used, $url ); |
|
128 | + array_push($urls_used, $url); |
|
129 | 129 | |
130 | 130 | // Continue without mocking the request if it's not the endpoint we care about. |
131 | - if ( $payments_intents_api_endpoint !== $url ) { |
|
131 | + if ($payments_intents_api_endpoint !== $url) { |
|
132 | 132 | return false; |
133 | 133 | } |
134 | 134 | |
135 | 135 | // Assert: the request method is POST. |
136 | - $this->assertArrayHasKey( 'method', $request_args ); |
|
137 | - $this->assertSame( 'POST', $request_args['method'] ); |
|
136 | + $this->assertArrayHasKey('method', $request_args); |
|
137 | + $this->assertSame('POST', $request_args['method']); |
|
138 | 138 | |
139 | 139 | // Assert: the request has a body. |
140 | - $this->assertArrayHasKey( 'body', $request_args ); |
|
140 | + $this->assertArrayHasKey('body', $request_args); |
|
141 | 141 | |
142 | 142 | // Assert: the request body contains these values. |
143 | 143 | $expected_request_body_values = array( |
144 | 144 | 'source' => $source, |
145 | 145 | 'amount' => $stripe_amount, |
146 | 146 | 'currency' => $currency, |
147 | - 'payment_method_types' => array( 'card' ), |
|
147 | + 'payment_method_types' => array('card'), |
|
148 | 148 | 'customer' => $customer, |
149 | 149 | 'off_session' => 'true', |
150 | 150 | 'confirm' => 'true', |
151 | 151 | 'confirmation_method' => 'automatic', |
152 | 152 | 'statement_descriptor' => $statement_descriptor, |
153 | 153 | ); |
154 | - foreach ( $expected_request_body_values as $key => $value ) { |
|
155 | - $this->assertArrayHasKey( $key, $request_args['body'] ); |
|
156 | - $this->assertSame( $value, $request_args['body'][ $key ] ); |
|
154 | + foreach ($expected_request_body_values as $key => $value) { |
|
155 | + $this->assertArrayHasKey($key, $request_args['body']); |
|
156 | + $this->assertSame($value, $request_args['body'][$key]); |
|
157 | 157 | } |
158 | 158 | |
159 | 159 | // Assert: the request body contains these keys, without checking for their value. |
@@ -161,19 +161,19 @@ discard block |
||
161 | 161 | 'description', |
162 | 162 | 'metadata', |
163 | 163 | ); |
164 | - foreach ( $expected_request_body_keys as $key ) { |
|
165 | - $this->assertArrayHasKey( $key, $request_args['body'] ); |
|
164 | + foreach ($expected_request_body_keys as $key) { |
|
165 | + $this->assertArrayHasKey($key, $request_args['body']); |
|
166 | 166 | } |
167 | 167 | |
168 | 168 | // Assert: the body metadata has these values. |
169 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $renewal_order->id : (string) $renewal_order->get_id(); |
|
169 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $renewal_order->id : (string) $renewal_order->get_id(); |
|
170 | 170 | $expected_metadata_values = array( |
171 | 171 | 'order_id' => $order_id, |
172 | 172 | 'payment_type' => 'recurring', |
173 | 173 | ); |
174 | - foreach ( $expected_metadata_values as $key => $value ) { |
|
175 | - $this->assertArrayHasKey( $key, $request_args['body']['metadata'] ); |
|
176 | - $this->assertSame( $value, $request_args['body']['metadata'][ $key ] ); |
|
174 | + foreach ($expected_metadata_values as $key => $value) { |
|
175 | + $this->assertArrayHasKey($key, $request_args['body']['metadata']); |
|
176 | + $this->assertSame($value, $request_args['body']['metadata'][$key]); |
|
177 | 177 | } |
178 | 178 | |
179 | 179 | // Assert: the body metadata has these keys, without checking for their value. |
@@ -182,8 +182,8 @@ discard block |
||
182 | 182 | 'customer_email', |
183 | 183 | 'site_url', |
184 | 184 | ); |
185 | - foreach ( $expected_metadata_keys as $key ) { |
|
186 | - $this->assertArrayHasKey( $key, $request_args['body']['metadata'] ); |
|
185 | + foreach ($expected_metadata_keys as $key) { |
|
186 | + $this->assertArrayHasKey($key, $request_args['body']['metadata']); |
|
187 | 187 | } |
188 | 188 | |
189 | 189 | // Assert: the request body does not contains these keys. |
@@ -192,15 +192,15 @@ discard block |
||
192 | 192 | 'capture_method', // The default ('automatic') is what we want in this case, so we leave it off. |
193 | 193 | 'expand[]', |
194 | 194 | ); |
195 | - foreach ( $expected_missing_request_body_keys as $key ) { |
|
196 | - $this->assertArrayNotHasKey( $key, $request_args['body'] ); |
|
195 | + foreach ($expected_missing_request_body_keys as $key) { |
|
196 | + $this->assertArrayNotHasKey($key, $request_args['body']); |
|
197 | 197 | } |
198 | 198 | |
199 | 199 | // Arrange: return dummy content as the response. |
200 | 200 | return array( |
201 | 201 | 'headers' => array(), |
202 | 202 | // Too bad we aren't dynamically setting things 'cus_123abc' when using this file. |
203 | - 'body' => file_get_contents( 'tests/phpunit/dummy-data/subscription_renewal_response_success.json' ), |
|
203 | + 'body' => file_get_contents('tests/phpunit/dummy-data/subscription_renewal_response_success.json'), |
|
204 | 204 | 'response' => array( |
205 | 205 | 'code' => 200, |
206 | 206 | 'message' => 'OK', |
@@ -210,55 +210,55 @@ discard block |
||
210 | 210 | ); |
211 | 211 | }; |
212 | 212 | |
213 | - add_filter( 'pre_http_request', $pre_http_request_response_callback, 10, 3 ); |
|
213 | + add_filter('pre_http_request', $pre_http_request_response_callback, 10, 3); |
|
214 | 214 | |
215 | 215 | // Arrange: Make sure to check that an action we care about was called |
216 | 216 | // by hooking into it. |
217 | 217 | $mock_action_process_payment = new MockAction(); |
218 | 218 | add_action( |
219 | 219 | 'wc_gateway_stripe_process_payment', |
220 | - [ &$mock_action_process_payment, 'action' ] |
|
220 | + [&$mock_action_process_payment, 'action'] |
|
221 | 221 | ); |
222 | 222 | |
223 | 223 | // Act: call process_subscription_payment(). |
224 | 224 | // We need to use `wc_stripe_subs_compat` here because we mocked this class earlier. |
225 | - $result = $this->wc_stripe_subs_compat->process_subscription_payment( 20, $renewal_order, $should_retry, $previous_error ); |
|
225 | + $result = $this->wc_stripe_subs_compat->process_subscription_payment(20, $renewal_order, $should_retry, $previous_error); |
|
226 | 226 | |
227 | 227 | // Assert: nothing was returned. |
228 | - $this->assertEquals( $result, null ); |
|
228 | + $this->assertEquals($result, null); |
|
229 | 229 | |
230 | 230 | // Assert that we saved the payment intent to the order. |
231 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $renewal_order->id : $renewal_order->get_id(); |
|
232 | - $order = wc_get_order( $order_id ); |
|
231 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $renewal_order->id : $renewal_order->get_id(); |
|
232 | + $order = wc_get_order($order_id); |
|
233 | 233 | $order_data = ( |
234 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) |
|
235 | - ? get_post_meta( $order_id, '_stripe_intent_id', true ) |
|
236 | - : $order->get_meta( '_stripe_intent_id' ) |
|
234 | + WC_Stripe_Helper::is_wc_lt('3.0') |
|
235 | + ? get_post_meta($order_id, '_stripe_intent_id', true) |
|
236 | + : $order->get_meta('_stripe_intent_id') |
|
237 | 237 | ); |
238 | - $this->assertEquals( $order_data, 'pi_123abc' ); |
|
238 | + $this->assertEquals($order_data, 'pi_123abc'); |
|
239 | 239 | |
240 | 240 | // Transaction ID was saved to order. |
241 | 241 | $order_transaction_id = ( |
242 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) |
|
243 | - ? get_post_meta( $order_id, '_transaction_id', true ) |
|
242 | + WC_Stripe_Helper::is_wc_lt('3.0') |
|
243 | + ? get_post_meta($order_id, '_transaction_id', true) |
|
244 | 244 | : $order->get_transaction_id() |
245 | 245 | ); |
246 | - $this->assertEquals( $order_transaction_id, 'ch_123abc' ); |
|
246 | + $this->assertEquals($order_transaction_id, 'ch_123abc'); |
|
247 | 247 | |
248 | 248 | // Assert: the order was marked as processing (this is done in process_response()). |
249 | - $this->assertEquals( $order->get_status(), 'processing' ); |
|
249 | + $this->assertEquals($order->get_status(), 'processing'); |
|
250 | 250 | |
251 | 251 | // Assert: called payment intents. |
252 | - $this->assertTrue( in_array( $payments_intents_api_endpoint, $urls_used ) ); |
|
252 | + $this->assertTrue(in_array($payments_intents_api_endpoint, $urls_used)); |
|
253 | 253 | |
254 | 254 | // Assert: Our hook was called once. |
255 | - $this->assertEquals( 1, $mock_action_process_payment->get_call_count() ); |
|
255 | + $this->assertEquals(1, $mock_action_process_payment->get_call_count()); |
|
256 | 256 | |
257 | 257 | // Assert: Only our hook was called. |
258 | - $this->assertEquals( array( 'wc_gateway_stripe_process_payment' ), $mock_action_process_payment->get_tags() ); |
|
258 | + $this->assertEquals(array('wc_gateway_stripe_process_payment'), $mock_action_process_payment->get_tags()); |
|
259 | 259 | |
260 | 260 | // Clean up. |
261 | - remove_filter( 'pre_http_request', array( $this, 'pre_http_request_response_success' ) ); |
|
261 | + remove_filter('pre_http_request', array($this, 'pre_http_request_response_success')); |
|
262 | 262 | } |
263 | 263 | |
264 | 264 | /** |
@@ -275,8 +275,8 @@ discard block |
||
275 | 275 | // Arrange: Some variables we'll use later. |
276 | 276 | $renewal_order = WC_Helper_Order::create_order(); |
277 | 277 | $amount = 20; |
278 | - $stripe_amount = WC_Stripe_Helper::get_stripe_amount( $amount ); |
|
279 | - $currency = strtolower( WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $renewal_order->get_order_currency() : $renewal_order->get_currency() ); |
|
278 | + $stripe_amount = WC_Stripe_Helper::get_stripe_amount($amount); |
|
279 | + $currency = strtolower(WC_Stripe_Helper::is_wc_lt('3.0') ? $renewal_order->get_order_currency() : $renewal_order->get_currency()); |
|
280 | 280 | $customer = 'cus_123abc'; |
281 | 281 | $source = 'src_123abc'; |
282 | 282 | $should_retry = false; |
@@ -286,8 +286,8 @@ discard block |
||
286 | 286 | |
287 | 287 | // Arrange: Mock prepare_order_source() so that we have a customer and source. |
288 | 288 | $this->wc_stripe_subs_compat |
289 | - ->expects( $this->any() ) |
|
290 | - ->method( 'prepare_order_source' ) |
|
289 | + ->expects($this->any()) |
|
290 | + ->method('prepare_order_source') |
|
291 | 291 | ->will( |
292 | 292 | $this->returnValue( |
293 | 293 | (object) array( |
@@ -300,7 +300,7 @@ discard block |
||
300 | 300 | ); |
301 | 301 | |
302 | 302 | // Arrange: Add filter that will return a mocked HTTP response for the payment_intent call. |
303 | - $pre_http_request_response_callback = function( $preempt, $request_args, $url ) use ( |
|
303 | + $pre_http_request_response_callback = function($preempt, $request_args, $url) use ( |
|
304 | 304 | $renewal_order, |
305 | 305 | $stripe_amount, |
306 | 306 | $currency, |
@@ -310,10 +310,10 @@ discard block |
||
310 | 310 | &$urls_used |
311 | 311 | ) { |
312 | 312 | // Add all urls to array so we can later make assertions about which endpoints were used. |
313 | - array_push( $urls_used, $url ); |
|
313 | + array_push($urls_used, $url); |
|
314 | 314 | |
315 | 315 | // Continue without mocking the request if it's not the endpoint we care about. |
316 | - if ( $payments_intents_api_endpoint !== $url ) { |
|
316 | + if ($payments_intents_api_endpoint !== $url) { |
|
317 | 317 | return false; |
318 | 318 | } |
319 | 319 | |
@@ -321,7 +321,7 @@ discard block |
||
321 | 321 | return array( |
322 | 322 | 'headers' => array(), |
323 | 323 | // Too bad we aren't dynamically setting things 'cus_123abc' when using this file. |
324 | - 'body' => file_get_contents( 'tests/phpunit/dummy-data/subscription_renewal_response_authentication_required.json' ), |
|
324 | + 'body' => file_get_contents('tests/phpunit/dummy-data/subscription_renewal_response_authentication_required.json'), |
|
325 | 325 | 'response' => array( |
326 | 326 | 'code' => 402, |
327 | 327 | 'message' => 'Payment Required', |
@@ -330,56 +330,56 @@ discard block |
||
330 | 330 | 'filename' => null, |
331 | 331 | ); |
332 | 332 | }; |
333 | - add_filter( 'pre_http_request', $pre_http_request_response_callback, 10, 3 ); |
|
333 | + add_filter('pre_http_request', $pre_http_request_response_callback, 10, 3); |
|
334 | 334 | |
335 | 335 | // Arrange: Make sure to check that an action we care about was called |
336 | 336 | // by hooking into it. |
337 | 337 | $mock_action_process_payment = new MockAction(); |
338 | 338 | add_action( |
339 | 339 | 'wc_gateway_stripe_process_payment_authentication_required', |
340 | - [ &$mock_action_process_payment, 'action' ] |
|
340 | + [&$mock_action_process_payment, 'action'] |
|
341 | 341 | ); |
342 | 342 | |
343 | 343 | // Act: call process_subscription_payment(). |
344 | 344 | // We need to use `wc_stripe_subs_compat` here because we mocked this class earlier. |
345 | - $result = $this->wc_stripe_subs_compat->process_subscription_payment( 20, $renewal_order, $should_retry, $previous_error ); |
|
345 | + $result = $this->wc_stripe_subs_compat->process_subscription_payment(20, $renewal_order, $should_retry, $previous_error); |
|
346 | 346 | |
347 | 347 | // Assert: nothing was returned. |
348 | - $this->assertEquals( $result, null ); |
|
348 | + $this->assertEquals($result, null); |
|
349 | 349 | |
350 | 350 | // Assert that we saved the payment intent to the order. |
351 | - $order_id = WC_Stripe_Helper::is_wc_lt( '3.0' ) ? $renewal_order->id : $renewal_order->get_id(); |
|
352 | - $order = wc_get_order( $order_id ); |
|
351 | + $order_id = WC_Stripe_Helper::is_wc_lt('3.0') ? $renewal_order->id : $renewal_order->get_id(); |
|
352 | + $order = wc_get_order($order_id); |
|
353 | 353 | $order_data = ( |
354 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) |
|
355 | - ? get_post_meta( $order_id, '_stripe_intent_id', true ) |
|
356 | - : $order->get_meta( '_stripe_intent_id' ) |
|
354 | + WC_Stripe_Helper::is_wc_lt('3.0') |
|
355 | + ? get_post_meta($order_id, '_stripe_intent_id', true) |
|
356 | + : $order->get_meta('_stripe_intent_id') |
|
357 | 357 | ); |
358 | 358 | $order_transaction_id = ( |
359 | - WC_Stripe_Helper::is_wc_lt( '3.0' ) |
|
360 | - ? get_post_meta( $order_id, '_transaction_id', true ) |
|
359 | + WC_Stripe_Helper::is_wc_lt('3.0') |
|
360 | + ? get_post_meta($order_id, '_transaction_id', true) |
|
361 | 361 | : $order->get_transaction_id() |
362 | 362 | ); |
363 | 363 | |
364 | 364 | // Intent was saved to order even though there was an error in the response body. |
365 | - $this->assertEquals( $order_data, 'pi_123abc' ); |
|
365 | + $this->assertEquals($order_data, 'pi_123abc'); |
|
366 | 366 | |
367 | 367 | // Transaction ID was saved to order. |
368 | - $this->assertEquals( $order_transaction_id, 'ch_123abc' ); |
|
368 | + $this->assertEquals($order_transaction_id, 'ch_123abc'); |
|
369 | 369 | |
370 | 370 | // Assert: the order was marked as failed. |
371 | - $this->assertEquals( $order->get_status(), 'failed' ); |
|
371 | + $this->assertEquals($order->get_status(), 'failed'); |
|
372 | 372 | |
373 | 373 | // Assert: called payment intents. |
374 | - $this->assertTrue( in_array( $payments_intents_api_endpoint, $urls_used ) ); |
|
374 | + $this->assertTrue(in_array($payments_intents_api_endpoint, $urls_used)); |
|
375 | 375 | |
376 | 376 | // Assert: Our hook was called once. |
377 | - $this->assertEquals( 1, $mock_action_process_payment->get_call_count() ); |
|
377 | + $this->assertEquals(1, $mock_action_process_payment->get_call_count()); |
|
378 | 378 | |
379 | 379 | // Assert: Only our hook was called. |
380 | - $this->assertEquals( array( 'wc_gateway_stripe_process_payment_authentication_required' ), $mock_action_process_payment->get_tags() ); |
|
380 | + $this->assertEquals(array('wc_gateway_stripe_process_payment_authentication_required'), $mock_action_process_payment->get_tags()); |
|
381 | 381 | |
382 | 382 | // Clean up. |
383 | - remove_filter( 'pre_http_request', array( $this, 'pre_http_request_response_success' ) ); |
|
383 | + remove_filter('pre_http_request', array($this, 'pre_http_request_response_success')); |
|
384 | 384 | } |
385 | 385 | } |