Пользовательские настройки серверной части WordPress, которые могут быть добавлены / сгенерированы пользователем-администратором

#php #wordpress #woocommerce

#php #wordpress #woocommerce

Вопрос:

В двух словах, чего я пытаюсь добиться, это позволить пользователю добавлять некоторые поля настроек администратора в пользовательский плагин через серверную часть, а затем заполнять их по мере необходимости.

Таким образом, на странице настроек по умолчанию будет одно поле настроек:

Местоположение (с параметром 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 }
  

Используя этот же код, я могу вручную создать многие из этих полей по своему усмотрению, но, как указано в вопросе, как я могу позволить бэкенд-пользователю делать это динамически. Я просмотрел немало других вопросов и не смог найти ничего, что помогло бы мне начать работу, поэтому любая помощь будет с благодарностью.

заранее большое спасибо!