@denism300

Почему wordpress не сохраняет опции плагина?

Пишу небольшой плагин и столкнулся с тем, что 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' );
?>
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы