HEX
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: u106391720 (10342218)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /homepages/34/d890102484/htdocs/wp-content/plugins/toolbar-extras/includes/items-edit-nav-menus.php
<?php

// includes/items-edit-nav-menus

/**
 * Prevent direct access to this file.
 *
 * @since 1.0.0
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit( 'Sorry, you are not allowed to access this file directly.' );
}


add_action( 'admin_bar_menu', 'ddw_tbex_list_edit_nav_menus', 500 );
/**
 * Add edit Nav Menu items for all existing Nav Menus.
 *
 * @since 1.0.0
 * @since 1.4.5 Minor tweaks.
 *
 * @uses ddw_tbex_get_menu_id_from_menu_location()
 * @uses wp_get_nav_menus()
 *
 * @param object $admin_bar Object of Toolbar nodes.
 */
function ddw_tbex_list_edit_nav_menus( $admin_bar ) {

	/** Add sub group for site "Menus" item */
	$admin_bar->add_group(
		array(
			'parent' => 'wpmenus',
			'id'     => 'group-list-menus',
		)
	);

	$edit_menu_id_super_admin = ddw_tbex_get_menu_id_from_menu_location( 'tbex_menu' );

	$nav_menus = wp_get_nav_menus();

	foreach ( $nav_menus as $nav_menu ) {

		$nav_menu_id   = absint( $nav_menu->term_id );
		$nav_menu_name = esc_html( $nav_menu->name );

		/** Check for menu + cap */
		if ( is_super_admin() /*current_user_can( 'edit_theme_options' )*/
			&& $edit_menu_id_super_admin !== $nav_menu->term_id
			/* && $edit_menu_id_admin != $nav_menu->term_id */
		) {

			$admin_bar->add_node(
				array(
					'id'     => 'tbex-edit-menu-' . $nav_menu_id,
					'parent' => 'group-list-menus',
					'title'  => esc_attr__( 'Edit Menu:', 'toolbar-extras' ) . ' ' . $nav_menu_name,
					'href'   => esc_url( admin_url( 'nav-menus.php?action=edit&menu=' . $nav_menu_id . '' ) ),
					'meta'   => array(
						'target' => '',
						'title'  => esc_attr__( 'Edit Menu:', 'toolbar-extras' ) . ' ' . $nav_menu_name,
					)
				)
			);

		}  // end if

	}  // end foreach

}  // end function


add_action( 'admin_bar_menu', 'ddw_tbex_edit_custom_toolbar_menus', 1000 );
/**
 * Add edit Nav Menu item for our own custom Super Admin Toolbar Menu.
 *
 * @since 1.0.0
 *
 * @uses ddw_tbex_get_menu_id_from_menu_location()
 *
 * @param object $admin_bar Object of Toolbar nodes.
 */
function ddw_tbex_edit_custom_toolbar_menus( $admin_bar ) {

	/** Bail early if no super admin */
	if ( ! is_super_admin() ) {
		return $admin_bar;
	}

	/** Add sub group for site "Menus" item */
	$admin_bar->add_group(
		array(
			'parent' => 'wpmenus',
			'id'     => 'group-list-tbex-menus',
			'meta'   => array( 'class' => 'ab-sub-secondary' ),
		)
	);

	/** Get menu IDs of our custom menus */
	$edit_menu_id_super_admin = ddw_tbex_get_menu_id_from_menu_location( 'tbex_menu' );
	$menu_obj_super_admin     = get_term( $edit_menu_id_super_admin, 'nav_menu' );

	/** Check for menu + cap */
	if ( ! empty( $edit_menu_id_super_admin ) ) {

		$admin_bar->add_node(
			array(
				'id'     => 'tbex-superadmin-menu',
				'parent' => 'group-list-tbex-menus',
				'title'  => esc_attr__( 'Toolbar Menu:', 'toolbar-extras' ) . ' ' . esc_html( $menu_obj_super_admin->name ),
				'href'   => esc_url( admin_url( 'nav-menus.php?action=edit&menu=' . $edit_menu_id_super_admin . '' ) ),
				'meta'   => array(
					'target' => '',
					'title'  => esc_attr__( 'Edit Super Admin Toolbar Menu:', 'toolbar-extras' ) . ' ' . esc_html( $menu_obj_super_admin->name ),
				)
			)
		);

	}  // end if

}  // end function