Добавления своей страницы настроек и меню в админку.

// Добавляем свою страницу настроек дверей
add_action('admin_menu', 'add_dveri_menu');
function add_dveri_menu() {
	add_menu_page(
		'Страница для дверей', // имя в меню
		'Информация о дверях', // title страницы
		'manage_options', // уровень доступа
		'admin_dveri', // slug страницы
		'render_help_page', // функция, отображающая собственно страницу
		'dashicons-editor-help', // иконка
		'70' // позиция в меню
	);
	add_options_page('Страница для дверей','Информация о дверях', 'manage_options', 'admin_dveri', 'render_admin_dveri_page' );
}
function render_admin_dveri_page() {
?>
	<div class="wrap">
		<h2><?php echo get_admin_page_title() ?></h2>

		<form action="options.php" method="POST">
			<?php
				settings_fields( 'option_group' );     // скрытые защитные поля

				// Русская версия ?
				if(ICL_LANGUAGE_CODE=='ru')
					do_settings_sections( 'primer_page' ); // секции с настройками (опциями).
				// Украинская версия ??
				elseif(ICL_LANGUAGE_CODE=='uk')
					do_settings_sections( 'primer_page_ukr' ); // секции с настройками (опциями).
				submit_button();
			?>
		</form>
	</div>
	<?php
}

/**
 * Регистрируем настройки.
 * Настройки будут храниться в массиве, а не одна настройка = одна опция.
 */
add_action('admin_init', 'plugin_settings');
function plugin_settings(){
	// параметры: $option_group, $option_name, $sanitize_callback
	register_setting('option_group','dveri_options');
	// параметры: $id, $title, $callback, $page

	// Для русской версии
	add_settings_section('section_id','Информация для разных типов дверей','','primer_page');
	// параметры: $id, $title, $callback, $page, $section, $args
	add_settings_field('drevi_straj_standart','Поле для дверей TM STAJ Standart','drevi_straj_standart_callback','primer_page','section_id');

	// Для украинской версии
	add_settings_section( 'section_id_ukr', 'Информация для разных типов дверей (Украинская версия)', '', 'primer_page_ukr' );
	// параметры: $id, $title, $callback, $page, $section, $args
	add_settings_field('drevi_straj_standart_ukr','Поле для дверей TM STAJ Standart','drevi_straj_standart_callback_ukr','primer_page_ukr','section_id_ukr');
}
// Вызов функции для сохранения-отображения опции
function drevi_straj_standart_callback() {
	$val = get_option( 'dveri_options' );
	$val = $val['drevistrajstandart'];
	wp_editor( $val, 'drevistrajstandart', array('textarea_name' => 'dveri_options[drevistrajstandart]','textarea_rows' => 10) );
}

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *