renderContent(); } public $name = 'afsa_setting_page'; public $selected_tab; public $tabs; public function __construct() { $this->tabs = array( 'afsa_tab_main' => __('Main Settings', 'afsanalytics'), 'afsa_tab_autotrack' => __('Advanced Settings', 'afsanalytics'), 'afsa_tab_privacy' => __('Privacy', 'afsanalytics'), ); if (AFSA_Config::woocommerce_enabled()) { $this->tabs['afsa_tab_woo'] = 'ECommerce'; } register_setting('afsa_settings_main', 'afsa_settings_main'); register_setting('afsa_settings_privacy', 'afsa_settings_privacy'); register_setting('afsa_settings_autotrack', 'afsa_settings_autotrack'); register_setting('afsa_settings_woo', 'afsa_settings_woo'); $tab_id = empty($_GET['afsa_tab']) ? 'afsa_tab_main' : sanitize_text_field($_GET['afsa_tab']); $class = $this->class_from_tab_id($tab_id); $this->selected_tab = new $class( $this->name, $tab_id ); } public function class_from_tab_id($id) { $classes = array( 'afsa_tab_main' => 'AFSA_Setting_Tab_Main', 'afsa_tab_privacy' => 'AFSA_Setting_Tab_Privacy', 'afsa_tab_autotrack' => 'AFSA_Setting_Tab_Autotrack', 'afsa_tab_woo' => 'AFSA_Setting_Tab_Woo', ); return empty($classes[$id]) ? 'AFSA_Setting_Tab_Main' : $classes[$id]; } // FORM RENDERING public function renderContent() { // moved from __construct() to avoid user check firing when just registering settings // (when called from class AFSA_Admin ) if (! current_user_can('manage_options')) { return; } print '