Заказы, оплаченные через полосы SOFORT и Stripe SEPA, устанавливаются «на удержании» после завершения оформления заказа. После нескольких дней, когда полоса будет проверять платеж, будет установлено значение «в процессе». Я хотел бы автоматически перенести эти платежи в режиме ожидания с полосы на «в процессе», даже если полоса уже была подтверждена. Я нашел следующий код, но это только подписка и SEPA. Есть идеи, как это изменить?
add_action( 'wc_gateway_stripe_process_response', 'action_wc_gateway_stripe_regard_sepa_pending_as_complete', 0, 2);
function action_wc_gateway_stripe_regard_sepa_pending_as_complete ($response, $order) {
// check if Subscriptions are enabled
if ( class_exists( 'WC_Subscriptions_Order' ) ) {
// check if payment (stripe response) is in pending state
// check if payment (stripe response) is of 'sepa_debit' type
// check if order contains a subscription
if( $response->status === 'pending' && $response->source->type === 'sepa_debit' && function_exists( 'wcs_order_contains_subscription' ) && ( wcs_order_contains_subscription( $order->id ) || wcs_is_subscription( $order->id ) || wcs_order_contains_renewal( $order->id ) ) ) {
$order->payment_complete($response->id);
/* translators: response id */
$order->add_order_note( sprintf( __( 'Pending status automatically set as payment complete by custom hook (Charge ID: %s)', 'woocommerce-gateway-stripe' ), $response->id ) );
if ( is_callable( array( $order, 'save' ) ) ) {
$order->save();
}
}
}
}