load_textdomain(); $this->register_defaults(); add_filter( 'plugin_action_links_' . plugin_basename( AFAMT_PLUGIN_FILE ), array( $this, 'plugin_action_links' ) ); if ( is_admin() ) { require_once AFAMT_PLUGIN_DIR . '/includes/class-afamt-settings.php'; Settings::instance( $this->option_name )->init(); } require_once AFAMT_PLUGIN_DIR . '/includes/class-afamt-enforcer.php'; Enforcer::instance( $this->option_name )->init(); } private function load_textdomain() : void { load_plugin_textdomain( 'adminforge-admin-management-toolkit', false, dirname( plugin_basename( AFAMT_PLUGIN_FILE ) ) . '/languages' ); } private function register_defaults() : void { $existing = get_option( $this->option_name, null ); if ( null !== $existing ) { return; } $legacy = get_option( 'admin_toolkit_options', null ); if ( is_array( $legacy ) ) { add_option( $this->option_name, $legacy, '', false ); return; } $defaults = array( 'menu_hidden' => array(), // role => [menu_slug,...] 'dashboard_widgets_hidden' => array(), // role => [widget_id,...] 'ui' => array( 'custom_footer_text' => '', 'hide_admin_bar' => array(), // role => bool ), ); add_option( $this->option_name, $defaults, '', false ); } /** * Adds a Settings link on the Plugins screen. * * @param string[] $links * @return string[] */ public function plugin_action_links( array $links ) : array { $url = add_query_arg( array( 'page' => 'afamt', ), admin_url( 'options-general.php' ) ); $settings = '' . esc_html__( 'Settings', 'adminforge-admin-management-toolkit' ) . ''; array_unshift( $links, $settings ); return $links; } }