Короче говоря, я пытаюсь добиться того, чтобы пользователь мог добавить некоторые поля настроек администратора в пользовательский плагин через бэкэнд, а затем заполнить их по мере необходимости.
Таким образом, на странице настроек по умолчанию будет одно поле настроек:
Местоположение (с настройкой location_id): (Пользователь вводит местоположение здесь и оно сохраняется в базе данных)
ЧтоЯ хочу, чтобы это произошло, есть кнопка с надписью «Добавить другое местоположение», которая автоматически создаст новое поле настроек с идентификатором location_id2.Добавление третьего создаст третье поле и идентификатор, назначенный последовательно.(В идеале я хотел бы дать возможность удалить любое из полей, но это является второстепенным требованием.)
Эти поля будут сохранены в базе данных, поэтому я могу вызвать их позже во внешнем интерфейсе, используя get_option('location_id')
;.
Код, который у меня есть в настоящее время, предназначен для одного поля настроек
add_action('admin_menu', 'mycustom_menu');
function mycustom_menu() {
//create new top-level menu
add_menu_page('mycustom Connect', 'mycustom Connect', 'administrator', __FILE__, 'mycustom_settings_page' , plugins_url('/images/icon1.png', __FILE__) );
//call register settings function
add_action( 'admin_init', 'register_mycustom_settings' );
}
function register_mycustom_settings() {
//register our settings
register_setting( 'mycustom-settings-group', 'location_id' );
}
function mycustom_settings_page() {
?>
<div class="wrap">
<h1><strong></strong>mycustom Settings</strong></strong></h1>
<form autocomplete="off" method="post" action="options.php">
<?php settings_fields( 'mycustom-settings-group' ); ?>
<?php do_settings_sections( 'mycustom-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Location ID</th>
<td><input autocomplete="off" type="text" name="location_id" value="<?php echo esc_attr( get_option('location_id') ); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php }
Используя этот же код, я могу вручную создать многие из этих полей по своему усмотрению, но, как указано в вопросе, как можноя позволил внутреннему пользователю делать это динамически.Я перебрал довольно много других вопросов и не смог найти ничего, что могло бы даже помочь мне начать, поэтому любая помощь будет принята с благодарностью.
большое спасибо заранее!