WC_Checkout::process_order_without_payment()protectedWC 3.0.0

Process an order that doesn't require payment.

Метод класса: WC_Checkout{}

Возвращает

null. Ничего (null).

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->process_order_without_payment( $order_id );
$order_id(int) (обязательный)
Order ID.

Список изменений

С версии 3.0.0 Введена.

Код WC_Checkout::process_order_without_payment() WC 8.7.0

protected function process_order_without_payment( $order_id ) {
	$order = wc_get_order( $order_id );
	$order->payment_complete();
	wc_empty_cart();

	if ( ! wp_doing_ajax() ) {
		wp_safe_redirect(
			apply_filters( 'woocommerce_checkout_no_payment_needed_redirect', $order->get_checkout_order_received_url(), $order )
		);
		exit;
	}

	wp_send_json(
		array(
			'result'   => 'success',
			'redirect' => apply_filters( 'woocommerce_checkout_no_payment_needed_redirect', $order->get_checkout_order_received_url(), $order ),
		)
	);
}