add_menu( [ 'id' => 'accessibility-checker', 'title' => '' . __( 'Accessibility Checker', 'accessibility-checker' ), 'href' => admin_url( 'admin.php?page=accessibility_checker' ), ] ); // Get default menu items. $menu_items = $this->get_default_menu_items(); /** * Filters the admin toolbar menu items for Accessibility Checker. * * Allows plugins to add, remove, or modify menu items in the * Accessibility Checker admin toolbar dropdown. * * @since 1.27.0 * * @param array $menu_items Array of menu item configurations. Each item should be * an associative array with keys: id, parent, title, href, * and optionally meta for additional attributes. */ $menu_items = apply_filters( 'edac_admin_toolbar_menu_items', $menu_items ); // Add each menu item to the toolbar. foreach ( $menu_items as $item ) { $wp_admin_bar->add_menu( $item ); } } /** * Get the default menu items for the admin toolbar. * * @since 1.27.0 * @return array Array of menu item configurations. */ private function get_default_menu_items(): array { $menu_items = []; // Add Settings submenu item. $menu_items[] = [ 'id' => 'accessibility-checker-settings', 'parent' => 'accessibility-checker', 'title' => __( 'Settings', 'accessibility-checker' ), 'href' => admin_url( 'admin.php?page=accessibility_checker_settings' ), ]; // Add Fixes submenu item. $menu_items[] = [ 'id' => 'accessibility-checker-fixes', 'parent' => 'accessibility-checker', 'title' => __( 'Fixes', 'accessibility-checker' ), 'href' => admin_url( 'admin.php?page=accessibility_checker_settings&tab=fixes' ), ]; // Add Get Pro submenu item (only show if pro is not installed or license is not valid). if ( ! defined( 'EDACP_VERSION' ) || ! EDAC_KEY_VALID ) { $pro_link = function_exists( 'edac_generate_link_type' ) ? edac_generate_link_type( [ 'utm-content' => 'admin-toolbar' ] ) : 'https://equalizedigital.com/accessibility-checker/pricing/'; $menu_items[] = [ 'id' => 'accessibility-checker-pro', 'parent' => 'accessibility-checker', 'title' => '' . __( 'Get Accessibility Checker Pro', 'accessibility-checker' ) . '', 'href' => $pro_link, 'meta' => [ 'target' => '_blank', 'rel' => 'noopener noreferrer', 'aria-label' => __( 'Get Accessibility Checker Pro (opens in new window)', 'accessibility-checker' ), ], ]; } return $menu_items; } }