WC_Checkout::process_order_payment() protected WC 3.0.0
Process an order that does require payment.
{} Это метод класса: WC_Checkout{}
Хуки из метода
Возвращает
Null. Ничего.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->process_order_payment( $order_id, $payment_method );
- $order_id(число) (обязательный)
- Order ID.
- $payment_method(строка) (обязательный)
- Payment method.
Список изменений
С версии 3.0.0 | Введена. |
Код WC_Checkout::process_order_payment() WC Checkout::process order payment WC 4.9.1
protected function process_order_payment( $order_id, $payment_method ) {
$available_gateways = WC()->payment_gateways->get_available_payment_gateways();
if ( ! isset( $available_gateways[ $payment_method ] ) ) {
return;
}
// Store Order ID in session so it can be re-used after payment failure.
WC()->session->set( 'order_awaiting_payment', $order_id );
// Process Payment.
$result = $available_gateways[ $payment_method ]->process_payment( $order_id );
// Redirect to success/confirmation/payment page.
if ( isset( $result['result'] ) && 'success' === $result['result'] ) {
$result = apply_filters( 'woocommerce_payment_successful_result', $result, $order_id );
if ( ! is_ajax() ) {
wp_redirect( $result['redirect'] );
exit;
}
wp_send_json( $result );
}
}