Multiple settings Wordpress Options Page plugin

admin

Administrator
Staff member
I want to make an Options page with multiple settings for my plugin. I want to use this code as a start: <a href="http://codex.wordpress.org/Creating_Options_Pages#Example_.232" rel="noreferrer">http://codex.wordpress.org/Creating_Options_Pages#Example_.232</a>

Code:
&lt;?php
class wctest{
    public function __construct(){
        if(is_admin()){
            add_action('admin_menu', array($this, 'add_plugin_page'));
            add_action('admin_init', array($this, 'page_init'));
        }
    }

    public function add_plugin_page(){
        // This page will be under "Settings"
        add_options_page('Settings Admin', 'Settings', 'manage_options', 'test-setting-admin', array($this, 'create_admin_page'));
    }

    public function create_admin_page(){
    ?&gt;
    &lt;div class="wrap"&gt;
        &lt;?php screen_icon(); ?&gt;
        &lt;h2&gt;Settings&lt;/h2&gt;           
        &lt;form method="post" action="options.php"&gt;
            &lt;?php
                    // This prints out all hidden setting fields
            settings_fields('test_option_group');   
            do_settings_sections('test-setting-admin');
        ?&gt;
            &lt;?php submit_button(); ?&gt;
        &lt;/form&gt;
    &lt;/div&gt;
    &lt;?php
    }

    public function page_init(){        
        register_setting('test_option_group', 'array_key', array($this, 'check_ID'));

        add_settings_section(
            'setting_section_id',
            'Setting',
            array($this, 'print_section_info'),
            'test-setting-admin'
        );  

        add_settings_field(
            'some_id', 
            'Some ID(Title)', 
            array($this, 'create_an_id_field'), 
            'test-setting-admin',
            'setting_section_id'            
        );      
    }

    public function check_ID($input){
        if(is_numeric($input['some_id'])){
            $mid = $input['some_id'];           
            if(get_option('test_some_id') === FALSE){
                add_option('test_some_id', $mid);
            }else{
                update_option('test_some_id', $mid);
            }
        }else{
            $mid = '';
        }
        return $mid;
    }

    public function print_section_info(){
        print 'Enter your setting below:';
    }

    public function create_an_id_field(){
        ?&gt;&lt;input type="text" id="input_whatever_unique_id_I_want" name="array_key[some_id]"    value="&lt;?=get_option('test_some_id');?&gt;" /&gt;&lt;?php
    }
}

$wctest = new wctest();

Everything works as shown below the code on the page, but I want to add a second setting. How do I add another settings section and a settings field and being able to safe the values? I have been puzzling for half a day now, but no luck.

Could someone help me out please? This is my first plugin and if I understand this part I can do the rest.