Automattic\WooCommerce\Internal\Admin\Orders

PostsRedirectionController::maybe_redirect_to_orders_page()privateWC 1.0

If needed, performs a redirection to the main orders page.

{} It's a method of the class: PostsRedirectionController{}

No Hooks.

Return

null. Nothing.

Usage

// private - for code of main (parent) class only
$result = $this->maybe_redirect_to_orders_page(): void;

Code of PostsRedirectionController::maybe_redirect_to_orders_page() WC 7.1.0

private function maybe_redirect_to_orders_page(): void {
	if ( ! isset( $_GET['post_type'] ) || 'shop_order' !== $_GET['post_type'] ) {
		return;
	}

	// Respect query args, except for 'post_type'.
	$query_args = wp_unslash( $_GET );
	$action     = $query_args['action'] ?? '';
	$posts      = $query_args['post'] ?? array();
	unset( $query_args['post_type'], $query_args['post'], $query_args['_wpnonce'], $query_args['_wp_http_referer'], $query_args['action'] );

	// Remap 'post_status' arg.
	if ( isset( $query_args['post_status'] ) ) {
		$query_args['status'] = $query_args['post_status'];
		unset( $query_args['post_status'] );
	}

	$new_url = $this->page_controller->get_orders_url();
	$new_url = add_query_arg( $query_args, $new_url );

	// Handle bulk actions.
	if ( $action && in_array( $action, array( 'trash', 'untrash', 'delete', 'mark_processing', 'mark_on-hold', 'mark_completed', 'mark_cancelled' ), true ) ) {
		check_admin_referer( 'bulk-posts' );

		$new_url = add_query_arg(
			array(
				'action'           => $action,
				'order'            => $posts,
				'_wp_http_referer' => $this->page_controller->get_orders_url(),
				'_wpnonce'         => wp_create_nonce( 'bulk-orders' ),
			),
			$new_url
		);
	}

	wp_safe_redirect( $new_url, 301 );
	exit;
}