active_tab = isset($_GET['tab']) ? sanitize_text_field(wp_unslash($_GET['tab'])) : 'default'; $this->this_tab = $this->get_tab(); $this->setting_key = 'anfw_' . $this->get_setting_key() . '_settings'; if ($this->this_tab == $this->active_tab) { add_action($this->plugin_name . '_tab_content', array($this, 'tab_content')); } add_action($this->plugin_name . '_tab', array($this, 'tab'), 3); add_action('admin_init', array($this, 'init_settings'), 10); add_action('admin_init', array($this, 'register_settings'), 20); } // Child classes must implement this to define $this->settings and $this->setting_key public abstract function init_settings(); public abstract function get_tab_name(); public abstract function get_tab(); public abstract function get_setting_key(); public function register_settings() { foreach ($this->settings as $setting) { FormGenerator::register_setting($this->setting_key, $setting); } } public function tab() { $this->tab_name = $this->get_tab_name(); ?> tab_name); ?>
setting_key); ?> settings as $setting) { new FormGenerator($setting, $this->setting_key); } ?>