Overview
TheGeoAI_Admin class manages the WordPress admin interface for the GEO AI plugin. It handles all settings pages, meta boxes, AJAX operations, and admin asset management. This class uses the singleton pattern and includes the Encryption trait for secure API key handling.
Namespace: GeoAI\Admin
Location: includes/class-geoai-admin.php
Key Features
- Admin menu and settings page management
- SEO meta boxes on post editor
- API key configuration and testing
- Multi-tab settings interface
- Bulk SEO editor
- AI-powered meta generation interface
- Asset enqueueing for admin and editor
Public Methods
get_instance()
Returns the singleton instance of the admin class.GeoAI_Admin - The singleton instance
Example:
add_admin_menu()
Registers the main GEO AI menu page and submenu pages in WordPress admin.admin_menu
Menu Structure:
- Main: GEO AI Settings
- Submenu: SEO Dashboard
register_settings()
Registers all plugin settings with WordPress Settings API.admin_init
Registered Settings:
Google Gemini API key (sanitized)
Auto-run AI audit on post save
Compatibility mode: ‘standalone’ or ‘coexist’
Title templates for different post types
Meta description templates
Social media defaults (OpenGraph, Twitter)
Schema.org markup defaults
XML sitemap configuration
URL redirect rules
404 error monitoring settings
sanitize_api_key()
Sanitizes the Google Gemini API key input.Raw API key value from user input
string - Sanitized API key
enqueue_admin_assets()
Enqueues CSS and JavaScript assets for admin pages.Current admin page hook
admin_enqueue_scripts
Assets Loaded:
admin.css- Admin interface stylesadmin.js- Admin JavaScript functionalitychart.umd.min.js- Chart.js for dashboard (only on dashboard page)
enqueue_editor_assets()
Enqueues assets for the Gutenberg block editor.enqueue_block_editor_assets
Assets Loaded:
editor.js- Block editor integrationeditor.css- Editor-specific styles
render_settings_page()
Renders the main settings page with tabbed interface.- General - API key, compatibility mode
- Titles & Meta - Title and meta description templates
- Social - OpenGraph and Twitter Cards
- Schema - Schema.org markup settings
- Sitemaps - XML sitemap configuration
- Crawlers - AI crawler blocking preferences
- Redirects & 404 - URL redirects and 404 monitoring
- Bulk Editor - Mass edit SEO meta data
- Tools - Import/export and utilities
- Advanced - Debug mode and advanced options
add_seo_meta_boxes()
Adds SEO meta boxes to post editor screens.add_meta_boxes
Added to: All public post types
save_seo_meta()
Saves SEO meta data when a post is saved.The post ID being saved
The post object being saved
save_post
ajax_generate_meta()
Handles AJAX request to generate AI-powered meta content.wp_ajax_geoai_generate_meta
AJAX Parameters:
post_id- Post ID to generate meta fornonce- Security nonce
ajax_test_api()
Handles AJAX request to test Google Gemini API connection.wp_ajax_geoai_test_api
AJAX Parameters:
api_key- API key to testnonce- Security nonce
Usage Examples
Get Admin Instance
Check if Auto-Run is Enabled
Get Current Compatibility Mode
Customize Admin Tabs
Hooks and Filters
Actions
admin_menu- Registers admin menu pagesadmin_init- Registers settingsadmin_enqueue_scripts- Enqueues admin assetsenqueue_block_editor_assets- Enqueues editor assetsadd_meta_boxes- Adds SEO meta boxessave_post- Saves SEO meta datawp_ajax_geoai_generate_meta- AJAX meta generationwp_ajax_geoai_test_api- AJAX API testing
Settings Structure
Title Templates
Templates support these variables:%%title%%- Post/page title%%sitename%%- Site name%%sep%%- Separator (|)%%excerpt%%- Post excerpt%%category%%- Primary category%%tag%%- First tag%%date%%- Publish date%%author%%- Author name%%sitedesc%%- Site description
API Key Storage
API keys are sanitized usingsanitize_text_field() and stored as plain text. Future versions may implement encryption.
Related Classes
- GeoAI_Analyzer - AI content analysis
- GeoAI_Meta - Meta tag output
- GeoAI_Compat - Plugin compatibility