WP_Privacy_Requests_Table::get_views()protectedWP 4.9.6

Gets an associative array ( id => link ) with the list of views available on this table.

Method of the class: WP_Privacy_Requests_Table{}

No Hooks.

Return

String[]. An array of HTML links keyed by their view.

Usage

// protected - for code of main (parent) or child class
$result = $this->get_views();

Changelog

Since 4.9.6 Introduced.

WP_Privacy_Requests_Table::get_views() code WP 6.5.2

protected function get_views() {
	$current_status = isset( $_REQUEST['filter-status'] ) ? sanitize_text_field( $_REQUEST['filter-status'] ) : '';
	$statuses       = _wp_privacy_statuses();
	$views          = array();
	$counts         = $this->get_request_counts();
	$total_requests = absint( array_sum( (array) $counts ) );

	// Normalized admin URL.
	$admin_url = $this->get_admin_url();

	$status_label = sprintf(
		/* translators: %s: Number of requests. */
		_nx(
			'All <span class="count">(%s)</span>',
			'All <span class="count">(%s)</span>',
			$total_requests,
			'requests'
		),
		number_format_i18n( $total_requests )
	);

	$views['all'] = array(
		'url'     => esc_url( $admin_url ),
		'label'   => $status_label,
		'current' => empty( $current_status ),
	);

	foreach ( $statuses as $status => $label ) {
		$post_status = get_post_status_object( $status );
		if ( ! $post_status ) {
			continue;
		}

		$total_status_requests = absint( $counts->{$status} );

		if ( ! $total_status_requests ) {
			continue;
		}

		$status_label = sprintf(
			translate_nooped_plural( $post_status->label_count, $total_status_requests ),
			number_format_i18n( $total_status_requests )
		);

		$status_link = add_query_arg( 'filter-status', $status, $admin_url );

		$views[ $status ] = array(
			'url'     => esc_url( $status_link ),
			'label'   => $status_label,
			'current' => $status === $current_status,
		);
	}

	return $this->get_views_links( $views );
}