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('pisol_' . $this->plugin_name . '_tab_content', array($this, 'tab_content'));
}
$position = $this->get_tab_postion();
add_action('pisol_' . $this->plugin_name . '_tab', array($this, 'tab'), $position);
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 abstract function get_icon();
public function get_tab_postion(){
return $this->tab_position;
}
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();
$icon = $this->get_icon();
if(!empty($icon)) {
$img = sprintf('', esc_url($icon));
}
?>
tab_name); ?>