Title: Plugin Settings Page Not Saving
Last modified: November 27, 2016

---

# Plugin Settings Page Not Saving

 *  [MaddTechWF](https://wordpress.org/support/users/maddtechwf/)
 * (@maddtechwf)
 * [9 years, 6 months ago](https://wordpress.org/support/topic/plugin-settings-page-not-saving/)
 * I’m trying to create a small settings page on a plugin I’m working on. I’m running
   into a small error though. When I type anything into my two text boxes I get 
   the following error “**ERROR:** options page not found.”.
 * What am I doing wrong?
 *     ```
       <?php
   
       function test_admin_menu()
       {
           add_menu_page(
               __('Test Invoice', 'test'), __('Test', 'test'), 'manage_options', 'test', 'test_dashboard_html', 'dashicons-chart-line');
           add_submenu_page('test', __('Invoices', 'test'), __('Invoices', 'test'), 'manage_options', 'test-invoices', 'test_invoices_html');
           add_submenu_page('test', __('Clients', 'test'), __('Clients', 'test'), 'manage_options', 'test-clients', 'test_clients_html');
           add_submenu_page('test', __('Options', 'test'), __('Options', 'test'), 'manage_options', 'test-options', 'test_options_html');
       }
       add_action('admin_menu', 'test_admin_menu');
   
       function test_settings_init()
       {
           register_setting('test', 'test_options');
   
           add_settings_section('test-api-section', 'API Settings', 'test_api_section_callback', 'test');
   
           add_settings_field('test-api-url-field', __('API URL', 'test'), 'test_api_url_field_callback', 'test', 'test-api-section');
   
           add_settings_field('test-api-key-field', __('API Key', 'test'), 'test_api_key_field_callback', 'test', 'test-api-section');
   
           register_setting('test-api-section', 'test-api-url-field');
           register_setting('test-api-section', 'test-api-key-field');
       }
       add_action('admin_init', 'test_settings_init');
   
       function test_api_section_callback()
       {
           echo "Test Settings";
       }
   
       function test_api_key_field_callback($args)
       {
           $api_key = esc_attr(get_option('test-api-key-field'));
           ?>
           <input type="text" value="<?php echo $api_key; ?>" id="test-api-key-field" name="test-api-key-field" />
           <?php
       }
   
       function test_api_url_field_callback($args)
       {
           $api_url = esc_attr(get_option('test-api-url-field'));
           ?>
           <input type="text" value="<?php echo $api_url; ?>" id="test-api-url-field" name="test-api-url-field" />
           <?php
       }
   
       function test_dashboard_html()
       {
           if(!current_user_can('manage_options'))
               return;
           ?>
           <div class="wrap">
               <h1><?= esc_html(get_admin_page_title()); ?></h1>
           </div>
           <?php
       }
   
       function test_options_html()
       {
           if(!current_user_can('manage_options'))
               return;
   
           if(isset($_GET['settings-update']))
           {
               add_settings_error('test_messages', 'test_message', __('Settings Saved', 'pnacakeapp'), 'updated');
           }
   
           settings_errors('test_messages');
           ?>
           <div class="wrap">
               <h1><?= esc_html(get_admin_page_title()); ?></h1>
               <form id="" method="post" action="options.php">
                   <?php
                   settings_fields('test_options');
                   do_settings_sections('test');
                   submit_button('Save Settings');
                   ?>
               </form>
           </div>
           <?php
       }
   
       function test_clients_html()
       {
           if(!current_user_can('manage_options'))
               return;
           ?>
           <div class="wrap">
               <h1><?= esc_html(get_admin_page_title()); ?></h1>
           </div>
           <?php
       }
   
       function test_invoices_html()
       {
           if(!current_user_can('manage_options'))
               return;
           ?>
           <div class="wrap">
               <h1><?= esc_html(get_admin_page_title()); ?></h1>
           </div>
           <?php
       }
       ```
   
    -  This topic was modified 9 years, 6 months ago by [MaddTechWF](https://wordpress.org/support/users/maddtechwf/).

The topic ‘Plugin Settings Page Not Saving’ is closed to new replies.

 * 0 replies
 * 1 participant
 * Last reply from: [MaddTechWF](https://wordpress.org/support/users/maddtechwf/)
 * Last activity: [9 years, 6 months ago](https://wordpress.org/support/topic/plugin-settings-page-not-saving/)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
