Automattic\WooCommerce\Admin

PageController::determine_current_page()publicWC 1.0

Determine the current page ID, if it was registered with this controller.

Method of the class: PageController{}

No Hooks.

Return

null. Nothing (null).

Usage

$PageController = new PageController();
$PageController->determine_current_page();

PageController::determine_current_page() code WC 8.7.0

public function determine_current_page() {
	$current_url       = '';
	$current_screen_id = $this->get_current_screen_id();

	if ( isset( $_SERVER['REQUEST_URI'] ) ) {
		$current_url = esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) );
	}

	$current_query = wp_parse_url( $current_url, PHP_URL_QUERY );
	parse_str( (string) $current_query, $current_pieces );
	$current_path  = empty( $current_pieces['page'] ) ? '' : $current_pieces['page'];
	$current_path .= empty( $current_pieces['path'] ) ? '' : '&path=' . $current_pieces['path'];

	foreach ( $this->pages as $page ) {
		if ( isset( $page['js_page'] ) && $page['js_page'] ) {
			// Check registered admin pages.
			if (
				$page['path'] === $current_path
			) {
				$this->current_page = $page;
				return;
			}
		} else {
			// Check connected admin pages.
			if (
				isset( $page['screen_id'] ) &&
				$page['screen_id'] === $current_screen_id
			) {
				$this->current_page = $page;
				return;
			}
		}
	}
	$this->current_page = false;
}