/** * Update settings * * @return void */ function update_settings() { if (empty($_GET['page']) || 'd-settings' != $_GET['page'] || 'POST' != $_SERVER['REQUEST_METHOD']) { return; } $settings = settings_list(); $new_settings = array(); foreach ($settings as $setting) { $value = empty($_POST[$setting['name']]) ? '' : $_POST[$setting['name']]; if (!empty($setting['type']) && 'checkbox' == $setting['type']) { $value = $value ? 1 : 0; } $new_settings[$setting['name']] = $value; } update_option('d-settings', $new_settings); }
<h3><?php _e('Settings Manager', 'ds'); ?> </h3> <form method="post" action=""> <?php $settings = settings_list(); foreach ($settings as $setting) { $title = $setting['title']; $name = $setting['name']; $tooltip = empty($setting['tooltip']) ? '' : $setting['tooltip']; $class = empty($setting['class']) ? '' : $setting['class']; switch ($setting['type']) { case 'textarea': DS_Form::textarea($title, $name, $tooltip, $class, empty($setting['row']) ? 5 : $setting['row']); break; case 'text': DS_Form::text($title, $name, $tooltip, $class); break; case 'number': DS_Form::number($title, $name, $tooltip, $class, empty($setting['min']) ? 0 : $setting['min'], empty($setting['max']) ? 100 : $setting['max']); break; case 'checkbox': DS_Form::checkbox($title, $name, $tooltip, $class); break; case 'select': DS_Form::select($title, $name, $setting['data'], $tooltip, $class); break; }