Как получить данные из формы?

Вопрос или проблема

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

/*
Plugin Name:  My Custorm Form
Plugin URI:   https://abcd.com
Description:  New plugin
Version:      0.1
Author:       RB
*/

function my_plugin_settings()
{
    add_menu_page( 'My Plugin',
                    'myCust Form',
                    'administrator',
                    'insert-my-plugin_bro',
                    'my_plugin_settings_page',
                    'dashicons-translation',
                    '60'
                );  
}
add_action('admin_menu', 'my_plugin_settings');


function my_plugin_options()
{
    register_setting('my-form-group','user_input_name');
}
add_action('admin_init', 'my_plugin_options');


function my_plugin_settings_page()
{
    echo "<h1>My Plugin Settings</h1>";
    ?>
    <div class="wrap">
        <form  action="options.php" method="post">
        <?php settings_fields('my-form-group'); ?>
            <b>Enter a name to display:</b><br/>
            <input type="text" name="default-image-url" value="" >

            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}
?>

Вы почти закончили. Я изменил ваш код. Вы можете попробовать следующее:

<?php
add_action('admin_menu', 'my_plugin_create_menu');

function my_plugin_create_menu() {

    //create new top-level menu
    add_menu_page( 'My Plugin',
                    'myCust Form',
                    'administrator',
                    'insert-my-plugin_bro',
                    'my_plugin_settings_page',
                    'dashicons-translation',
                    '60'
                );  

    //call register settings function
    add_action( 'admin_init', 'register_my_plugin_settings' );
}


function register_my_plugin_settings() {
    //register our settings
    register_setting( 'my-plugin-settings-group', 'display_name' );
}

function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>

<form method="post" action="options.php">
    <?php settings_fields( 'my-plugin-settings-group' ); ?>
    <?php do_settings_sections( 'my-plugin-settings-group' ); ?>
    <table class="form-table">
        <tr valign="top">
        <th scope="row">Enter a name to display</th>
        <td><input type="text" name="display_name" value="<?php echo esc_attr( get_option('display_name') ); ?>" /></td>
        </tr>
    </table>

    <?php submit_button(); ?>

</form>
</div>
<?php } ?>

У WordPress также есть документация по этой теме. Это должно помочь вам.

Ответ или решение

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

Теоретическая основа

WordPress предоставляет функциональные возможности для создания страниц настроек и управления пользовательскими данными через API настроек. Задача состоит в создании страницы настроек плагина, где пользователь сможет вводить и сохранять данные. На практике это достигается с помощью функций add_menu_page, register_setting, и settings_fields.

Пример

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

  1. Создание страницы меню: Функция add_menu_page добавляет новую страницу в администраторскую панель WordPress. Она принимает такие параметры, как название страницы, права доступа и функция, которая отвечает за вывод содержимого страницы.

  2. Регистрация настроек: Функция register_setting регистрирует опции, которые будут сохраняться в базе данных WordPress. Это позволяет WordPress автоматически обрабатывать сохранение данных.

  3. Создание формы: Форма генерируется с помощью settings_fields и do_settings_sections, что позволяет WordPress заниматься генерацией неполадок в безопасности, таких как Nonce-факторы, автоматически.

Применение

На основе приведенных выше теоретических знаний и примера, приведем подробный код вашей задачи:

<?php
/*
Plugin Name: My Custom Form
Plugin URI: https://abcd.com
Description: New plugin
Version: 0.1
Author: RB
*/

add_action('admin_menu', 'my_plugin_create_menu');

function my_plugin_create_menu() {
    add_menu_page('My Plugin', 'myCust Form', 'administrator', 'insert-my-plugin_bro', 'my_plugin_settings_page', 'dashicons-translation', '60');
    add_action('admin_init', 'register_my_plugin_settings');
}

function register_my_plugin_settings() {
    register_setting('my-plugin-settings-group', 'display_name');
}

function my_plugin_settings_page() {
?>
    <div class="wrap">
        <h1>Настройки моего плагина</h1>
        <form method="post" action="options.php">
            <?php settings_fields('my-plugin-settings-group'); ?>
            <?php do_settings_sections('my-plugin-settings-group'); ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Введите имя для отображения</th>
                    <td><input type="text" name="display_name" value="<?php echo esc_attr(get_option('display_name')); ?>" /></td>
                </tr>
            </table>
            <?php submit_button(); ?>
        </form>
    </div>
<?php
}
?>

Заключение

Данный код создает рабочий плагин, который добавляет страницу настроек в администраторскую панель WordPress. Пользователь может вводить данные в форму, которые сохраняются в базе данных WordPress, используя API настроек. Вы также можете обратиться к документации WordPress для расширенного ознакомления с возможностями настроек и опций.

Оцените материал
Добавить комментарий

Капча загружается...