/** * Регистрируем административное меню этого плагина в... */publicfunctionadd_plugin_admin_menu() {/** * Добавляем пункт меню плагина в "настройки". */ add_options_page( $this->plugin_name, $this->plugin_name, 'manage_options', $this->plugin_name, array($this, 'display_plugin_setup_page')
);/** * Добавляем пункт (страницу) верхнего уровня в меню админ-панели (боковая панель) */ add_menu_page("Система записи", "Система записи", "manage_options", $this->plugin_name, array($this, 'display_plugin_setup_page'), "dashicons-calendar-alt");
} }
/** * Добавляет путь к шаблону с html кодом формы админки */publicfunctiondisplay_plugin_setup_page() {include_once( 'partials/appointment-dk-admin-display.php' ); }
// Пример обновления данных настроек (требуется регистрация)publicfunctionoptions_update() {register_setting($this->plugin_name,$this->plugin_name, array($this,'validate')); }
По сути страница настроек плагина - это простая форма, и тут можно использовать любые элементы форм. Например, текстовые поля позволят выводить телефоны или подписи пользователей. Чекбосксы, списки и кнопки, все может пойти в ход. Принцип обработки данных схож и не вызовет затруднений. Для того, что бы вы могли правильно оформить html код поля следует установить плагин WordPress Admin Style, он демонстрирует примеры как правильно оформить любой тип элемента формы, с учётом дальнейшей локализации.
<--Пример->
<form method="post" name="my_options" action="options.php">
<?php
// Загрузить все значения элементов формы
$options = get_option($this->plugin_name);
// текущие состояние опций
$footer_text = $options['footer_text'];
// Выводит скрытые поля формы на странице настроек
settings_fields( $this->plugin_name );
do_settings_sections( $this->plugin_name );
?>
<h2><?php echo esc_html( get_admin_page_title() ); ?></h2>
<fieldset>
<legend class="screen-reader-text"><span><?php _e('Text in the footer', $this->plugin_name);?></span></legend>
<label for="<?php echo $this->plugin_name;?>-footer_text">
<span><?php esc_attr_e('Text in the footer', $this->plugin_name);?></span>
</label>
<input type="text"
class="regular-text" id="<?php echo $this->plugin_name;?>-footer_text"
name="<?php echo $this->plugin_name;?>[footer_text]"
value="<?php if(!empty($footer_text)) esc_attr_e($footer_text, $this->plugin_name);?>"
placeholder="<?php esc_attr_e('Text in the footer', $this->plugin_name);?>"
/>
</fieldset>
<?php submit_button(__('Save all changes', $this->plugin_name), 'primary','submit', TRUE); ?>
</form>