I was working on a wordpress theme project, where i implemented theme options page. Thought that there needs to be a feature to reset all theme values, when a button is clicked. It didn’t work, when i put-up a Reset button, near the submit button on the same form in the wordpress. It turns out i have to include a separate form for this to do the trick. Don’t forget that you can create buttons using wordpress submit_button() function
Here is a snippet of code that does the trick.
<h1>Reset Defaults</h1> <form method="post" action=""> <p class="submit"> Load theme default settings: <input name="reset" class="button button-secondary" type="submit" value="Reset to theme default settings" > <input type="hidden" name="action" value="reset" /> </p> </form>
Then you write code to do the task when the button is clicked.
if(isset($_POST['reset'])) { update_option('mytheme-options', mytheme_defaults() ); echo '<p style="color:red">Theme settings have been reset and default values loaded</p>'; }
The function my theme_defaults() contains an array of default values required for the theme. For example
function my theme_defaults() { $defaults = array ( 'logo' => '', 'favicon' => '', 'footer' => '', 'facebook-link' => '', 'twitter-link' => '', 'google-plus-link' => '', 'pin-it-link' => '', 'linkedin-link' => '', 'showcase-image' => '', 'showcase-title' => '', 'showcase-text' => '', 'showcase-link' => '', 'menu-color' => '#caeffc', 'header-color' => 'transparent', 'menu-font-color' => '#333', 'widgets-menus-color' => 'transparent', 'footer-color' => '#b7d3e5', 'link-color' => '#000', 'bg-color' => 'transparent', 'showcase-color' => '#f5fefe', 'showcase-font-color' => '#777', 'showcase' => '1', 'comments' => '1', 'reset' => '0' ); return $defaults; }