| @@ 269-302 (lines=34) @@ | ||
| 266 | * @param mixed $renewal_order |
|
| 267 | * @param bool initial_payment |
|
| 268 | */ |
|
| 269 | public function retry_subscription_payment( $amount = 0.0, $renewal_order ) { |
|
| 270 | if ( $amount * 100 < WC_Stripe_Helper::get_minimum_amount() ) { |
|
| 271 | /* translators: minimum amount */ |
|
| 272 | return new WP_Error( 'stripe_error', 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 ) ) ); |
|
| 273 | } |
|
| 274 | ||
| 275 | $order_id = WC_Stripe_Helper::is_pre_30() ? $renewal_order->id : $renewal_order->get_id(); |
|
| 276 | ||
| 277 | // Get source from order |
|
| 278 | $prepared_source = $this->prepare_order_source( $renewal_order ); |
|
| 279 | ||
| 280 | if ( ! $prepared_source->customer ) { |
|
| 281 | return new WP_Error( 'stripe_error', __( 'Customer not found', 'woocommerce-gateway-stripe' ) ); |
|
| 282 | } |
|
| 283 | ||
| 284 | // Passing empty source with charge customer default. |
|
| 285 | $prepared_source->source = ''; |
|
| 286 | ||
| 287 | WC_Stripe_Logger::log( "Info: Begin processing subscription payment for order {$order_id} for the amount of {$amount}" ); |
|
| 288 | ||
| 289 | // Make the request |
|
| 290 | $request = $this->generate_payment_request( $renewal_order, $prepared_source ); |
|
| 291 | $request['capture'] = 'true'; |
|
| 292 | $request['amount'] = WC_Stripe_Helper::get_stripe_amount( $amount, $request['currency'] ); |
|
| 293 | $response = WC_Stripe_API::request( $request ); |
|
| 294 | ||
| 295 | if ( ! empty( $response->error ) || is_wp_error( $response ) ) { |
|
| 296 | /* translators: error message */ |
|
| 297 | $renewal_order->update_status( 'failed', sprintf( __( 'Stripe Transaction Failed (%s)', 'woocommerce-gateway-stripe' ), $response->error->message ) ); |
|
| 298 | } |
|
| 299 | ||
| 300 | $this->process_response( $response, $renewal_order ); |
|
| 301 | } |
|
| 302 | ||
| 303 | /** |
|
| 304 | * Don't transfer Stripe customer/token meta to resubscribe orders. |
|
| 305 | * @param int $resubscribe_order The order created for the customer to resubscribe to the old expired/cancelled subscription |
|
| @@ 181-214 (lines=34) @@ | ||
| 178 | * @param mixed $renewal_order |
|
| 179 | * @param bool initial_payment |
|
| 180 | */ |
|
| 181 | public function retry_subscription_payment( $amount = 0.0, $renewal_order ) { |
|
| 182 | if ( $amount * 100 < WC_Stripe_Helper::get_minimum_amount() ) { |
|
| 183 | /* translators: minimum amount */ |
|
| 184 | return new WP_Error( 'stripe_error', 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 ) ) ); |
|
| 185 | } |
|
| 186 | ||
| 187 | $order_id = WC_Stripe_Helper::is_pre_30() ? $renewal_order->id : $renewal_order->get_id(); |
|
| 188 | ||
| 189 | // Get source from order |
|
| 190 | $prepared_source = $this->prepare_order_source( $renewal_order ); |
|
| 191 | ||
| 192 | // Or fail :( |
|
| 193 | if ( ! $prepared_source->customer ) { |
|
| 194 | return new WP_Error( 'stripe_error', __( 'Customer not found', 'woocommerce-gateway-stripe' ) ); |
|
| 195 | } |
|
| 196 | ||
| 197 | // Passing empty source with charge customer default. |
|
| 198 | $prepared_source->source = ''; |
|
| 199 | ||
| 200 | WC_Stripe_Logger::log( "Info: Begin processing subscription payment for order {$order_id} for the amount of {$amount}" ); |
|
| 201 | ||
| 202 | // Make the request |
|
| 203 | $request = $this->generate_payment_request( $renewal_order, $prepared_source ); |
|
| 204 | $request['capture'] = 'true'; |
|
| 205 | $request['amount'] = WC_Stripe_Helper::get_stripe_amount( $amount, $request['currency'] ); |
|
| 206 | $response = WC_Stripe_API::request( $request ); |
|
| 207 | ||
| 208 | if ( ! empty( $response->error ) || is_wp_error( $response ) ) { |
|
| 209 | /* translators: error message */ |
|
| 210 | $renewal_order->update_status( 'failed', sprintf( __( 'Stripe Transaction Failed (%s)', 'woocommerce-gateway-stripe' ), $response->error->message ) ); |
|
| 211 | } |
|
| 212 | ||
| 213 | $this->process_response( $response, $renewal_order ); |
|
| 214 | } |
|
| 215 | ||
| 216 | /** |
|
| 217 | * Don't transfer Stripe customer/token meta to resubscribe orders. |
|