PluginProbe
WP Console – WordPress PHP Console powered by PsySH / trunk
WP Console – WordPress PHP Console powered by PsySH vtrunk
trunk 2.4.0 2.4.1 2.5.0 2.5.1 2.6.0
wp-console / includes / AdminBar.php

AdminBar.php in WP Console – WordPress PHP Console powered by PsySH trunk, at includes/AdminBar.php

89 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPConsole;
4
5 class AdminBar {
6
7 /**
8 * Class constructor
9 *
10 * @since 2.0.0
11 *
12 * @return void
13 */
14 public function __construct() {
15 if ( ! current_user_can( 'manage_options' ) ) {
16 return;
17 }
18
19 add_action( 'admin_bar_menu', [ $this, 'add_admin_bar_quick_link' ] );
20 add_action( 'admin_menu', [ $this, 'add_admin_tools_submenu' ] );
21
22 add_action( 'wp_after_admin_bar_render', [ $this, 'add_footer' ] );
23 }
24
25 /**
26 * Add admin bar quick link
27 *
28 * @since 1.0.0
29 *
30 * @return void
31 */
32 public function add_admin_bar_quick_link() {
33 global $wp_admin_bar;
34
35 $wp_admin_bar->add_menu( array(
36 'id' => 'wp-console',
37 'parent' => 'top-secondary',
38 'title' => __( 'Console', 'wp-console' ),
39 ) );
40 }
41
42 /**
43 * Add an admin submenu item under tools menu.
44 *
45 * Admin who are unable to open WP Console window
46 * using admin bar menu, can use this submenu.
47 * @see: https://wordpress.org/support/topic/feature-request-dedicated-page-instead-of-pop-up/
48 *
49 * @since 2.4.1
50 *
51 * @return void
52 */
53 public function add_admin_tools_submenu() {
54 add_submenu_page(
55 'tools.php',
56 __( 'WP Console', 'wp-console' ),
57 __( 'WP Console', 'wp-console' ),
58 'manage_options',
59 'wp-console',
60 [ $this, 'add_admin_page' ]
61 );
62 }
63
64 /**
65 * Add footer
66 *
67 * @since 1.0.0
68 *
69 * @return void
70 */
71 public function add_footer() {
72 echo '<div id="wp-console"></div>';
73 }
74
75 /**
76 * Add submenu page under tools admin menu.
77 *
78 * This is just a dummy page and JS will prevent
79 * opening it.
80 *
81 * @since 2.4.1
82 *
83 * @return void
84 */
85 public function add_admin_page() {
86 esc_html_e( 'WP Console', 'wp-console' );
87 }
88 }
89