Files
wpa-superstar-plugin/admin/class-seoprostack-admin.php

123 lines
3.8 KiB
PHP

<?php
/**
* The admin-specific functionality of the plugin.
*
* @package SEO_Pro_Stack
* @subpackage SEO_Pro_Stack/Admin
*/
// If this file is called directly, abort.
if (!defined('ABSPATH')) {
exit;
}
/**
* The admin-specific functionality of the plugin.
*/
class SEOProStack_Admin {
/**
* Initialize the admin functionality.
*/
public function initialize() {
// Register settings page
add_action('admin_menu', array($this, 'add_settings_page'));
// Register admin assets
add_action('admin_enqueue_scripts', array($this, 'enqueue_styles'));
add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
// Initialize AJAX handlers
$this->init_ajax_handlers();
}
/**
* Register the stylesheets for the admin area.
*
* @param string $hook The current admin page.
*/
public function enqueue_styles($hook) {
// Only load styles on our settings page
if (strpos($hook, 'seoprostack') === false && strpos($hook, 'page=seoprostack') === false) {
return;
}
wp_enqueue_style(
'seoprostack-admin',
SEOPROSTACK_PLUGIN_URL . 'admin/css/seoprostack-admin.css',
array(),
SEOPROSTACK_VERSION
);
wp_enqueue_style(
'seoprostack-plugins',
SEOPROSTACK_PLUGIN_URL . 'admin/css/seoprostack-plugins.css',
array(),
SEOPROSTACK_VERSION
);
}
/**
* Register the JavaScript for the admin area.
*
* @param string $hook The current admin page.
*/
public function enqueue_scripts($hook) {
// Only load scripts on our settings page
if (strpos($hook, 'seoprostack') === false && strpos($hook, 'page=seoprostack') === false) {
return;
}
// Enqueue WordPress updates script for theme installation
wp_enqueue_script('updates');
wp_enqueue_script(
'seoprostack-admin',
SEOPROSTACK_PLUGIN_URL . 'admin/js/seoprostack-admin.js',
array('jquery', 'updates'),
SEOPROSTACK_VERSION,
true
);
// Localize script for AJAX
$ajax_data = array(
'ajaxurl' => admin_url('admin-ajax.php'),
'adminUrl' => admin_url(),
'nonce' => wp_create_nonce('seoprostack_ajax_nonce'),
'updateNonce' => wp_create_nonce('updates')
);
wp_localize_script('seoprostack-admin', 'seoProStack', $ajax_data);
}
/**
* Add settings page to the WordPress admin menu.
*/
public function add_settings_page() {
// Initialize settings page
require_once SEOPROSTACK_PLUGIN_DIR . 'admin/settings/class-seoprostack-settings-page.php';
$settings_page = new SEOProStack_Settings_Page();
$settings_page->add_menu_page();
$settings_page->register_settings();
}
/**
* Initialize AJAX handlers.
*/
public function init_ajax_handlers() {
// Pro Plugins AJAX handler
require_once SEOPROSTACK_PLUGIN_DIR . 'admin/settings/ajax/class-seoprostack-ajax-pro-plugins.php';
$pro_plugins_ajax = new SEOProStack_AJAX_Pro_Plugins();
$pro_plugins_ajax->init();
// Advanced Settings AJAX handler
require_once SEOPROSTACK_PLUGIN_DIR . 'admin/settings/ajax/class-seoprostack-ajax-advanced.php';
$advanced_ajax = new SEOProStack_AJAX_Advanced();
$advanced_ajax->init();
// Tools AJAX handler
require_once SEOPROSTACK_PLUGIN_DIR . 'admin/settings/ajax/class-seoprostack-ajax-tools.php';
$tools_ajax = new SEOProStack_AJAX_Tools();
$tools_ajax->init();
}
}