• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

equalizedigital / accessibility-checker / 16153461478

08 Jul 2025 08:16PM UTC coverage: 30.724% (+0.3%) from 30.378%
16153461478

push

github

web-flow
Merge pull request #1061 from equalizedigital/steve/pro-198-custom-wp-toolbar-menu

added: admin toolbar functionality and corresponding tests

33 of 46 new or added lines in 2 files covered. (71.74%)

1 existing line in 1 file now uncovered.

1688 of 5494 relevant lines covered (30.72%)

1.98 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/includes/classes/class-admin-toolbar.php
1
<?php
2
/**
3
 * Class file for Admin Toolbar functionality.
4
 *
5
 * @package Accessibility_Checker
6
 */
7

8
namespace EDAC\Inc;
9

10
/**
11
 * Class that handles admin toolbar menu items for Accessibility Checker.
12
 *
13
 * @since 1.27.0
14
 */
15
class Admin_Toolbar {
16

17
        /**
18
         * Constructor
19
         *
20
         * @since 1.27.0
21
         */
22
        public function __construct() {
23
        }
8✔
24

25
        /**
26
         * Initialize the admin toolbar functionality.
27
         *
28
         * @since 1.27.0
29
         * @return void
30
         */
31
        public function init(): void {
32
                add_action( 'admin_bar_menu', [ $this, 'add_toolbar_items' ], 999 );
2✔
33
        }
34

35
        /**
36
         * Add Accessibility Checker items to the admin toolbar.
37
         *
38
         * @since 1.27.0
39
         * @param \WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
40
         * @return void
41
         */
42
        public function add_toolbar_items( $wp_admin_bar ): void {
43

44
                // Only show for users who can manage options.
45
                if ( ! current_user_can( 'manage_options' ) ) {
2✔
46
                        return;
2✔
47
                }
48

49
                // Add parent menu item.
NEW
50
                $wp_admin_bar->add_menu(
×
NEW
51
                        [
×
NEW
52
                                'id'    => 'accessibility-checker',
×
NEW
53
                                'title' => '<span class="ab-icon dashicons dashicons-universal-access-alt"></span>' . __( 'Accessibility Checker', 'accessibility-checker' ),
×
NEW
54
                                'href'  => admin_url( 'admin.php?page=accessibility_checker' ),
×
NEW
55
                        ]
×
NEW
56
                );
×
57

58
                // Get default menu items.
NEW
59
                $menu_items = $this->get_default_menu_items();
×
60

61
                /**
62
                 * Filters the admin toolbar menu items for Accessibility Checker.
63
                 *
64
                 * Allows plugins to add, remove, or modify menu items in the
65
                 * Accessibility Checker admin toolbar dropdown.
66
                 *
67
                 * @since 1.27.0
68
                 *
69
                 * @param array $menu_items Array of menu item configurations. Each item should be
70
                 *                          an associative array with keys: id, parent, title, href,
71
                 *                          and optionally meta for additional attributes.
72
                 */
NEW
73
                $menu_items = apply_filters( 'edac_admin_toolbar_menu_items', $menu_items );
×
74

75
                // Add each menu item to the toolbar.
NEW
76
                foreach ( $menu_items as $item ) {
×
NEW
77
                        $wp_admin_bar->add_menu( $item );
×
78
                }
79
        }
80

81
        /**
82
         * Get the default menu items for the admin toolbar.
83
         *
84
         * @since 1.27.0
85
         * @return array Array of menu item configurations.
86
         */
87
        private function get_default_menu_items(): array {
88
                $menu_items = [];
2✔
89

90
                // Add Settings submenu item.
91
                $menu_items[] = [
2✔
92
                        'id'     => 'accessibility-checker-settings',
2✔
93
                        'parent' => 'accessibility-checker',
2✔
94
                        'title'  => __( 'Settings', 'accessibility-checker' ),
2✔
95
                        'href'   => admin_url( 'admin.php?page=accessibility_checker_settings' ),
2✔
96
                ];
2✔
97

98
                // Add Fixes submenu item.
99
                $menu_items[] = [
2✔
100
                        'id'     => 'accessibility-checker-fixes',
2✔
101
                        'parent' => 'accessibility-checker',
2✔
102
                        'title'  => __( 'Fixes', 'accessibility-checker' ),
2✔
103
                        'href'   => admin_url( 'admin.php?page=accessibility_checker_settings&tab=fixes' ),
2✔
104
                ];
2✔
105

106
                // Add Get Pro submenu item (only show if pro is not installed or license is not valid).
107
                if ( ! defined( 'EDACP_VERSION' ) || ! EDAC_KEY_VALID ) {
2✔
108
                        $pro_link = function_exists( 'edac_generate_link_type' ) 
2✔
109
                                ? edac_generate_link_type( [ 'utm-content' => 'admin-toolbar' ] )
2✔
110
                                : 'https://equalizedigital.com/accessibility-checker/pricing/';
2✔
111

112
                        $menu_items[] = [
2✔
113
                                'id'     => 'accessibility-checker-pro',
2✔
114
                                'parent' => 'accessibility-checker',
2✔
115
                                'title'  => '<span style="font-weight: bold; color: white;">' . __( 'Get Accessibility Checker Pro', 'accessibility-checker' ) . '</span>',
2✔
116
                                'href'   => $pro_link,
2✔
117
                                'meta'   => [
2✔
118
                                        'target'     => '_blank',
2✔
119
                                        'rel'        => 'noopener noreferrer',
2✔
120
                                        'aria-label' => __( 'Get Accessibility Checker Pro (opens in new window)', 'accessibility-checker' ),
2✔
121
                                ],
2✔
122
                        ];
2✔
123
                }
124

125
                return $menu_items;
2✔
126
        }
127
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc