settings = $settings; } /** @return void */ public function register_hooks() { add_action( 'admin_menu', [ $this, 'register_menu' ], 9 ); add_filter( 'plugin_action_links_' . plugin_basename( WTEAM_EXECUTOR_FILE ), [ $this, 'add_plugin_action_links' ] ); } /** @return void */ public function register_menu() { $capability = WTeam_Executor_Access_Control::CAPABILITY; add_menu_page( __( 'Executor Settings', 'wteam-executor' ), __( 'Executor', 'wteam-executor' ), $capability, self::MENU_SLUG, [ $this->settings, 'render_page' ], 'dashicons-admin-tools', 58 ); add_submenu_page( self::MENU_SLUG, __( 'Executor Settings', 'wteam-executor' ), __( 'Settings', 'wteam-executor' ), $capability, self::MENU_SLUG, [ $this->settings, 'render_page' ] ); do_action( 'wteam_executor_admin_menu_registered', self::MENU_SLUG, $capability ); } /** @param array $links @return array */ public function add_plugin_action_links( $links ) { if ( ! WTeam_Executor_Access_Control::can_current_user() ) { return $links; } $settings_url = admin_url( 'admin.php?page=' . WTeam_Executor_Settings::PAGE_SLUG ); $settings = '' . esc_html__( 'Settings', 'wteam-executor' ) . ''; unset( $links['settings'] ); return array_merge( [ 'settings' => $settings ], $links ); } }