Пишу небольшой плагин и столкнулся с тем, что WP не сохраняет опции.
Где ошибка?
<?php
function build_calc_admin_page() {
if ( $pagenow == 'options-general.php' && $_GET['page'] == 'build-calc' ) {
?>
<div class="wrap">
<h1><?php echo get_admin_page_title() ?></h1>
<table class="form-table">
<tbody>
<form action="<?php admin_url( 'options.php' ); ?>" method="POST">
<?php
settings_fields( 'one_floor_group' );
do_settings_sections( 'one_floor_page' );
submit_button();
?>
</form>
</tbody>
</table>
</div>
<?php
}
}
add_action( 'admin_init', 'plugin_settings' );
function plugin_settings() {
register_setting( 'one_floor_group', 'one_floor_group', 'sanitize_callback' );
add_settings_section( 'section_one_floor', 'Одноэтажный дом', '', 'one_floor_page' );
$fields = array(
'svai' => 'Фундамент на сваях:',
'rostverk' => 'Ростверк на столбах:',
'lenta' => 'Фундамент ленточный утепленный:',
'plita' => 'Фундамент монолитная плита:',
'karkas' => 'Каркас:',
'gazobeton' => 'Газобетон:',
'kirpich' => 'Кирпич:',
'zhb_perekrytie' => 'Железобетонное перекрытие:',
'der_perekrytie' => 'Деревянное для каркасного дома:',
'derGB_perekrytie' => 'Деревянное для газобетона:',
'metallocherepitsa' => 'Металлочерепица:',
'myagkaya_cherepitsa' => 'Мягкая черепица:',
'cementno_peschanaya_cherepitsa' => 'Цементно-песчаная черепица BRAAS:',
'poly_1_etazh' => 'Полы первого этажа (стяжка):',
'okna' => 'Окна:',
'fasad_svesy' => 'Фасад и свесы:',
'transport' => 'Транспорт:',
'dostavka' => 'Доставка газобетона (кирпича):'
);
foreach ($fields as $field => $name){
add_settings_field( $field, $name, 'fill_field_one_floor', 'one_floor_page', 'section_one_floor', $args = array('field' => $field) );
}
}
function fill_field_one_floor($args) {
$field_name = $args['field'];
$val = get_option('one_floor_group');
$val = $val[$field_name];
?>
<input type="number" step="any" name="build_calc_one_floor[<?php echo $field_name; ?>]" value="<?php echo esc_attr( $val ) ?>" />
<?php
}
function activate_build_calc() {
add_options_page( 'Строительный калькулятор', 'Строительный калькулятор', 'manage_options', 'build-calc', 'build_calc_admin_page' );
}
add_action( 'admin_menu', 'activate_build_calc' );
?>