Just tested your code, found an error in the input name. Change currency_options_group
to currency_options
will make it work. The modified code:
add_action('admin_init', 'currency_options_set');
add_action( 'admin_menu', 'admin_menu' );
function admin_menu () {
add_options_page( 'Currency Options','Currency Options','manage_options','options_currency', 'settings_page' );
}
function currency_options_set(){
register_setting( 'currency_options_group', 'currency_options' );
}
function settings_page () {
$default_options = array( 'currency_eur' => "1.1" );
$options = get_option('currency_options', $default_options);
?>
<form method="post" action="options.php">
<?php
settings_fields("currency_options_group"); ?>
<table class="form-table">
<tr>
<th scope="row">EUR:</th>
<td>
<input type="text" name="currency_options[currency_eur]" size="40" value="<?php echo stripslashes($options["currency_eur"]); ?>" />
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
<?php
}