From 2b4e3cecd39aaa646196040a4f0f63da98b71ace Mon Sep 17 00:00:00 2001 From: Marcus Quinn Date: Mon, 24 Mar 2025 17:06:09 +0000 Subject: [PATCH] refactor: move AJAX option handler to Admin Manager class --- admin/includes/class-admin-manager.php | 12 ++++++++++++ admin/settings.php | 11 ++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/admin/includes/class-admin-manager.php b/admin/includes/class-admin-manager.php index 77a7c51..4c2fa68 100644 --- a/admin/includes/class-admin-manager.php +++ b/admin/includes/class-admin-manager.php @@ -18,6 +18,18 @@ class WP_Allstars_Admin_Manager { public static function init() { // Register hooks - we'll add more as we refactor each function add_action('admin_menu', array(__CLASS__, 'register_admin_menu')); + add_action('wp_ajax_wp_allstars_update_option', array(__CLASS__, 'update_option')); + } + + /** + * AJAX handler for updating options + */ + public static function update_option() { + check_ajax_referer('wp-allstars-nonce', 'nonce'); + $option = sanitize_text_field($_POST['option']); + $value = intval($_POST['value']); + update_option($option, $value); + wp_send_json_success('Option updated'); } /** diff --git a/admin/settings.php b/admin/settings.php index 1ab7682..03c9d63 100644 --- a/admin/settings.php +++ b/admin/settings.php @@ -16,15 +16,12 @@ function wp_allstars_register_settings() { } add_action('admin_init', 'wp_allstars_register_settings'); -// AJAX handler for settings +// AJAX handler for settings - now handled by WP_Allstars_Admin_Manager class, but kept for backward compatibility function wp_allstars_update_option() { - check_ajax_referer('wp-allstars-nonce', 'nonce'); - $option = sanitize_text_field($_POST['option']); - $value = intval($_POST['value']); - update_option($option, $value); - wp_send_json_success('Option updated'); + // This function now redirects to the Admin Manager class + // Kept for backward compatibility + WP_Allstars_Admin_Manager::update_option(); } -add_action('wp_ajax_wp_allstars_update_option', 'wp_allstars_update_option'); // Include tools data require_once dirname(__FILE__) . '/data/tools.php';