@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -21,11 +21,11 @@ discard block |
||
21 | 21 | public function __construct() { |
22 | 22 | self::$_this = $this; |
23 | 23 | |
24 | - add_filter( 'woocommerce_get_customer_payment_tokens', array( $this, 'woocommerce_get_customer_payment_tokens' ), 10, 3 ); |
|
25 | - add_filter( 'woocommerce_payment_methods_list_item', array( $this, 'get_account_saved_payment_methods_list_item_sepa' ), 10, 2 ); |
|
26 | - add_filter( 'woocommerce_get_credit_card_type_label', array( $this, 'normalize_sepa_label' ) ); |
|
27 | - add_action( 'woocommerce_payment_token_deleted', array( $this, 'woocommerce_payment_token_deleted' ), 10, 2 ); |
|
28 | - add_action( 'woocommerce_payment_token_set_default', array( $this, 'woocommerce_payment_token_set_default' ) ); |
|
24 | + add_filter('woocommerce_get_customer_payment_tokens', array($this, 'woocommerce_get_customer_payment_tokens'), 10, 3); |
|
25 | + add_filter('woocommerce_payment_methods_list_item', array($this, 'get_account_saved_payment_methods_list_item_sepa'), 10, 2); |
|
26 | + add_filter('woocommerce_get_credit_card_type_label', array($this, 'normalize_sepa_label')); |
|
27 | + add_action('woocommerce_payment_token_deleted', array($this, 'woocommerce_payment_token_deleted'), 10, 2); |
|
28 | + add_action('woocommerce_payment_token_set_default', array($this, 'woocommerce_payment_token_set_default')); |
|
29 | 29 | } |
30 | 30 | |
31 | 31 | /** |
@@ -46,8 +46,8 @@ discard block |
||
46 | 46 | * @param string $label |
47 | 47 | * @return string $label |
48 | 48 | */ |
49 | - public function normalize_sepa_label( $label ) { |
|
50 | - if ( 'sepa iban' === strtolower( $label ) ) { |
|
49 | + public function normalize_sepa_label($label) { |
|
50 | + if ('sepa iban' === strtolower($label)) { |
|
51 | 51 | return 'SEPA IBAN'; |
52 | 52 | } |
53 | 53 | |
@@ -61,19 +61,19 @@ discard block |
||
61 | 61 | * @param int $customer_id |
62 | 62 | * @return bool |
63 | 63 | */ |
64 | - public static function customer_has_saved_methods( $customer_id ) { |
|
65 | - $gateways = array( 'stripe', 'stripe_sepa' ); |
|
64 | + public static function customer_has_saved_methods($customer_id) { |
|
65 | + $gateways = array('stripe', 'stripe_sepa'); |
|
66 | 66 | |
67 | - if ( empty( $customer_id ) ) { |
|
67 | + if (empty($customer_id)) { |
|
68 | 68 | return false; |
69 | 69 | } |
70 | 70 | |
71 | 71 | $has_token = false; |
72 | 72 | |
73 | - foreach ( $gateways as $gateway ) { |
|
74 | - $tokens = WC_Payment_Tokens::get_customer_tokens( $customer_id, $gateway ); |
|
73 | + foreach ($gateways as $gateway) { |
|
74 | + $tokens = WC_Payment_Tokens::get_customer_tokens($customer_id, $gateway); |
|
75 | 75 | |
76 | - if ( ! empty( $tokens ) ) { |
|
76 | + if ( ! empty($tokens)) { |
|
77 | 77 | $has_token = true; |
78 | 78 | break; |
79 | 79 | } |
@@ -90,67 +90,67 @@ discard block |
||
90 | 90 | * @param array $tokens |
91 | 91 | * @return array |
92 | 92 | */ |
93 | - public function woocommerce_get_customer_payment_tokens( $tokens, $customer_id, $gateway_id ) { |
|
94 | - if ( is_user_logged_in() && class_exists( 'WC_Payment_Token_CC' ) ) { |
|
93 | + public function woocommerce_get_customer_payment_tokens($tokens, $customer_id, $gateway_id) { |
|
94 | + if (is_user_logged_in() && class_exists('WC_Payment_Token_CC')) { |
|
95 | 95 | $stored_tokens = array(); |
96 | 96 | |
97 | - foreach ( $tokens as $token ) { |
|
97 | + foreach ($tokens as $token) { |
|
98 | 98 | $stored_tokens[] = $token->get_token(); |
99 | 99 | } |
100 | 100 | |
101 | - if ( 'stripe' === $gateway_id ) { |
|
102 | - $stripe_customer = new WC_Stripe_Customer( $customer_id ); |
|
101 | + if ('stripe' === $gateway_id) { |
|
102 | + $stripe_customer = new WC_Stripe_Customer($customer_id); |
|
103 | 103 | $stripe_sources = $stripe_customer->get_sources(); |
104 | 104 | |
105 | - foreach ( $stripe_sources as $source ) { |
|
106 | - if ( isset( $source->type ) && 'card' === $source->type ) { |
|
107 | - if ( ! in_array( $source->id, $stored_tokens ) ) { |
|
105 | + foreach ($stripe_sources as $source) { |
|
106 | + if (isset($source->type) && 'card' === $source->type) { |
|
107 | + if ( ! in_array($source->id, $stored_tokens)) { |
|
108 | 108 | $token = new WC_Payment_Token_CC(); |
109 | - $token->set_token( $source->id ); |
|
110 | - $token->set_gateway_id( 'stripe' ); |
|
111 | - |
|
112 | - if ( 'source' === $source->object && 'card' === $source->type ) { |
|
113 | - $token->set_card_type( strtolower( $source->card->brand ) ); |
|
114 | - $token->set_last4( $source->card->last4 ); |
|
115 | - $token->set_expiry_month( $source->card->exp_month ); |
|
116 | - $token->set_expiry_year( $source->card->exp_year ); |
|
109 | + $token->set_token($source->id); |
|
110 | + $token->set_gateway_id('stripe'); |
|
111 | + |
|
112 | + if ('source' === $source->object && 'card' === $source->type) { |
|
113 | + $token->set_card_type(strtolower($source->card->brand)); |
|
114 | + $token->set_last4($source->card->last4); |
|
115 | + $token->set_expiry_month($source->card->exp_month); |
|
116 | + $token->set_expiry_year($source->card->exp_year); |
|
117 | 117 | } |
118 | 118 | |
119 | - $token->set_user_id( $customer_id ); |
|
119 | + $token->set_user_id($customer_id); |
|
120 | 120 | $token->save(); |
121 | - $tokens[ $token->get_id() ] = $token; |
|
121 | + $tokens[$token->get_id()] = $token; |
|
122 | 122 | } |
123 | 123 | } else { |
124 | - if ( ! in_array( $source->id, $stored_tokens ) && 'card' === $source->object ) { |
|
124 | + if ( ! in_array($source->id, $stored_tokens) && 'card' === $source->object) { |
|
125 | 125 | $token = new WC_Payment_Token_CC(); |
126 | - $token->set_token( $source->id ); |
|
127 | - $token->set_gateway_id( 'stripe' ); |
|
128 | - $token->set_card_type( strtolower( $source->brand ) ); |
|
129 | - $token->set_last4( $source->last4 ); |
|
130 | - $token->set_expiry_month( $source->exp_month ); |
|
131 | - $token->set_expiry_year( $source->exp_year ); |
|
132 | - $token->set_user_id( $customer_id ); |
|
126 | + $token->set_token($source->id); |
|
127 | + $token->set_gateway_id('stripe'); |
|
128 | + $token->set_card_type(strtolower($source->brand)); |
|
129 | + $token->set_last4($source->last4); |
|
130 | + $token->set_expiry_month($source->exp_month); |
|
131 | + $token->set_expiry_year($source->exp_year); |
|
132 | + $token->set_user_id($customer_id); |
|
133 | 133 | $token->save(); |
134 | - $tokens[ $token->get_id() ] = $token; |
|
134 | + $tokens[$token->get_id()] = $token; |
|
135 | 135 | } |
136 | 136 | } |
137 | 137 | } |
138 | 138 | } |
139 | 139 | |
140 | - if ( 'stripe_sepa' === $gateway_id ) { |
|
141 | - $stripe_customer = new WC_Stripe_Customer( $customer_id ); |
|
140 | + if ('stripe_sepa' === $gateway_id) { |
|
141 | + $stripe_customer = new WC_Stripe_Customer($customer_id); |
|
142 | 142 | $stripe_sources = $stripe_customer->get_sources(); |
143 | 143 | |
144 | - foreach ( $stripe_sources as $source ) { |
|
145 | - if ( isset( $source->type ) && 'sepa_debit' === $source->type ) { |
|
146 | - if ( ! in_array( $source->id, $stored_tokens ) ) { |
|
144 | + foreach ($stripe_sources as $source) { |
|
145 | + if (isset($source->type) && 'sepa_debit' === $source->type) { |
|
146 | + if ( ! in_array($source->id, $stored_tokens)) { |
|
147 | 147 | $token = new WC_Payment_Token_SEPA(); |
148 | - $token->set_token( $source->id ); |
|
149 | - $token->set_gateway_id( 'stripe_sepa' ); |
|
150 | - $token->set_last4( $source->sepa_debit->last4 ); |
|
151 | - $token->set_user_id( $customer_id ); |
|
148 | + $token->set_token($source->id); |
|
149 | + $token->set_gateway_id('stripe_sepa'); |
|
150 | + $token->set_last4($source->sepa_debit->last4); |
|
151 | + $token->set_user_id($customer_id); |
|
152 | 152 | $token->save(); |
153 | - $tokens[ $token->get_id() ] = $token; |
|
153 | + $tokens[$token->get_id()] = $token; |
|
154 | 154 | } |
155 | 155 | } |
156 | 156 | } |
@@ -169,10 +169,10 @@ discard block |
||
169 | 169 | * @param WC_Payment_Token $payment_token The payment token associated with this method entry |
170 | 170 | * @return array Filtered item |
171 | 171 | */ |
172 | - public function get_account_saved_payment_methods_list_item_sepa( $item, $payment_token ) { |
|
173 | - if ( 'sepa' === strtolower( $payment_token->get_type() ) ) { |
|
172 | + public function get_account_saved_payment_methods_list_item_sepa($item, $payment_token) { |
|
173 | + if ('sepa' === strtolower($payment_token->get_type())) { |
|
174 | 174 | $item['method']['last4'] = $payment_token->get_last4(); |
175 | - $item['method']['brand'] = esc_html__( 'SEPA IBAN', 'woocommerce-gateway-stripe' ); |
|
175 | + $item['method']['brand'] = esc_html__('SEPA IBAN', 'woocommerce-gateway-stripe'); |
|
176 | 176 | } |
177 | 177 | |
178 | 178 | return $item; |
@@ -184,10 +184,10 @@ discard block |
||
184 | 184 | * @since 3.1.0 |
185 | 185 | * @version 4.0.0 |
186 | 186 | */ |
187 | - public function woocommerce_payment_token_deleted( $token_id, $token ) { |
|
188 | - if ( 'stripe' === $token->get_gateway_id() || 'stripe_sepa' === $token->get_gateway_id() ) { |
|
189 | - $stripe_customer = new WC_Stripe_Customer( get_current_user_id() ); |
|
190 | - $stripe_customer->delete_source( $token->get_token() ); |
|
187 | + public function woocommerce_payment_token_deleted($token_id, $token) { |
|
188 | + if ('stripe' === $token->get_gateway_id() || 'stripe_sepa' === $token->get_gateway_id()) { |
|
189 | + $stripe_customer = new WC_Stripe_Customer(get_current_user_id()); |
|
190 | + $stripe_customer->delete_source($token->get_token()); |
|
191 | 191 | } |
192 | 192 | } |
193 | 193 | |
@@ -197,12 +197,12 @@ discard block |
||
197 | 197 | * @since 3.1.0 |
198 | 198 | * @version 4.0.0 |
199 | 199 | */ |
200 | - public function woocommerce_payment_token_set_default( $token_id ) { |
|
201 | - $token = WC_Payment_Tokens::get( $token_id ); |
|
200 | + public function woocommerce_payment_token_set_default($token_id) { |
|
201 | + $token = WC_Payment_Tokens::get($token_id); |
|
202 | 202 | |
203 | - if ( 'stripe' === $token->get_gateway_id() || 'stripe_sepa' === $token->get_gateway_id() ) { |
|
204 | - $stripe_customer = new WC_Stripe_Customer( get_current_user_id() ); |
|
205 | - $stripe_customer->set_default_source( $token->get_token() ); |
|
203 | + if ('stripe' === $token->get_gateway_id() || 'stripe_sepa' === $token->get_gateway_id()) { |
|
204 | + $stripe_customer = new WC_Stripe_Customer(get_current_user_id()); |
|
205 | + $stripe_customer->set_default_source($token->get_token()); |
|
206 | 206 | } |
207 | 207 | } |
208 | 208 | } |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -15,21 +15,21 @@ discard block |
||
15 | 15 | public function __construct() { |
16 | 16 | parent::__construct(); |
17 | 17 | |
18 | - if ( class_exists( 'WC_Subscriptions_Order' ) ) { |
|
19 | - add_action( 'woocommerce_scheduled_subscription_payment_' . $this->id, array( $this, 'scheduled_subscription_payment' ), 10, 2 ); |
|
20 | - add_action( 'wcs_resubscribe_order_created', array( $this, 'delete_resubscribe_meta' ), 10 ); |
|
21 | - add_action( 'wcs_renewal_order_created', array( $this, 'delete_renewal_meta' ), 10 ); |
|
22 | - add_action( 'woocommerce_subscription_failing_payment_method_updated_stripe', array( $this, 'update_failing_payment_method' ), 10, 2 ); |
|
23 | - add_action( 'wc_stripe_cards_payment_fields', array( $this, 'display_update_subs_payment_checkout' ) ); |
|
24 | - add_action( 'wc_stripe_add_payment_method_' . $this->id . '_success', array( $this, 'handle_add_payment_method_success' ), 10, 2 ); |
|
18 | + if (class_exists('WC_Subscriptions_Order')) { |
|
19 | + add_action('woocommerce_scheduled_subscription_payment_' . $this->id, array($this, 'scheduled_subscription_payment'), 10, 2); |
|
20 | + add_action('wcs_resubscribe_order_created', array($this, 'delete_resubscribe_meta'), 10); |
|
21 | + add_action('wcs_renewal_order_created', array($this, 'delete_renewal_meta'), 10); |
|
22 | + add_action('woocommerce_subscription_failing_payment_method_updated_stripe', array($this, 'update_failing_payment_method'), 10, 2); |
|
23 | + add_action('wc_stripe_cards_payment_fields', array($this, 'display_update_subs_payment_checkout')); |
|
24 | + add_action('wc_stripe_add_payment_method_' . $this->id . '_success', array($this, 'handle_add_payment_method_success'), 10, 2); |
|
25 | 25 | |
26 | 26 | // display the credit card used for a subscription in the "My Subscriptions" table |
27 | - add_filter( 'woocommerce_my_subscriptions_payment_method', array( $this, 'maybe_render_subscription_payment_method' ), 10, 2 ); |
|
27 | + add_filter('woocommerce_my_subscriptions_payment_method', array($this, 'maybe_render_subscription_payment_method'), 10, 2); |
|
28 | 28 | |
29 | 29 | // allow store managers to manually set Stripe as the payment method on a subscription |
30 | - add_filter( 'woocommerce_subscription_payment_meta', array( $this, 'add_subscription_payment_meta' ), 10, 2 ); |
|
31 | - add_filter( 'woocommerce_subscription_validate_payment_meta', array( $this, 'validate_subscription_payment_meta' ), 10, 2 ); |
|
32 | - add_filter( 'wc_stripe_display_save_payment_method_checkbox', array( $this, 'maybe_hide_save_checkbox' ) ); |
|
30 | + add_filter('woocommerce_subscription_payment_meta', array($this, 'add_subscription_payment_meta'), 10, 2); |
|
31 | + add_filter('woocommerce_subscription_validate_payment_meta', array($this, 'validate_subscription_payment_meta'), 10, 2); |
|
32 | + add_filter('wc_stripe_display_save_payment_method_checkbox', array($this, 'maybe_hide_save_checkbox')); |
|
33 | 33 | |
34 | 34 | /* |
35 | 35 | * WC subscriptions hooks into the "template_redirect" hook with priority 100. |
@@ -37,8 +37,8 @@ discard block |
||
37 | 37 | * See: https://github.com/woocommerce/woocommerce-subscriptions/blob/99a75687e109b64cbc07af6e5518458a6305f366/includes/class-wcs-cart-renewal.php#L165 |
38 | 38 | * If we are in the "You just need to authorize SCA" flow, we don't want that redirection to happen. |
39 | 39 | */ |
40 | - add_action( 'template_redirect', array( $this, 'remove_order_pay_var' ), 99 ); |
|
41 | - add_action( 'template_redirect', array( $this, 'restore_order_pay_var' ), 101 ); |
|
40 | + add_action('template_redirect', array($this, 'remove_order_pay_var'), 99); |
|
41 | + add_action('template_redirect', array($this, 'restore_order_pay_var'), 101); |
|
42 | 42 | } |
43 | 43 | } |
44 | 44 | |
@@ -49,8 +49,8 @@ discard block |
||
49 | 49 | * @since 4.0.0 |
50 | 50 | * @version 4.0.0 |
51 | 51 | */ |
52 | - public function maybe_hide_save_checkbox( $display_tokenization ) { |
|
53 | - if ( WC_Subscriptions_Cart::cart_contains_subscription() ) { |
|
52 | + public function maybe_hide_save_checkbox($display_tokenization) { |
|
53 | + if (WC_Subscriptions_Cart::cart_contains_subscription()) { |
|
54 | 54 | return false; |
55 | 55 | } |
56 | 56 | |
@@ -62,8 +62,8 @@ discard block |
||
62 | 62 | * @param int $order_id |
63 | 63 | * @return boolean |
64 | 64 | */ |
65 | - public function has_subscription( $order_id ) { |
|
66 | - return ( function_exists( 'wcs_order_contains_subscription' ) && ( wcs_order_contains_subscription( $order_id ) || wcs_is_subscription( $order_id ) || wcs_order_contains_renewal( $order_id ) ) ); |
|
65 | + public function has_subscription($order_id) { |
|
66 | + return (function_exists('wcs_order_contains_subscription') && (wcs_order_contains_subscription($order_id) || wcs_is_subscription($order_id) || wcs_order_contains_renewal($order_id))); |
|
67 | 67 | } |
68 | 68 | |
69 | 69 | /** |
@@ -73,7 +73,7 @@ discard block |
||
73 | 73 | * @return bool |
74 | 74 | */ |
75 | 75 | public function is_subs_change_payment() { |
76 | - return ( isset( $_GET['pay_for_order'] ) && isset( $_GET['change_payment_method'] ) ); |
|
76 | + return (isset($_GET['pay_for_order']) && isset($_GET['change_payment_method'])); |
|
77 | 77 | } |
78 | 78 | |
79 | 79 | /** |
@@ -83,20 +83,20 @@ discard block |
||
83 | 83 | * @since 4.1.11 |
84 | 84 | */ |
85 | 85 | public function display_update_subs_payment_checkout() { |
86 | - $subs_statuses = apply_filters( 'wc_stripe_update_subs_payment_method_card_statuses', array( 'active' ) ); |
|
86 | + $subs_statuses = apply_filters('wc_stripe_update_subs_payment_method_card_statuses', array('active')); |
|
87 | 87 | if ( |
88 | - apply_filters( 'wc_stripe_display_update_subs_payment_method_card_checkbox', true ) && |
|
89 | - wcs_user_has_subscription( get_current_user_id(), '', $subs_statuses ) && |
|
88 | + apply_filters('wc_stripe_display_update_subs_payment_method_card_checkbox', true) && |
|
89 | + wcs_user_has_subscription(get_current_user_id(), '', $subs_statuses) && |
|
90 | 90 | is_add_payment_method_page() |
91 | 91 | ) { |
92 | - $label = esc_html( apply_filters( 'wc_stripe_save_to_subs_text', __( 'Update the Payment Method used for all of my active subscriptions.', 'woocommerce-gateway-stripe' ) ) ); |
|
93 | - $id = sprintf( 'wc-%1$s-update-subs-payment-method-card', $this->id ); |
|
92 | + $label = esc_html(apply_filters('wc_stripe_save_to_subs_text', __('Update the Payment Method used for all of my active subscriptions.', 'woocommerce-gateway-stripe'))); |
|
93 | + $id = sprintf('wc-%1$s-update-subs-payment-method-card', $this->id); |
|
94 | 94 | woocommerce_form_field( |
95 | 95 | $id, |
96 | 96 | array( |
97 | 97 | 'type' => 'checkbox', |
98 | 98 | 'label' => $label, |
99 | - 'default' => apply_filters( 'wc_stripe_save_to_subs_checked', false ), |
|
99 | + 'default' => apply_filters('wc_stripe_save_to_subs_checked', false), |
|
100 | 100 | ) |
101 | 101 | ); |
102 | 102 | } |
@@ -109,19 +109,19 @@ discard block |
||
109 | 109 | * @param string $source_id |
110 | 110 | * @param object $source_object |
111 | 111 | */ |
112 | - public function handle_add_payment_method_success( $source_id, $source_object ) { |
|
113 | - if ( isset( $_POST[ 'wc-' . $this->id . '-update-subs-payment-method-card' ] ) ) { |
|
112 | + public function handle_add_payment_method_success($source_id, $source_object) { |
|
113 | + if (isset($_POST['wc-' . $this->id . '-update-subs-payment-method-card'])) { |
|
114 | 114 | $all_subs = wcs_get_users_subscriptions(); |
115 | - $subs_statuses = apply_filters( 'wc_stripe_update_subs_payment_method_card_statuses', array( 'active' ) ); |
|
116 | - $stripe_customer = new WC_Stripe_Customer( get_current_user_id() ); |
|
117 | - |
|
118 | - if ( ! empty( $all_subs ) ) { |
|
119 | - foreach ( $all_subs as $sub ) { |
|
120 | - if ( $sub->has_status( $subs_statuses ) ) { |
|
121 | - update_post_meta( $sub->get_id(), '_stripe_source_id', $source_id ); |
|
122 | - update_post_meta( $sub->get_id(), '_stripe_customer_id', $stripe_customer->get_id() ); |
|
123 | - update_post_meta( $sub->get_id(), '_payment_method', $this->id ); |
|
124 | - update_post_meta( $sub->get_id(), '_payment_method_title', $this->method_title ); |
|
115 | + $subs_statuses = apply_filters('wc_stripe_update_subs_payment_method_card_statuses', array('active')); |
|
116 | + $stripe_customer = new WC_Stripe_Customer(get_current_user_id()); |
|
117 | + |
|
118 | + if ( ! empty($all_subs)) { |
|
119 | + foreach ($all_subs as $sub) { |
|
120 | + if ($sub->has_status($subs_statuses)) { |
|
121 | + update_post_meta($sub->get_id(), '_stripe_source_id', $source_id); |
|
122 | + update_post_meta($sub->get_id(), '_stripe_customer_id', $stripe_customer->get_id()); |
|
123 | + update_post_meta($sub->get_id(), '_payment_method', $this->id); |
|
124 | + update_post_meta($sub->get_id(), '_payment_method_title', $this->method_title); |
|
125 | 125 | } |
126 | 126 | } |
127 | 127 | } |
@@ -135,24 +135,24 @@ discard block |
||
135 | 135 | * @since 4.1.11 Remove 3DS check as it is not needed. |
136 | 136 | * @param int $order_id |
137 | 137 | */ |
138 | - public function change_subs_payment_method( $order_id ) { |
|
138 | + public function change_subs_payment_method($order_id) { |
|
139 | 139 | try { |
140 | - $subscription = wc_get_order( $order_id ); |
|
141 | - $prepared_source = $this->prepare_source( get_current_user_id(), true ); |
|
140 | + $subscription = wc_get_order($order_id); |
|
141 | + $prepared_source = $this->prepare_source(get_current_user_id(), true); |
|
142 | 142 | |
143 | - $this->maybe_disallow_prepaid_card( $prepared_source ); |
|
144 | - $this->check_source( $prepared_source ); |
|
145 | - $this->save_source_to_order( $subscription, $prepared_source ); |
|
143 | + $this->maybe_disallow_prepaid_card($prepared_source); |
|
144 | + $this->check_source($prepared_source); |
|
145 | + $this->save_source_to_order($subscription, $prepared_source); |
|
146 | 146 | |
147 | - do_action( 'wc_stripe_change_subs_payment_method_success', $prepared_source->source, $prepared_source ); |
|
147 | + do_action('wc_stripe_change_subs_payment_method_success', $prepared_source->source, $prepared_source); |
|
148 | 148 | |
149 | 149 | return array( |
150 | 150 | 'result' => 'success', |
151 | - 'redirect' => $this->get_return_url( $subscription ), |
|
151 | + 'redirect' => $this->get_return_url($subscription), |
|
152 | 152 | ); |
153 | - } catch ( WC_Stripe_Exception $e ) { |
|
154 | - wc_add_notice( $e->getLocalizedMessage(), 'error' ); |
|
155 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
153 | + } catch (WC_Stripe_Exception $e) { |
|
154 | + wc_add_notice($e->getLocalizedMessage(), 'error'); |
|
155 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
156 | 156 | } |
157 | 157 | } |
158 | 158 | |
@@ -161,16 +161,16 @@ discard block |
||
161 | 161 | * @param int $order_id |
162 | 162 | * @return array |
163 | 163 | */ |
164 | - public function process_payment( $order_id, $retry = true, $force_save_source = false, $previous_error = false, $use_order_source = false ) { |
|
165 | - if ( $this->has_subscription( $order_id ) ) { |
|
166 | - if ( $this->is_subs_change_payment() ) { |
|
167 | - return $this->change_subs_payment_method( $order_id ); |
|
164 | + public function process_payment($order_id, $retry = true, $force_save_source = false, $previous_error = false, $use_order_source = false) { |
|
165 | + if ($this->has_subscription($order_id)) { |
|
166 | + if ($this->is_subs_change_payment()) { |
|
167 | + return $this->change_subs_payment_method($order_id); |
|
168 | 168 | } |
169 | 169 | |
170 | 170 | // Regular payment with force customer enabled |
171 | - return parent::process_payment( $order_id, $retry, true, $previous_error, $use_order_source ); |
|
171 | + return parent::process_payment($order_id, $retry, true, $previous_error, $use_order_source); |
|
172 | 172 | } else { |
173 | - return parent::process_payment( $order_id, $retry, $force_save_source, $previous_error, $use_order_source ); |
|
173 | + return parent::process_payment($order_id, $retry, $force_save_source, $previous_error, $use_order_source); |
|
174 | 174 | } |
175 | 175 | } |
176 | 176 | |
@@ -182,11 +182,11 @@ discard block |
||
182 | 182 | * @param object $prepared_source The source that is used for the payment. |
183 | 183 | * @return array The arguments for the request. |
184 | 184 | */ |
185 | - public function generate_create_intent_request( $order, $prepared_source ) { |
|
186 | - $request = parent::generate_create_intent_request( $order, $prepared_source ); |
|
185 | + public function generate_create_intent_request($order, $prepared_source) { |
|
186 | + $request = parent::generate_create_intent_request($order, $prepared_source); |
|
187 | 187 | |
188 | 188 | // Non-subscription orders do not need any additional parameters. |
189 | - if ( ! $this->has_subscription( $order ) ) { |
|
189 | + if ( ! $this->has_subscription($order)) { |
|
190 | 190 | return $request; |
191 | 191 | } |
192 | 192 | |
@@ -202,8 +202,8 @@ discard block |
||
202 | 202 | * @param $amount_to_charge float The amount to charge. |
203 | 203 | * @param $renewal_order WC_Order A WC_Order object created to record the renewal payment. |
204 | 204 | */ |
205 | - public function scheduled_subscription_payment( $amount_to_charge, $renewal_order ) { |
|
206 | - $this->process_subscription_payment( $amount_to_charge, $renewal_order, true, false ); |
|
205 | + public function scheduled_subscription_payment($amount_to_charge, $renewal_order) { |
|
206 | + $this->process_subscription_payment($amount_to_charge, $renewal_order, true, false); |
|
207 | 207 | } |
208 | 208 | |
209 | 209 | /** |
@@ -217,11 +217,11 @@ discard block |
||
217 | 217 | * @param bool $retry Should we retry the process? |
218 | 218 | * @param object $previous_error |
219 | 219 | */ |
220 | - public function process_subscription_payment( $amount, $renewal_order, $retry = true, $previous_error = false ) { |
|
220 | + public function process_subscription_payment($amount, $renewal_order, $retry = true, $previous_error = false) { |
|
221 | 221 | try { |
222 | - if ( $amount * 100 < WC_Stripe_Helper::get_minimum_amount() ) { |
|
222 | + if ($amount * 100 < WC_Stripe_Helper::get_minimum_amount()) { |
|
223 | 223 | /* translators: minimum amount */ |
224 | - $message = sprintf( __( 'Sorry, the minimum allowed order total is %1$s to use this payment method.', 'woocommerce-gateway-stripe' ), wc_price( WC_Stripe_Helper::get_minimum_amount() / 100 ) ); |
|
224 | + $message = sprintf(__('Sorry, the minimum allowed order total is %1$s to use this payment method.', 'woocommerce-gateway-stripe'), wc_price(WC_Stripe_Helper::get_minimum_amount() / 100)); |
|
225 | 225 | throw new WC_Stripe_Exception( |
226 | 226 | 'Error while processing renewal order ' . $renewal_order->get_id() . ' : ' . $message, |
227 | 227 | $message |
@@ -230,141 +230,141 @@ discard block |
||
230 | 230 | |
231 | 231 | $order_id = $renewal_order->get_id(); |
232 | 232 | |
233 | - $this->ensure_subscription_has_customer_id( $order_id ); |
|
233 | + $this->ensure_subscription_has_customer_id($order_id); |
|
234 | 234 | |
235 | 235 | // Unlike regular off-session subscription payments, early renewals are treated as on-session payments, involving the customer. |
236 | - if ( isset( $_REQUEST['process_early_renewal'] ) ) { // wpcs: csrf ok. |
|
237 | - $response = parent::process_payment( $order_id, true, false, $previous_error, true ); |
|
236 | + if (isset($_REQUEST['process_early_renewal'])) { // wpcs: csrf ok. |
|
237 | + $response = parent::process_payment($order_id, true, false, $previous_error, true); |
|
238 | 238 | |
239 | - if( 'success' === $response['result'] && isset( $response['payment_intent_secret'] ) ) { |
|
239 | + if ('success' === $response['result'] && isset($response['payment_intent_secret'])) { |
|
240 | 240 | $verification_url = add_query_arg( |
241 | 241 | array( |
242 | 242 | 'order' => $order_id, |
243 | - 'nonce' => wp_create_nonce( 'wc_stripe_confirm_pi' ), |
|
244 | - 'redirect_to' => remove_query_arg( array( 'process_early_renewal', 'subscription_id', 'wcs_nonce' ) ), |
|
243 | + 'nonce' => wp_create_nonce('wc_stripe_confirm_pi'), |
|
244 | + 'redirect_to' => remove_query_arg(array('process_early_renewal', 'subscription_id', 'wcs_nonce')), |
|
245 | 245 | 'early_renewal' => true, |
246 | 246 | ), |
247 | - WC_AJAX::get_endpoint( 'wc_stripe_verify_intent' ) |
|
247 | + WC_AJAX::get_endpoint('wc_stripe_verify_intent') |
|
248 | 248 | ); |
249 | 249 | |
250 | - echo wp_json_encode( array( |
|
250 | + echo wp_json_encode(array( |
|
251 | 251 | 'stripe_sca_required' => true, |
252 | 252 | 'intent_secret' => $response['payment_intent_secret'], |
253 | 253 | 'redirect_url' => $verification_url, |
254 | - ) ); |
|
254 | + )); |
|
255 | 255 | |
256 | 256 | exit; |
257 | 257 | } |
258 | 258 | |
259 | 259 | // Hijack all other redirects in order to do the redirection in JavaScript. |
260 | - add_action( 'wp_redirect', array( $this, 'redirect_after_early_renewal' ), 100 ); |
|
260 | + add_action('wp_redirect', array($this, 'redirect_after_early_renewal'), 100); |
|
261 | 261 | |
262 | 262 | return; |
263 | 263 | } |
264 | 264 | |
265 | 265 | // Check for an existing intent, which is associated with the order. |
266 | - if ( $this->has_authentication_already_failed( $renewal_order ) ) { |
|
266 | + if ($this->has_authentication_already_failed($renewal_order)) { |
|
267 | 267 | return; |
268 | 268 | } |
269 | 269 | |
270 | 270 | // Get source from order |
271 | - $prepared_source = $this->prepare_order_source( $renewal_order ); |
|
271 | + $prepared_source = $this->prepare_order_source($renewal_order); |
|
272 | 272 | $source_object = $prepared_source->source_object; |
273 | 273 | |
274 | - if ( ! $prepared_source->customer ) { |
|
274 | + if ( ! $prepared_source->customer) { |
|
275 | 275 | throw new WC_Stripe_Exception( |
276 | 276 | 'Failed to process renewal for order ' . $renewal_order->get_id() . '. Stripe customer id is missing in the order', |
277 | - __( 'Customer not found', 'woocommerce-gateway-stripe' ) |
|
277 | + __('Customer not found', 'woocommerce-gateway-stripe') |
|
278 | 278 | ); |
279 | 279 | } |
280 | 280 | |
281 | - WC_Stripe_Logger::log( "Info: Begin processing subscription payment for order {$order_id} for the amount of {$amount}" ); |
|
281 | + WC_Stripe_Logger::log("Info: Begin processing subscription payment for order {$order_id} for the amount of {$amount}"); |
|
282 | 282 | |
283 | 283 | /* If we're doing a retry and source is chargeable, we need to pass |
284 | 284 | * a different idempotency key and retry for success. |
285 | 285 | */ |
286 | - if ( is_object( $source_object ) && empty( $source_object->error ) && $this->need_update_idempotency_key( $source_object, $previous_error ) ) { |
|
287 | - add_filter( 'wc_stripe_idempotency_key', array( $this, 'change_idempotency_key' ), 10, 2 ); |
|
286 | + if (is_object($source_object) && empty($source_object->error) && $this->need_update_idempotency_key($source_object, $previous_error)) { |
|
287 | + add_filter('wc_stripe_idempotency_key', array($this, 'change_idempotency_key'), 10, 2); |
|
288 | 288 | } |
289 | 289 | |
290 | - if ( ( $this->is_no_such_source_error( $previous_error ) || $this->is_no_linked_source_error( $previous_error ) ) && apply_filters( 'wc_stripe_use_default_customer_source', true ) ) { |
|
290 | + if (($this->is_no_such_source_error($previous_error) || $this->is_no_linked_source_error($previous_error)) && apply_filters('wc_stripe_use_default_customer_source', true)) { |
|
291 | 291 | // Passing empty source will charge customer default. |
292 | 292 | $prepared_source->source = ''; |
293 | 293 | } |
294 | 294 | |
295 | - $this->lock_order_payment( $renewal_order ); |
|
295 | + $this->lock_order_payment($renewal_order); |
|
296 | 296 | |
297 | - $response = $this->create_and_confirm_intent_for_off_session( $renewal_order, $prepared_source, $amount ); |
|
298 | - $is_authentication_required = $this->is_authentication_required_for_payment( $response ); |
|
297 | + $response = $this->create_and_confirm_intent_for_off_session($renewal_order, $prepared_source, $amount); |
|
298 | + $is_authentication_required = $this->is_authentication_required_for_payment($response); |
|
299 | 299 | |
300 | 300 | // It's only a failed payment if it's an error and it's not of the type 'authentication_required'. |
301 | 301 | // If it's 'authentication_required', then we should email the user and ask them to authenticate. |
302 | - if ( ! empty( $response->error ) && ! $is_authentication_required ) { |
|
302 | + if ( ! empty($response->error) && ! $is_authentication_required) { |
|
303 | 303 | // We want to retry. |
304 | - if ( $this->is_retryable_error( $response->error ) ) { |
|
305 | - if ( $retry ) { |
|
304 | + if ($this->is_retryable_error($response->error)) { |
|
305 | + if ($retry) { |
|
306 | 306 | // Don't do anymore retries after this. |
307 | - if ( 5 <= $this->retry_interval ) { |
|
308 | - return $this->process_subscription_payment( $amount, $renewal_order, false, $response->error ); |
|
307 | + if (5 <= $this->retry_interval) { |
|
308 | + return $this->process_subscription_payment($amount, $renewal_order, false, $response->error); |
|
309 | 309 | } |
310 | 310 | |
311 | - sleep( $this->retry_interval ); |
|
311 | + sleep($this->retry_interval); |
|
312 | 312 | |
313 | 313 | $this->retry_interval++; |
314 | 314 | |
315 | - return $this->process_subscription_payment( $amount, $renewal_order, true, $response->error ); |
|
315 | + return $this->process_subscription_payment($amount, $renewal_order, true, $response->error); |
|
316 | 316 | } else { |
317 | - $localized_message = __( 'Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe' ); |
|
318 | - $renewal_order->add_order_note( $localized_message ); |
|
319 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
317 | + $localized_message = __('Sorry, we are unable to process your payment at this time. Please retry later.', 'woocommerce-gateway-stripe'); |
|
318 | + $renewal_order->add_order_note($localized_message); |
|
319 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
320 | 320 | } |
321 | 321 | } |
322 | 322 | |
323 | 323 | $localized_messages = WC_Stripe_Helper::get_localized_messages(); |
324 | 324 | |
325 | - if ( 'card_error' === $response->error->type ) { |
|
326 | - $localized_message = isset( $localized_messages[ $response->error->code ] ) ? $localized_messages[ $response->error->code ] : $response->error->message; |
|
325 | + if ('card_error' === $response->error->type) { |
|
326 | + $localized_message = isset($localized_messages[$response->error->code]) ? $localized_messages[$response->error->code] : $response->error->message; |
|
327 | 327 | } else { |
328 | - $localized_message = isset( $localized_messages[ $response->error->type ] ) ? $localized_messages[ $response->error->type ] : $response->error->message; |
|
328 | + $localized_message = isset($localized_messages[$response->error->type]) ? $localized_messages[$response->error->type] : $response->error->message; |
|
329 | 329 | } |
330 | 330 | |
331 | - $renewal_order->add_order_note( $localized_message ); |
|
331 | + $renewal_order->add_order_note($localized_message); |
|
332 | 332 | |
333 | - throw new WC_Stripe_Exception( print_r( $response, true ), $localized_message ); |
|
333 | + throw new WC_Stripe_Exception(print_r($response, true), $localized_message); |
|
334 | 334 | } |
335 | 335 | |
336 | 336 | // Either the charge was successfully captured, or it requires further authentication. |
337 | 337 | |
338 | - if ( $is_authentication_required ) { |
|
339 | - do_action( 'wc_gateway_stripe_process_payment_authentication_required', $renewal_order, $response ); |
|
338 | + if ($is_authentication_required) { |
|
339 | + do_action('wc_gateway_stripe_process_payment_authentication_required', $renewal_order, $response); |
|
340 | 340 | |
341 | - $error_message = __( 'This transaction requires authentication.', 'woocommerce-gateway-stripe' ); |
|
342 | - $renewal_order->add_order_note( $error_message ); |
|
341 | + $error_message = __('This transaction requires authentication.', 'woocommerce-gateway-stripe'); |
|
342 | + $renewal_order->add_order_note($error_message); |
|
343 | 343 | |
344 | - $charge = end( $response->error->payment_intent->charges->data ); |
|
344 | + $charge = end($response->error->payment_intent->charges->data); |
|
345 | 345 | $id = $charge->id; |
346 | 346 | $order_id = $renewal_order->get_id(); |
347 | 347 | |
348 | - $renewal_order->set_transaction_id( $id ); |
|
349 | - $renewal_order->update_status( 'failed', sprintf( __( 'Stripe charge awaiting authentication by user: %s.', 'woocommerce-gateway-stripe' ), $id ) ); |
|
350 | - if ( is_callable( array( $renewal_order, 'save' ) ) ) { |
|
348 | + $renewal_order->set_transaction_id($id); |
|
349 | + $renewal_order->update_status('failed', sprintf(__('Stripe charge awaiting authentication by user: %s.', 'woocommerce-gateway-stripe'), $id)); |
|
350 | + if (is_callable(array($renewal_order, 'save'))) { |
|
351 | 351 | $renewal_order->save(); |
352 | 352 | } |
353 | 353 | } else { |
354 | 354 | // The charge was successfully captured |
355 | - do_action( 'wc_gateway_stripe_process_payment', $response, $renewal_order ); |
|
355 | + do_action('wc_gateway_stripe_process_payment', $response, $renewal_order); |
|
356 | 356 | |
357 | - $this->process_response( end( $response->charges->data ), $renewal_order ); |
|
357 | + $this->process_response(end($response->charges->data), $renewal_order); |
|
358 | 358 | } |
359 | 359 | |
360 | - $this->unlock_order_payment( $renewal_order ); |
|
361 | - } catch ( WC_Stripe_Exception $e ) { |
|
362 | - WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() ); |
|
360 | + $this->unlock_order_payment($renewal_order); |
|
361 | + } catch (WC_Stripe_Exception $e) { |
|
362 | + WC_Stripe_Logger::log('Error: ' . $e->getMessage()); |
|
363 | 363 | |
364 | - do_action( 'wc_gateway_stripe_process_payment_error', $e, $renewal_order ); |
|
364 | + do_action('wc_gateway_stripe_process_payment_error', $e, $renewal_order); |
|
365 | 365 | |
366 | 366 | /* translators: error message */ |
367 | - $renewal_order->update_status( 'failed' ); |
|
367 | + $renewal_order->update_status('failed'); |
|
368 | 368 | } |
369 | 369 | } |
370 | 370 | |
@@ -374,24 +374,24 @@ discard block |
||
374 | 374 | * @since 3.1.0 |
375 | 375 | * @version 4.0.0 |
376 | 376 | */ |
377 | - public function save_source_to_order( $order, $source ) { |
|
378 | - parent::save_source_to_order( $order, $source ); |
|
377 | + public function save_source_to_order($order, $source) { |
|
378 | + parent::save_source_to_order($order, $source); |
|
379 | 379 | |
380 | 380 | $order_id = $order->get_id(); |
381 | 381 | |
382 | 382 | // Also store it on the subscriptions being purchased or paid for in the order |
383 | - if ( function_exists( 'wcs_order_contains_subscription' ) && wcs_order_contains_subscription( $order_id ) ) { |
|
384 | - $subscriptions = wcs_get_subscriptions_for_order( $order_id ); |
|
385 | - } elseif ( function_exists( 'wcs_order_contains_renewal' ) && wcs_order_contains_renewal( $order_id ) ) { |
|
386 | - $subscriptions = wcs_get_subscriptions_for_renewal_order( $order_id ); |
|
383 | + if (function_exists('wcs_order_contains_subscription') && wcs_order_contains_subscription($order_id)) { |
|
384 | + $subscriptions = wcs_get_subscriptions_for_order($order_id); |
|
385 | + } elseif (function_exists('wcs_order_contains_renewal') && wcs_order_contains_renewal($order_id)) { |
|
386 | + $subscriptions = wcs_get_subscriptions_for_renewal_order($order_id); |
|
387 | 387 | } else { |
388 | 388 | $subscriptions = array(); |
389 | 389 | } |
390 | 390 | |
391 | - foreach ( $subscriptions as $subscription ) { |
|
391 | + foreach ($subscriptions as $subscription) { |
|
392 | 392 | $subscription_id = $subscription->get_id(); |
393 | - update_post_meta( $subscription_id, '_stripe_customer_id', $source->customer ); |
|
394 | - update_post_meta( $subscription_id, '_stripe_source_id', $source->source ); |
|
393 | + update_post_meta($subscription_id, '_stripe_customer_id', $source->customer); |
|
394 | + update_post_meta($subscription_id, '_stripe_source_id', $source->source); |
|
395 | 395 | } |
396 | 396 | } |
397 | 397 | |
@@ -399,26 +399,26 @@ discard block |
||
399 | 399 | * Don't transfer Stripe customer/token meta to resubscribe orders. |
400 | 400 | * @param int $resubscribe_order The order created for the customer to resubscribe to the old expired/cancelled subscription |
401 | 401 | */ |
402 | - public function delete_resubscribe_meta( $resubscribe_order ) { |
|
403 | - delete_post_meta( $resubscribe_order->get_id(), '_stripe_customer_id' ); |
|
404 | - delete_post_meta( $resubscribe_order->get_id(), '_stripe_source_id' ); |
|
402 | + public function delete_resubscribe_meta($resubscribe_order) { |
|
403 | + delete_post_meta($resubscribe_order->get_id(), '_stripe_customer_id'); |
|
404 | + delete_post_meta($resubscribe_order->get_id(), '_stripe_source_id'); |
|
405 | 405 | // For BW compat will remove in future |
406 | - delete_post_meta( $resubscribe_order->get_id(), '_stripe_card_id' ); |
|
406 | + delete_post_meta($resubscribe_order->get_id(), '_stripe_card_id'); |
|
407 | 407 | // delete payment intent ID |
408 | - delete_post_meta( $resubscribe_order->get_id(), '_stripe_intent_id' ); |
|
409 | - $this->delete_renewal_meta( $resubscribe_order ); |
|
408 | + delete_post_meta($resubscribe_order->get_id(), '_stripe_intent_id'); |
|
409 | + $this->delete_renewal_meta($resubscribe_order); |
|
410 | 410 | } |
411 | 411 | |
412 | 412 | /** |
413 | 413 | * Don't transfer Stripe fee/ID meta to renewal orders. |
414 | 414 | * @param int $resubscribe_order The order created for the customer to resubscribe to the old expired/cancelled subscription |
415 | 415 | */ |
416 | - public function delete_renewal_meta( $renewal_order ) { |
|
417 | - WC_Stripe_Helper::delete_stripe_fee( $renewal_order ); |
|
418 | - WC_Stripe_Helper::delete_stripe_net( $renewal_order ); |
|
416 | + public function delete_renewal_meta($renewal_order) { |
|
417 | + WC_Stripe_Helper::delete_stripe_fee($renewal_order); |
|
418 | + WC_Stripe_Helper::delete_stripe_net($renewal_order); |
|
419 | 419 | |
420 | 420 | // delete payment intent ID |
421 | - delete_post_meta( $renewal_order->get_id(), '_stripe_intent_id' ); |
|
421 | + delete_post_meta($renewal_order->get_id(), '_stripe_intent_id'); |
|
422 | 422 | |
423 | 423 | return $renewal_order; |
424 | 424 | } |
@@ -432,9 +432,9 @@ discard block |
||
432 | 432 | * @param WC_Order $renewal_order The order which recorded the successful payment (to make up for the failed automatic payment). |
433 | 433 | * @return void |
434 | 434 | */ |
435 | - public function update_failing_payment_method( $subscription, $renewal_order ) { |
|
436 | - update_post_meta( $subscription->get_id(), '_stripe_customer_id', $renewal_order->get_meta( '_stripe_customer_id', true ) ); |
|
437 | - update_post_meta( $subscription->get_id(), '_stripe_source_id', $renewal_order->get_meta( '_stripe_source_id', true ) ); |
|
435 | + public function update_failing_payment_method($subscription, $renewal_order) { |
|
436 | + update_post_meta($subscription->get_id(), '_stripe_customer_id', $renewal_order->get_meta('_stripe_customer_id', true)); |
|
437 | + update_post_meta($subscription->get_id(), '_stripe_source_id', $renewal_order->get_meta('_stripe_source_id', true)); |
|
438 | 438 | } |
439 | 439 | |
440 | 440 | /** |
@@ -446,23 +446,23 @@ discard block |
||
446 | 446 | * @param WC_Subscription $subscription An instance of a subscription object |
447 | 447 | * @return array |
448 | 448 | */ |
449 | - public function add_subscription_payment_meta( $payment_meta, $subscription ) { |
|
449 | + public function add_subscription_payment_meta($payment_meta, $subscription) { |
|
450 | 450 | $subscription_id = $subscription->get_id(); |
451 | - $source_id = get_post_meta( $subscription_id, '_stripe_source_id', true ); |
|
451 | + $source_id = get_post_meta($subscription_id, '_stripe_source_id', true); |
|
452 | 452 | |
453 | 453 | // For BW compat will remove in future. |
454 | - if ( empty( $source_id ) ) { |
|
455 | - $source_id = get_post_meta( $subscription_id, '_stripe_card_id', true ); |
|
454 | + if (empty($source_id)) { |
|
455 | + $source_id = get_post_meta($subscription_id, '_stripe_card_id', true); |
|
456 | 456 | |
457 | 457 | // Take this opportunity to update the key name. |
458 | - update_post_meta( $subscription_id, '_stripe_source_id', $source_id ); |
|
459 | - delete_post_meta( $subscription_id, '_stripe_card_id', $source_id ); |
|
458 | + update_post_meta($subscription_id, '_stripe_source_id', $source_id); |
|
459 | + delete_post_meta($subscription_id, '_stripe_card_id', $source_id); |
|
460 | 460 | } |
461 | 461 | |
462 | - $payment_meta[ $this->id ] = array( |
|
462 | + $payment_meta[$this->id] = array( |
|
463 | 463 | 'post_meta' => array( |
464 | 464 | '_stripe_customer_id' => array( |
465 | - 'value' => get_post_meta( $subscription_id, '_stripe_customer_id', true ), |
|
465 | + 'value' => get_post_meta($subscription_id, '_stripe_customer_id', true), |
|
466 | 466 | 'label' => 'Stripe Customer ID', |
467 | 467 | ), |
468 | 468 | '_stripe_source_id' => array( |
@@ -485,27 +485,27 @@ discard block |
||
485 | 485 | * @param array $payment_meta associative array of meta data required for automatic payments |
486 | 486 | * @return array |
487 | 487 | */ |
488 | - public function validate_subscription_payment_meta( $payment_method_id, $payment_meta ) { |
|
489 | - if ( $this->id === $payment_method_id ) { |
|
488 | + public function validate_subscription_payment_meta($payment_method_id, $payment_meta) { |
|
489 | + if ($this->id === $payment_method_id) { |
|
490 | 490 | |
491 | - if ( ! isset( $payment_meta['post_meta']['_stripe_customer_id']['value'] ) || empty( $payment_meta['post_meta']['_stripe_customer_id']['value'] ) ) { |
|
491 | + if ( ! isset($payment_meta['post_meta']['_stripe_customer_id']['value']) || empty($payment_meta['post_meta']['_stripe_customer_id']['value'])) { |
|
492 | 492 | |
493 | 493 | // Allow empty stripe customer id during subscription renewal. It will be added when processing payment if required. |
494 | - if ( ! isset( $_POST['wc_order_action'] ) || 'wcs_process_renewal' !== $_POST['wc_order_action'] ) { |
|
495 | - throw new Exception( __( 'A "Stripe Customer ID" value is required.', 'woocommerce-gateway-stripe' ) ); |
|
494 | + if ( ! isset($_POST['wc_order_action']) || 'wcs_process_renewal' !== $_POST['wc_order_action']) { |
|
495 | + throw new Exception(__('A "Stripe Customer ID" value is required.', 'woocommerce-gateway-stripe')); |
|
496 | 496 | } |
497 | - } elseif ( 0 !== strpos( $payment_meta['post_meta']['_stripe_customer_id']['value'], 'cus_' ) ) { |
|
498 | - throw new Exception( __( 'Invalid customer ID. A valid "Stripe Customer ID" must begin with "cus_".', 'woocommerce-gateway-stripe' ) ); |
|
497 | + } elseif (0 !== strpos($payment_meta['post_meta']['_stripe_customer_id']['value'], 'cus_')) { |
|
498 | + throw new Exception(__('Invalid customer ID. A valid "Stripe Customer ID" must begin with "cus_".', 'woocommerce-gateway-stripe')); |
|
499 | 499 | } |
500 | 500 | |
501 | 501 | if ( |
502 | - ! empty( $payment_meta['post_meta']['_stripe_source_id']['value'] ) && ( |
|
503 | - 0 !== strpos( $payment_meta['post_meta']['_stripe_source_id']['value'], 'card_' ) |
|
504 | - && 0 !== strpos( $payment_meta['post_meta']['_stripe_source_id']['value'], 'src_' ) |
|
505 | - && 0 !== strpos( $payment_meta['post_meta']['_stripe_source_id']['value'], 'pm_' ) |
|
502 | + ! empty($payment_meta['post_meta']['_stripe_source_id']['value']) && ( |
|
503 | + 0 !== strpos($payment_meta['post_meta']['_stripe_source_id']['value'], 'card_') |
|
504 | + && 0 !== strpos($payment_meta['post_meta']['_stripe_source_id']['value'], 'src_') |
|
505 | + && 0 !== strpos($payment_meta['post_meta']['_stripe_source_id']['value'], 'pm_') |
|
506 | 506 | ) |
507 | 507 | ) { |
508 | - throw new Exception( __( 'Invalid source ID. A valid source "Stripe Source ID" must begin with "src_", "pm_", or "card_".', 'woocommerce-gateway-stripe' ) ); |
|
508 | + throw new Exception(__('Invalid source ID. A valid source "Stripe Source ID" must begin with "src_", "pm_", or "card_".', 'woocommerce-gateway-stripe')); |
|
509 | 509 | } |
510 | 510 | } |
511 | 511 | } |
@@ -518,75 +518,75 @@ discard block |
||
518 | 518 | * @param WC_Subscription $subscription the subscription details |
519 | 519 | * @return string the subscription payment method |
520 | 520 | */ |
521 | - public function maybe_render_subscription_payment_method( $payment_method_to_display, $subscription ) { |
|
521 | + public function maybe_render_subscription_payment_method($payment_method_to_display, $subscription) { |
|
522 | 522 | $customer_user = $subscription->get_customer_id(); |
523 | 523 | |
524 | 524 | // bail for other payment methods |
525 | - if ( $subscription->get_payment_method() !== $this->id || ! $customer_user ) { |
|
525 | + if ($subscription->get_payment_method() !== $this->id || ! $customer_user) { |
|
526 | 526 | return $payment_method_to_display; |
527 | 527 | } |
528 | 528 | |
529 | - $stripe_source_id = get_post_meta( $subscription->get_id(), '_stripe_source_id', true ); |
|
529 | + $stripe_source_id = get_post_meta($subscription->get_id(), '_stripe_source_id', true); |
|
530 | 530 | |
531 | 531 | // For BW compat will remove in future. |
532 | - if ( empty( $stripe_source_id ) ) { |
|
533 | - $stripe_source_id = get_post_meta( $subscription->get_id(), '_stripe_card_id', true ); |
|
532 | + if (empty($stripe_source_id)) { |
|
533 | + $stripe_source_id = get_post_meta($subscription->get_id(), '_stripe_card_id', true); |
|
534 | 534 | |
535 | 535 | // Take this opportunity to update the key name. |
536 | - update_post_meta( $subscription->get_id(), '_stripe_source_id', $stripe_source_id ); |
|
536 | + update_post_meta($subscription->get_id(), '_stripe_source_id', $stripe_source_id); |
|
537 | 537 | } |
538 | 538 | |
539 | 539 | $stripe_customer = new WC_Stripe_Customer(); |
540 | - $stripe_customer_id = get_post_meta( $subscription->get_id(), '_stripe_customer_id', true ); |
|
540 | + $stripe_customer_id = get_post_meta($subscription->get_id(), '_stripe_customer_id', true); |
|
541 | 541 | |
542 | 542 | // If we couldn't find a Stripe customer linked to the subscription, fallback to the user meta data. |
543 | - if ( ! $stripe_customer_id || ! is_string( $stripe_customer_id ) ) { |
|
543 | + if ( ! $stripe_customer_id || ! is_string($stripe_customer_id)) { |
|
544 | 544 | $user_id = $customer_user; |
545 | - $stripe_customer_id = get_user_option( '_stripe_customer_id', $user_id ); |
|
546 | - $stripe_source_id = get_user_option( '_stripe_source_id', $user_id ); |
|
545 | + $stripe_customer_id = get_user_option('_stripe_customer_id', $user_id); |
|
546 | + $stripe_source_id = get_user_option('_stripe_source_id', $user_id); |
|
547 | 547 | |
548 | 548 | // For BW compat will remove in future. |
549 | - if ( empty( $stripe_source_id ) ) { |
|
550 | - $stripe_source_id = get_user_option( '_stripe_card_id', $user_id ); |
|
549 | + if (empty($stripe_source_id)) { |
|
550 | + $stripe_source_id = get_user_option('_stripe_card_id', $user_id); |
|
551 | 551 | |
552 | 552 | // Take this opportunity to update the key name. |
553 | - update_user_option( $user_id, '_stripe_source_id', $stripe_source_id, false ); |
|
553 | + update_user_option($user_id, '_stripe_source_id', $stripe_source_id, false); |
|
554 | 554 | } |
555 | 555 | } |
556 | 556 | |
557 | 557 | // If we couldn't find a Stripe customer linked to the account, fallback to the order meta data. |
558 | - if ( ( ! $stripe_customer_id || ! is_string( $stripe_customer_id ) ) && false !== $subscription->order ) { |
|
559 | - $stripe_customer_id = get_post_meta( $subscription->get_parent_id(), '_stripe_customer_id', true ); |
|
560 | - $stripe_source_id = get_post_meta( $subscription->get_parent_id(), '_stripe_source_id', true ); |
|
558 | + if (( ! $stripe_customer_id || ! is_string($stripe_customer_id)) && false !== $subscription->order) { |
|
559 | + $stripe_customer_id = get_post_meta($subscription->get_parent_id(), '_stripe_customer_id', true); |
|
560 | + $stripe_source_id = get_post_meta($subscription->get_parent_id(), '_stripe_source_id', true); |
|
561 | 561 | |
562 | 562 | // For BW compat will remove in future. |
563 | - if ( empty( $stripe_source_id ) ) { |
|
564 | - $stripe_source_id = get_post_meta( $subscription->get_parent_id(), '_stripe_card_id', true ); |
|
563 | + if (empty($stripe_source_id)) { |
|
564 | + $stripe_source_id = get_post_meta($subscription->get_parent_id(), '_stripe_card_id', true); |
|
565 | 565 | |
566 | 566 | // Take this opportunity to update the key name. |
567 | - update_post_meta( $subscription->get_parent_id(), '_stripe_source_id', $stripe_source_id ); |
|
567 | + update_post_meta($subscription->get_parent_id(), '_stripe_source_id', $stripe_source_id); |
|
568 | 568 | } |
569 | 569 | } |
570 | 570 | |
571 | - $stripe_customer->set_id( $stripe_customer_id ); |
|
571 | + $stripe_customer->set_id($stripe_customer_id); |
|
572 | 572 | |
573 | 573 | $sources = $stripe_customer->get_sources(); |
574 | - $payment_method_to_display = __( 'N/A', 'woocommerce-gateway-stripe' ); |
|
574 | + $payment_method_to_display = __('N/A', 'woocommerce-gateway-stripe'); |
|
575 | 575 | |
576 | - if ( $sources ) { |
|
576 | + if ($sources) { |
|
577 | 577 | $card = false; |
578 | 578 | |
579 | - foreach ( $sources as $source ) { |
|
580 | - if ( isset( $source->type ) && 'card' === $source->type ) { |
|
579 | + foreach ($sources as $source) { |
|
580 | + if (isset($source->type) && 'card' === $source->type) { |
|
581 | 581 | $card = $source->card; |
582 | - } elseif ( isset( $source->object ) && 'card' === $source->object ) { |
|
582 | + } elseif (isset($source->object) && 'card' === $source->object) { |
|
583 | 583 | $card = $source; |
584 | 584 | } |
585 | 585 | |
586 | - if ( $source->id === $stripe_source_id ) { |
|
587 | - if ( $card ) { |
|
586 | + if ($source->id === $stripe_source_id) { |
|
587 | + if ($card) { |
|
588 | 588 | /* translators: 1) card brand 2) last 4 digits */ |
589 | - $payment_method_to_display = sprintf( __( 'Via %1$s card ending in %2$s', 'woocommerce-gateway-stripe' ), ( isset( $card->brand ) ? $card->brand : __( 'N/A', 'woocommerce-gateway-stripe' ) ), $card->last4 ); |
|
589 | + $payment_method_to_display = sprintf(__('Via %1$s card ending in %2$s', 'woocommerce-gateway-stripe'), (isset($card->brand) ? $card->brand : __('N/A', 'woocommerce-gateway-stripe')), $card->last4); |
|
590 | 590 | } |
591 | 591 | |
592 | 592 | break; |
@@ -603,7 +603,7 @@ discard block |
||
603 | 603 | */ |
604 | 604 | public function remove_order_pay_var() { |
605 | 605 | global $wp; |
606 | - if ( isset( $_GET['wc-stripe-confirmation'] ) ) { |
|
606 | + if (isset($_GET['wc-stripe-confirmation'])) { |
|
607 | 607 | $this->order_pay_var = $wp->query_vars['order-pay']; |
608 | 608 | $wp->query_vars['order-pay'] = null; |
609 | 609 | } |
@@ -614,7 +614,7 @@ discard block |
||
614 | 614 | */ |
615 | 615 | public function restore_order_pay_var() { |
616 | 616 | global $wp; |
617 | - if ( isset( $this->order_pay_var ) ) { |
|
617 | + if (isset($this->order_pay_var)) { |
|
618 | 618 | $wp->query_vars['order-pay'] = $this->order_pay_var; |
619 | 619 | } |
620 | 620 | } |
@@ -625,13 +625,13 @@ discard block |
||
625 | 625 | * @param WC_Order $renewal_order The renewal order. |
626 | 626 | * @return boolean |
627 | 627 | */ |
628 | - public function has_authentication_already_failed( $renewal_order ) { |
|
629 | - $existing_intent = $this->get_intent_from_order( $renewal_order ); |
|
628 | + public function has_authentication_already_failed($renewal_order) { |
|
629 | + $existing_intent = $this->get_intent_from_order($renewal_order); |
|
630 | 630 | |
631 | 631 | if ( |
632 | 632 | ! $existing_intent |
633 | 633 | || 'requires_payment_method' !== $existing_intent->status |
634 | - || empty( $existing_intent->last_payment_error ) |
|
634 | + || empty($existing_intent->last_payment_error) |
|
635 | 635 | || 'authentication_required' !== $existing_intent->last_payment_error->code |
636 | 636 | ) { |
637 | 637 | return false; |
@@ -645,12 +645,12 @@ discard block |
||
645 | 645 | * |
646 | 646 | * @param WC_Order $renewal_order The order that is being renewed. |
647 | 647 | */ |
648 | - do_action( 'wc_gateway_stripe_process_payment_authentication_required', $renewal_order ); |
|
648 | + do_action('wc_gateway_stripe_process_payment_authentication_required', $renewal_order); |
|
649 | 649 | |
650 | 650 | // Fail the payment attempt (order would be currently pending because of retry rules). |
651 | - $charge = end( $existing_intent->charges->data ); |
|
651 | + $charge = end($existing_intent->charges->data); |
|
652 | 652 | $charge_id = $charge->id; |
653 | - $renewal_order->update_status( 'failed', sprintf( __( 'Stripe charge awaiting authentication by user: %s.', 'woocommerce-gateway-stripe' ), $charge_id ) ); |
|
653 | + $renewal_order->update_status('failed', sprintf(__('Stripe charge awaiting authentication by user: %s.', 'woocommerce-gateway-stripe'), $charge_id)); |
|
654 | 654 | |
655 | 655 | return true; |
656 | 656 | } |
@@ -661,7 +661,7 @@ discard block |
||
661 | 661 | * @param string $url The URL that Subscriptions attempts a redirect to. |
662 | 662 | * @return void |
663 | 663 | */ |
664 | - public function redirect_after_early_renewal( $url ) { |
|
664 | + public function redirect_after_early_renewal($url) { |
|
665 | 665 | echo wp_json_encode( |
666 | 666 | array( |
667 | 667 | 'stripe_sca_required' => false, |
@@ -678,12 +678,12 @@ discard block |
||
678 | 678 | * @param WC_Order $order The renewal order. |
679 | 679 | * @param stdClass $intent The Payment Intent object. |
680 | 680 | */ |
681 | - protected function handle_intent_verification_success( $order, $intent ) { |
|
682 | - parent::handle_intent_verification_success( $order, $intent ); |
|
681 | + protected function handle_intent_verification_success($order, $intent) { |
|
682 | + parent::handle_intent_verification_success($order, $intent); |
|
683 | 683 | |
684 | - if ( isset( $_GET['early_renewal'] ) ) { // wpcs: csrf ok. |
|
685 | - wcs_update_dates_after_early_renewal( wcs_get_subscription( $order->get_meta( '_subscription_renewal' ) ), $order ); |
|
686 | - wc_add_notice( __( 'Your early renewal order was successful.', 'woocommerce-gateway-stripe' ), 'success' ); |
|
684 | + if (isset($_GET['early_renewal'])) { // wpcs: csrf ok. |
|
685 | + wcs_update_dates_after_early_renewal(wcs_get_subscription($order->get_meta('_subscription_renewal')), $order); |
|
686 | + wc_add_notice(__('Your early renewal order was successful.', 'woocommerce-gateway-stripe'), 'success'); |
|
687 | 687 | } |
688 | 688 | } |
689 | 689 | |
@@ -693,12 +693,12 @@ discard block |
||
693 | 693 | * @param WC_Order $order The renewal order. |
694 | 694 | * @param stdClass $intent The Payment Intent object (unused). |
695 | 695 | */ |
696 | - protected function handle_intent_verification_failure( $order, $intent ) { |
|
697 | - if ( isset( $_GET['early_renewal'] ) ) { |
|
698 | - $order->delete( true ); |
|
699 | - wc_add_notice( __( 'Payment authorization for the renewal order was unsuccessful, please try again.', 'woocommerce-gateway-stripe' ), 'error' ); |
|
700 | - $renewal_url = wcs_get_early_renewal_url( wcs_get_subscription( $order->get_meta( '_subscription_renewal' ) ) ); |
|
701 | - wp_redirect( $renewal_url ); exit; |
|
696 | + protected function handle_intent_verification_failure($order, $intent) { |
|
697 | + if (isset($_GET['early_renewal'])) { |
|
698 | + $order->delete(true); |
|
699 | + wc_add_notice(__('Payment authorization for the renewal order was unsuccessful, please try again.', 'woocommerce-gateway-stripe'), 'error'); |
|
700 | + $renewal_url = wcs_get_early_renewal_url(wcs_get_subscription($order->get_meta('_subscription_renewal'))); |
|
701 | + wp_redirect($renewal_url); exit; |
|
702 | 702 | } |
703 | 703 | } |
704 | 704 | } |
@@ -321,7 +321,7 @@ |
||
321 | 321 | |
322 | 322 | /** |
323 | 323 | * Don't transfer Stripe fee/ID meta to renewal orders. |
324 | - * @param int $resubscribe_order The order created for the customer to resubscribe to the old expired/cancelled subscription |
|
324 | + * @param integer $renewal_order |
|
325 | 325 | */ |
326 | 326 | public function delete_renewal_meta( $renewal_order ) { |
327 | 327 | WC_Stripe_Helper::delete_stripe_fee( $renewal_order ); |
@@ -21,6 +21,7 @@ |
||
21 | 21 | |
22 | 22 | /** |
23 | 23 | * Manage notes to show after Apple Pay domain verification. |
24 | + * @param boolean $verification_complete |
|
24 | 25 | */ |
25 | 26 | public static function notify_on_apple_pay_domain_verification( $verification_complete ) { |
26 | 27 | if ( ! class_exists( 'Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes' ) ) { |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
2 | +if ( ! defined('ABSPATH')) { |
|
3 | 3 | exit; |
4 | 4 | } |
5 | 5 | |
@@ -18,41 +18,41 @@ discard block |
||
18 | 18 | const POST_SETUP_SUCCESS_ACTION = 'wc_stripe_apple_pay_post_setup_success'; |
19 | 19 | |
20 | 20 | public function __construct() { |
21 | - add_action( self::POST_SETUP_SUCCESS_ACTION, array( self::class, 'create_marketing_note' ) ); |
|
21 | + add_action(self::POST_SETUP_SUCCESS_ACTION, array(self::class, 'create_marketing_note')); |
|
22 | 22 | } |
23 | 23 | |
24 | 24 | /** |
25 | 25 | * Manage notes to show after Apple Pay domain verification. |
26 | 26 | */ |
27 | - public static function notify_on_apple_pay_domain_verification( $verification_complete ) { |
|
28 | - if ( ! class_exists( 'Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes' ) ) { |
|
27 | + public static function notify_on_apple_pay_domain_verification($verification_complete) { |
|
28 | + if ( ! class_exists('Automattic\WooCommerce\Admin\Notes\WC_Admin_Notes')) { |
|
29 | 29 | return; |
30 | 30 | } |
31 | 31 | |
32 | - if ( ! class_exists( 'WC_Data_Store' ) ) { |
|
32 | + if ( ! class_exists('WC_Data_Store')) { |
|
33 | 33 | return; |
34 | 34 | } |
35 | 35 | |
36 | - if ( $verification_complete ) { |
|
37 | - if ( self::should_show_marketing_note() && ! wp_next_scheduled( self::POST_SETUP_SUCCESS_ACTION ) ) { |
|
38 | - wp_schedule_single_event( time() + DAY_IN_SECONDS, self::POST_SETUP_SUCCESS_ACTION ); |
|
36 | + if ($verification_complete) { |
|
37 | + if (self::should_show_marketing_note() && ! wp_next_scheduled(self::POST_SETUP_SUCCESS_ACTION)) { |
|
38 | + wp_schedule_single_event(time() + DAY_IN_SECONDS, self::POST_SETUP_SUCCESS_ACTION); |
|
39 | 39 | } |
40 | 40 | |
41 | 41 | // If the domain verification completed after failure note was created, make sure it's marked as actioned. |
42 | 42 | try { |
43 | - $data_store = WC_Data_Store::load( 'admin-note' ); |
|
44 | - $failure_note_ids = $data_store->get_notes_with_name( self::FAILURE_NOTE_NAME ); |
|
45 | - if ( ! empty( $failure_note_ids ) ) { |
|
46 | - $note_id = array_pop( $failure_note_ids ); |
|
47 | - $note = WC_Admin_Notes::get_note( $note_id ); |
|
48 | - if ( false !== $note && WC_Admin_Note::E_WC_ADMIN_NOTE_ACTIONED !== $note->get_status() ) { |
|
49 | - $note->set_status( WC_Admin_Note::E_WC_ADMIN_NOTE_ACTIONED ); |
|
43 | + $data_store = WC_Data_Store::load('admin-note'); |
|
44 | + $failure_note_ids = $data_store->get_notes_with_name(self::FAILURE_NOTE_NAME); |
|
45 | + if ( ! empty($failure_note_ids)) { |
|
46 | + $note_id = array_pop($failure_note_ids); |
|
47 | + $note = WC_Admin_Notes::get_note($note_id); |
|
48 | + if (false !== $note && WC_Admin_Note::E_WC_ADMIN_NOTE_ACTIONED !== $note->get_status()) { |
|
49 | + $note->set_status(WC_Admin_Note::E_WC_ADMIN_NOTE_ACTIONED); |
|
50 | 50 | $note->save(); |
51 | 51 | } |
52 | 52 | } |
53 | - } catch ( Exception $e ) {} // @codingStandardsIgnoreLine. |
|
53 | + } catch (Exception $e) {} // @codingStandardsIgnoreLine. |
|
54 | 54 | } else { |
55 | - if ( empty( $failure_note_ids ) ) { |
|
55 | + if (empty($failure_note_ids)) { |
|
56 | 56 | self::create_failure_note(); |
57 | 57 | } |
58 | 58 | } |
@@ -64,27 +64,27 @@ discard block |
||
64 | 64 | public static function should_show_marketing_note() { |
65 | 65 | // Display to US merchants only. |
66 | 66 | $base_location = wc_get_base_location(); |
67 | - if ( ! $base_location || 'US' !== $base_location['country'] ) { |
|
67 | + if ( ! $base_location || 'US' !== $base_location['country']) { |
|
68 | 68 | return false; |
69 | 69 | } |
70 | 70 | |
71 | 71 | // Make sure Apple Pay is enabled and setup is successful. |
72 | - $stripe_settings = get_option( 'woocommerce_stripe_settings', array() ); |
|
73 | - $stripe_enabled = isset( $stripe_settings['enabled'] ) && 'yes' === $stripe_settings['enabled']; |
|
74 | - $button_enabled = isset( $stripe_settings['payment_request'] ) && 'yes' === $stripe_settings['payment_request']; |
|
75 | - $verification_complete = isset( $stripe_settings['apple_pay_domain_set'] ) && 'yes' === $stripe_settings['apple_pay_domain_set']; |
|
76 | - if ( ! $stripe_enabled || ! $button_enabled || ! $verification_complete ) { |
|
72 | + $stripe_settings = get_option('woocommerce_stripe_settings', array()); |
|
73 | + $stripe_enabled = isset($stripe_settings['enabled']) && 'yes' === $stripe_settings['enabled']; |
|
74 | + $button_enabled = isset($stripe_settings['payment_request']) && 'yes' === $stripe_settings['payment_request']; |
|
75 | + $verification_complete = isset($stripe_settings['apple_pay_domain_set']) && 'yes' === $stripe_settings['apple_pay_domain_set']; |
|
76 | + if ( ! $stripe_enabled || ! $button_enabled || ! $verification_complete) { |
|
77 | 77 | return false; |
78 | 78 | } |
79 | 79 | |
80 | 80 | // Make sure note doesn't already exist. |
81 | 81 | try { |
82 | - $data_store = WC_Data_Store::load( 'admin-note' ); |
|
83 | - $success_note_ids = $data_store->get_notes_with_name( self::SUCCESS_NOTE_NAME ); |
|
84 | - if ( ! empty( $success_note_ids ) ) { |
|
82 | + $data_store = WC_Data_Store::load('admin-note'); |
|
83 | + $success_note_ids = $data_store->get_notes_with_name(self::SUCCESS_NOTE_NAME); |
|
84 | + if ( ! empty($success_note_ids)) { |
|
85 | 85 | return false; |
86 | 86 | } |
87 | - } catch ( Exception $e ) { |
|
87 | + } catch (Exception $e) { |
|
88 | 88 | return false; // If unable to check, assume it shouldn't show note. |
89 | 89 | } |
90 | 90 | |
@@ -96,19 +96,19 @@ discard block |
||
96 | 96 | */ |
97 | 97 | public static function create_marketing_note() { |
98 | 98 | // Make sure conditions for this note still hold. |
99 | - if ( ! self::should_show_marketing_note() ) { |
|
99 | + if ( ! self::should_show_marketing_note()) { |
|
100 | 100 | return; |
101 | 101 | } |
102 | 102 | |
103 | 103 | $note = new WC_Admin_Note(); |
104 | - $note->set_title( __( 'Boost sales this holiday season with Apple Pay!', 'woocommerce-gateway-stripe' ) ); |
|
105 | - $note->set_content( __( 'Now that you accept Apple Pay® with Stripe, you can increase conversion rates by letting your customers know that Apple Pay is available. Here’s a marketing guide to help you get started.', 'woocommerce-gateway-stripe' ) ); |
|
106 | - $note->set_type( WC_Admin_Note::E_WC_ADMIN_NOTE_MARKETING ); |
|
107 | - $note->set_name( self::SUCCESS_NOTE_NAME ); |
|
108 | - $note->set_source( 'woocommerce-gateway-stripe' ); |
|
104 | + $note->set_title(__('Boost sales this holiday season with Apple Pay!', 'woocommerce-gateway-stripe')); |
|
105 | + $note->set_content(__('Now that you accept Apple Pay® with Stripe, you can increase conversion rates by letting your customers know that Apple Pay is available. Here’s a marketing guide to help you get started.', 'woocommerce-gateway-stripe')); |
|
106 | + $note->set_type(WC_Admin_Note::E_WC_ADMIN_NOTE_MARKETING); |
|
107 | + $note->set_name(self::SUCCESS_NOTE_NAME); |
|
108 | + $note->set_source('woocommerce-gateway-stripe'); |
|
109 | 109 | $note->add_action( |
110 | 110 | 'marketing-guide', |
111 | - __( 'See marketing guide', 'woocommerce-gateway-stripe' ), |
|
111 | + __('See marketing guide', 'woocommerce-gateway-stripe'), |
|
112 | 112 | 'https://developer.apple.com/apple-pay/marketing/' |
113 | 113 | ); |
114 | 114 | $note->save(); |
@@ -119,14 +119,14 @@ discard block |
||
119 | 119 | */ |
120 | 120 | public static function create_failure_note() { |
121 | 121 | $note = new WC_Admin_Note(); |
122 | - $note->set_title( __( 'Apple Pay domain verification needed', 'woocommerce-gateway-stripe' ) ); |
|
123 | - $note->set_content( __( 'The WooCommerce Stripe Gateway extension attempted to perform domain verification on behalf of your store, but was unable to do so. This must be resolved before Apple Pay can be offered to your customers.', 'woocommerce-gateway-stripe' ) ); |
|
124 | - $note->set_type( WC_Admin_Note::E_WC_ADMIN_NOTE_INFORMATIONAL ); |
|
125 | - $note->set_name( self::FAILURE_NOTE_NAME ); |
|
126 | - $note->set_source( 'woocommerce-gateway-stripe' ); |
|
122 | + $note->set_title(__('Apple Pay domain verification needed', 'woocommerce-gateway-stripe')); |
|
123 | + $note->set_content(__('The WooCommerce Stripe Gateway extension attempted to perform domain verification on behalf of your store, but was unable to do so. This must be resolved before Apple Pay can be offered to your customers.', 'woocommerce-gateway-stripe')); |
|
124 | + $note->set_type(WC_Admin_Note::E_WC_ADMIN_NOTE_INFORMATIONAL); |
|
125 | + $note->set_name(self::FAILURE_NOTE_NAME); |
|
126 | + $note->set_source('woocommerce-gateway-stripe'); |
|
127 | 127 | $note->add_action( |
128 | 128 | 'learn-more', |
129 | - __( 'Learn more', 'woocommerce-gateway-stripe' ), |
|
129 | + __('Learn more', 'woocommerce-gateway-stripe'), |
|
130 | 130 | 'https://docs.woocommerce.com/document/stripe/#apple-pay' |
131 | 131 | ); |
132 | 132 | $note->save(); |
@@ -17,19 +17,19 @@ discard block |
||
17 | 17 | * |
18 | 18 | * @param int $order_id ID of the order to delete. |
19 | 19 | */ |
20 | - public static function delete_order( $order_id ) { |
|
20 | + public static function delete_order($order_id) { |
|
21 | 21 | |
22 | - $order = wc_get_order( $order_id ); |
|
22 | + $order = wc_get_order($order_id); |
|
23 | 23 | |
24 | 24 | // Delete all products in the order. |
25 | - foreach ( $order->get_items() as $item ) { |
|
26 | - WC_Helper_Product::delete_product( $item['product_id'] ); |
|
25 | + foreach ($order->get_items() as $item) { |
|
26 | + WC_Helper_Product::delete_product($item['product_id']); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | WC_Helper_Shipping::delete_simple_flat_rate(); |
30 | 30 | |
31 | 31 | // Delete the order post. |
32 | - $order->delete( true ); |
|
32 | + $order->delete(true); |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | /** |
@@ -45,9 +45,9 @@ discard block |
||
45 | 45 | * |
46 | 46 | * @return WC_Order |
47 | 47 | */ |
48 | - public static function create_order( $customer_id = 1, $total = 50, $product = null ) { |
|
48 | + public static function create_order($customer_id = 1, $total = 50, $product = null) { |
|
49 | 49 | |
50 | - if ( ! is_a( $product, 'WC_Product' ) ) { |
|
50 | + if ( ! is_a($product, 'WC_Product')) { |
|
51 | 51 | $product = WC_Helper_Product::create_simple_product(); |
52 | 52 | } |
53 | 53 | |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | ]; |
62 | 62 | |
63 | 63 | $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; // Required, else wc_create_order throws an exception. |
64 | - $order = wc_create_order( $order_data ); |
|
64 | + $order = wc_create_order($order_data); |
|
65 | 65 | |
66 | 66 | // Add order products. |
67 | 67 | $item = new WC_Order_Item_Product(); |
@@ -69,54 +69,54 @@ discard block |
||
69 | 69 | [ |
70 | 70 | 'product' => $product, |
71 | 71 | 'quantity' => 4, |
72 | - 'subtotal' => wc_get_price_excluding_tax( $product, [ 'qty' => 4 ] ), |
|
73 | - 'total' => wc_get_price_excluding_tax( $product, [ 'qty' => 4 ] ), |
|
72 | + 'subtotal' => wc_get_price_excluding_tax($product, ['qty' => 4]), |
|
73 | + 'total' => wc_get_price_excluding_tax($product, ['qty' => 4]), |
|
74 | 74 | ] |
75 | 75 | ); |
76 | 76 | $item->save(); |
77 | - $order->add_item( $item ); |
|
77 | + $order->add_item($item); |
|
78 | 78 | |
79 | 79 | // Set billing address. |
80 | - $order->set_billing_first_name( 'Jeroen' ); |
|
81 | - $order->set_billing_last_name( 'Sormani' ); |
|
82 | - $order->set_billing_company( 'WooCompany' ); |
|
83 | - $order->set_billing_address_1( 'WooAddress' ); |
|
84 | - $order->set_billing_address_2( '' ); |
|
85 | - $order->set_billing_city( 'WooCity' ); |
|
86 | - $order->set_billing_state( 'NY' ); |
|
87 | - $order->set_billing_postcode( '12345' ); |
|
88 | - $order->set_billing_country( 'US' ); |
|
89 | - $order->set_billing_email( '[email protected]' ); |
|
90 | - $order->set_billing_phone( '555-32123' ); |
|
80 | + $order->set_billing_first_name('Jeroen'); |
|
81 | + $order->set_billing_last_name('Sormani'); |
|
82 | + $order->set_billing_company('WooCompany'); |
|
83 | + $order->set_billing_address_1('WooAddress'); |
|
84 | + $order->set_billing_address_2(''); |
|
85 | + $order->set_billing_city('WooCity'); |
|
86 | + $order->set_billing_state('NY'); |
|
87 | + $order->set_billing_postcode('12345'); |
|
88 | + $order->set_billing_country('US'); |
|
89 | + $order->set_billing_email('[email protected]'); |
|
90 | + $order->set_billing_phone('555-32123'); |
|
91 | 91 | |
92 | 92 | // Add shipping costs. |
93 | - $shipping_taxes = WC_Tax::calc_shipping_tax( '10', WC_Tax::get_shipping_tax_rates() ); |
|
94 | - $rate = new WC_Shipping_Rate( 'flat_rate_shipping', 'Flat rate shipping', '10', $shipping_taxes, 'flat_rate' ); |
|
93 | + $shipping_taxes = WC_Tax::calc_shipping_tax('10', WC_Tax::get_shipping_tax_rates()); |
|
94 | + $rate = new WC_Shipping_Rate('flat_rate_shipping', 'Flat rate shipping', '10', $shipping_taxes, 'flat_rate'); |
|
95 | 95 | $item = new WC_Order_Item_Shipping(); |
96 | 96 | $item->set_props( |
97 | 97 | [ |
98 | 98 | 'method_title' => $rate->label, |
99 | 99 | 'method_id' => $rate->id, |
100 | - 'total' => wc_format_decimal( $rate->cost ), |
|
100 | + 'total' => wc_format_decimal($rate->cost), |
|
101 | 101 | 'taxes' => $rate->taxes, |
102 | 102 | ] |
103 | 103 | ); |
104 | - foreach ( $rate->get_meta_data() as $key => $value ) { |
|
105 | - $item->add_meta_data( $key, $value, true ); |
|
104 | + foreach ($rate->get_meta_data() as $key => $value) { |
|
105 | + $item->add_meta_data($key, $value, true); |
|
106 | 106 | } |
107 | - $order->add_item( $item ); |
|
107 | + $order->add_item($item); |
|
108 | 108 | |
109 | 109 | // Set payment gateway. |
110 | 110 | $payment_gateways = WC()->payment_gateways->payment_gateways(); |
111 | - $order->set_payment_method( $payment_gateways['bacs'] ); |
|
111 | + $order->set_payment_method($payment_gateways['bacs']); |
|
112 | 112 | |
113 | 113 | // Set totals. |
114 | - $order->set_shipping_total( 10 ); |
|
115 | - $order->set_discount_total( 0 ); |
|
116 | - $order->set_discount_tax( 0 ); |
|
117 | - $order->set_cart_tax( 0 ); |
|
118 | - $order->set_shipping_tax( 0 ); |
|
119 | - $order->set_total( $total ); |
|
114 | + $order->set_shipping_total(10); |
|
115 | + $order->set_discount_total(0); |
|
116 | + $order->set_discount_tax(0); |
|
117 | + $order->set_cart_tax(0); |
|
118 | + $order->set_shipping_tax(0); |
|
119 | + $order->set_total($total); |
|
120 | 120 | $order->save(); |
121 | 121 | |
122 | 122 | return $order; |
@@ -22,7 +22,7 @@ |
||
22 | 22 | return self::$cart_contains_subscription_result; |
23 | 23 | } |
24 | 24 | |
25 | - public static function set_cart_contains_subscription( $result ) { |
|
25 | + public static function set_cart_contains_subscription($result) { |
|
26 | 26 | self::$cart_contains_subscription_result = $result; |
27 | 27 | } |
28 | 28 | } |
@@ -18,11 +18,11 @@ |
||
18 | 18 | */ |
19 | 19 | public $related_orders; |
20 | 20 | |
21 | - public function get_related_orders( $type ) { |
|
21 | + public function get_related_orders($type) { |
|
22 | 22 | return $this->related_orders; |
23 | 23 | } |
24 | 24 | |
25 | - public function set_related_orders( $array ) { |
|
25 | + public function set_related_orders($array) { |
|
26 | 26 | $this->related_orders = $array; |
27 | 27 | } |
28 | 28 | } |
@@ -27,9 +27,9 @@ discard block |
||
27 | 27 | 'cost' => '10', |
28 | 28 | ]; |
29 | 29 | |
30 | - update_option( 'woocommerce_flat_rate_settings', $flat_rate_settings ); |
|
31 | - update_option( 'woocommerce_flat_rate', [] ); |
|
32 | - WC_Cache_Helper::get_transient_version( 'shipping', true ); |
|
30 | + update_option('woocommerce_flat_rate_settings', $flat_rate_settings); |
|
31 | + update_option('woocommerce_flat_rate', []); |
|
32 | + WC_Cache_Helper::get_transient_version('shipping', true); |
|
33 | 33 | WC()->shipping()->load_shipping_methods(); |
34 | 34 | } |
35 | 35 | |
@@ -39,9 +39,9 @@ discard block |
||
39 | 39 | * @since 2.3 |
40 | 40 | */ |
41 | 41 | public static function delete_simple_flat_rate() { |
42 | - delete_option( 'woocommerce_flat_rate_settings' ); |
|
43 | - delete_option( 'woocommerce_flat_rate' ); |
|
44 | - WC_Cache_Helper::get_transient_version( 'shipping', true ); |
|
42 | + delete_option('woocommerce_flat_rate_settings'); |
|
43 | + delete_option('woocommerce_flat_rate'); |
|
44 | + WC_Cache_Helper::get_transient_version('shipping', true); |
|
45 | 45 | WC()->shipping()->unregister_shipping_methods(); |
46 | 46 | } |
47 | 47 | } |
@@ -19,17 +19,17 @@ |
||
19 | 19 | * @param int $user_id ID of the token's user, defaults to get_current_user_id(). |
20 | 20 | * @param string $gateway Token's Gateway ID, default to WC_Payment_Gateway_WCPay::GATEWAY_ID |
21 | 21 | */ |
22 | - public static function create_token( $payment_method, $user_id = null, $gateway = WC_Payment_Gateway_WCPay::GATEWAY_ID ) { |
|
22 | + public static function create_token($payment_method, $user_id = null, $gateway = WC_Payment_Gateway_WCPay::GATEWAY_ID) { |
|
23 | 23 | $token = new WC_Payment_Token_CC(); |
24 | - $token->set_token( $payment_method ); |
|
25 | - $token->set_gateway_id( $gateway ); |
|
26 | - $token->set_user_id( isset ( $user_id ) ? $user_id : get_current_user_id() ); |
|
27 | - $token->set_card_type( 'visa' ); |
|
28 | - $token->set_last4( '4242' ); |
|
29 | - $token->set_expiry_month( 6 ); |
|
30 | - $token->set_expiry_year( intval( gmdate( 'Y' ) ) + 1 ); |
|
24 | + $token->set_token($payment_method); |
|
25 | + $token->set_gateway_id($gateway); |
|
26 | + $token->set_user_id(isset ($user_id) ? $user_id : get_current_user_id()); |
|
27 | + $token->set_card_type('visa'); |
|
28 | + $token->set_last4('4242'); |
|
29 | + $token->set_expiry_month(6); |
|
30 | + $token->set_expiry_year(intval(gmdate('Y')) + 1); |
|
31 | 31 | $token->save(); |
32 | 32 | |
33 | - return WC_Payment_Tokens::get( $token->get_id() ); |
|
33 | + return WC_Payment_Tokens::get($token->get_id()); |
|
34 | 34 | } |
35 | 35 | } |
@@ -6,32 +6,32 @@ discard block |
||
6 | 6 | */ |
7 | 7 | |
8 | 8 | // Set up subscriptions mocks. |
9 | -function wcs_order_contains_subscription( $order ) { |
|
10 | - if ( ! WC_Subscriptions::$wcs_order_contains_subscription ) { |
|
9 | +function wcs_order_contains_subscription($order) { |
|
10 | + if ( ! WC_Subscriptions::$wcs_order_contains_subscription) { |
|
11 | 11 | return; |
12 | 12 | } |
13 | - return call_user_func( WC_Subscriptions::$wcs_order_contains_subscription, $order ); |
|
13 | + return call_user_func(WC_Subscriptions::$wcs_order_contains_subscription, $order); |
|
14 | 14 | } |
15 | 15 | |
16 | -function wcs_get_subscriptions_for_order( $order ) { |
|
17 | - if ( ! WC_Subscriptions::$wcs_get_subscriptions_for_order ) { |
|
16 | +function wcs_get_subscriptions_for_order($order) { |
|
17 | + if ( ! WC_Subscriptions::$wcs_get_subscriptions_for_order) { |
|
18 | 18 | return; |
19 | 19 | } |
20 | - return call_user_func( WC_Subscriptions::$wcs_get_subscriptions_for_order, $order ); |
|
20 | + return call_user_func(WC_Subscriptions::$wcs_get_subscriptions_for_order, $order); |
|
21 | 21 | } |
22 | 22 | |
23 | -function wcs_is_subscription( $order ) { |
|
24 | - if ( ! WC_Subscriptions::$wcs_is_subscription ) { |
|
23 | +function wcs_is_subscription($order) { |
|
24 | + if ( ! WC_Subscriptions::$wcs_is_subscription) { |
|
25 | 25 | return; |
26 | 26 | } |
27 | - return call_user_func( WC_Subscriptions::$wcs_is_subscription, $order ); |
|
27 | + return call_user_func(WC_Subscriptions::$wcs_is_subscription, $order); |
|
28 | 28 | } |
29 | 29 | |
30 | -function wcs_get_subscription( $subscription ) { |
|
31 | - if ( ! WC_Subscriptions::$wcs_get_subscription ) { |
|
30 | +function wcs_get_subscription($subscription) { |
|
31 | + if ( ! WC_Subscriptions::$wcs_get_subscription) { |
|
32 | 32 | return; |
33 | 33 | } |
34 | - return call_user_func( WC_Subscriptions::$wcs_get_subscription, $subscription ); |
|
34 | + return call_user_func(WC_Subscriptions::$wcs_get_subscription, $subscription); |
|
35 | 35 | } |
36 | 36 | |
37 | 37 | /** |
@@ -75,19 +75,19 @@ discard block |
||
75 | 75 | */ |
76 | 76 | public static $wcs_get_subscription = null; |
77 | 77 | |
78 | - public static function set_wcs_order_contains_subscription( $function ) { |
|
78 | + public static function set_wcs_order_contains_subscription($function) { |
|
79 | 79 | self::$wcs_order_contains_subscription = $function; |
80 | 80 | } |
81 | 81 | |
82 | - public static function set_wcs_get_subscriptions_for_order( $function ) { |
|
82 | + public static function set_wcs_get_subscriptions_for_order($function) { |
|
83 | 83 | self::$wcs_get_subscriptions_for_order = $function; |
84 | 84 | } |
85 | 85 | |
86 | - public static function set_wcs_is_subscription( $function ) { |
|
86 | + public static function set_wcs_is_subscription($function) { |
|
87 | 87 | self::$wcs_is_subscription = $function; |
88 | 88 | } |
89 | 89 | |
90 | - public static function set_wcs_get_subscription( $function ) { |
|
90 | + public static function set_wcs_get_subscription($function) { |
|
91 | 91 | self::$wcs_get_subscription = $function; |
92 | 92 | } |
93 | 93 | } |