Automattic\WooCommerce\Internal\OrderWithdrawal

OrderWithdrawalFormProcessor::process_current_request │ public │ WC 11.1.0

Process the current order withdrawal request.

Method of the class: OrderWithdrawalFormProcessor{}

No Hooks.

Returns

null. Nothing (null).

Usage

$OrderWithdrawalFormProcessor = new OrderWithdrawalFormProcessor();
$OrderWithdrawalFormProcessor->process_current_request(): OrderWithdrawalFormState;

Changelog

Since 11.1.0 Introduced.

OrderWithdrawalFormProcessor::process_current_request() code WC 11.1.2

public function process_current_request(): OrderWithdrawalFormState {
	$data   = $this->get_default_form_data();
	$errors = array();
	$screen = 'form';

	if ( ! $this->is_post_request() ) {
		return new OrderWithdrawalFormState( $screen, $data, $errors );
	}

	if ( ! $this->has_valid_nonce() ) {
		wc_add_notice( __( 'We could not verify your request. Please try again.', 'woocommerce' ), 'error' );
		return new OrderWithdrawalFormState( $screen, $data, $errors );
	}

	$data   = $this->get_posted_form_data();
	$action = $this->get_posted_action();

	if ( self::ACTION_EDIT === $action ) {
		return new OrderWithdrawalFormState( $screen, $data, $errors );
	}

	$errors = $this->validate_form_data( $data );

	if ( ! empty( $errors ) ) {
		$this->add_validation_notices( $errors );
		return new OrderWithdrawalFormState( $screen, $data, $errors );
	}

	if ( self::ACTION_CONFIRM === $action ) {
		if ( ! $this->submit_order_withdrawal( $data ) ) {
			return new OrderWithdrawalFormState( 'review', $data, $errors );
		}

		$screen = 'confirmation';
	} else {
		$screen = 'review';
	}

	return new OrderWithdrawalFormState( $screen, $data, $errors );
}