Automattic\WooCommerce\Admin\Features\Navigation

Menu::add_item_and_taxonomy()publicWC 1.0

Add an item or taxonomy.

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

Хуков нет.

Возвращает

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

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

$Menu = new Menu();
$Menu->add_item_and_taxonomy( $menu_item );
$menu_item(массив) (обязательный)
Menu item.

Код Menu::add_item_and_taxonomy() WC 8.7.0

public function add_item_and_taxonomy( $menu_item ) {
	if ( in_array( $menu_item[2], CoreMenu::get_excluded_items(), true ) ) {
		return;
	}

	$menu_item[2] = htmlspecialchars_decode( $menu_item[2] );

	// Don't add already added items.
	$callbacks = self::get_callbacks();
	if ( array_key_exists( $menu_item[2], $callbacks ) ) {
		return;
	}

	// Don't add these Product submenus because they are added elsewhere.
	if ( in_array( $menu_item[2], array( 'product_importer', 'product_exporter', 'product_attributes' ), true ) ) {
		return;
	}

	self::add_plugin_item(
		array(
			'title'      => $menu_item[0],
			'capability' => $menu_item[1],
			'id'         => sanitize_title( $menu_item[0] ),
			'url'        => $menu_item[2],
		)
	);

	// Determine if migrated items are a taxonomy or post_type. If they are, register them.
	$parsed_url   = wp_parse_url( $menu_item[2] );
	$query_string = isset( $parsed_url['query'] ) ? $parsed_url['query'] : false;

	if ( $query_string ) {
		$query = array();
		parse_str( $query_string, $query );

		if ( isset( $query['taxonomy'] ) ) {
			Screen::register_taxonomy( $query['taxonomy'] );
		} elseif ( isset( $query['post_type'] ) ) {
			Screen::register_post_type( $query['post_type'] );
		}
	}
}