wc_nav_menu_items()WC 1.0

Hide or adjust menu items conditionally.

No Hooks.

Returns

Array.

Usage

wc_nav_menu_items( $items );
$items(array) (required)
Navigation items.

wc_nav_menu_items() code WC 9.8.5

function wc_nav_menu_items( $items ) {
	$logout_endpoint = get_option( 'woocommerce_logout_endpoint', 'customer-logout' );

	if ( ! empty( $logout_endpoint ) && ! empty( $items ) && is_array( $items ) ) {
		foreach ( $items as $key => $item ) {
			if ( empty( $item->url ) ) {
				continue;
			}

			$path           = wp_parse_url( $item->url, PHP_URL_PATH ) ?? '';
			$query          = wp_parse_url( $item->url, PHP_URL_QUERY ) ?? '';
			$is_logout_link = strstr( $path, $logout_endpoint ) || strstr( $query, $logout_endpoint );

			if ( ! $is_logout_link ) {
				continue;
			}

			if ( is_user_logged_in() ) {
				$items[ $key ]->url = wp_nonce_url( $item->url, 'customer-logout' );
			} else {
				unset( $items[ $key ] );
			}
		}
	}

	return $items;
}