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;
}
}