Как получить выгоду от пользователя в настраиваемом плагине WordPress?

Я создал плагин для wordpress, который показывает форму пользователям с помощью шорткода, я хочу отправить форму, получить значения и сохранить в определенной таблице, которая создается при активации моего плагина. Теперь я не знаю, куда нужно отправить эту форму. Я определяю подменю для плагина в панели администратора (и устанавливаю действие формы для этого ярлыка подменю), чтобы получить это значение и сохранить в базе данных, но только те, кто вошел в систему, могут отправить эту форму.

Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
1
0
523
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете обрабатывать любую отправку формы с помощью хука template_redirect, если ваша форма находится во внешнем интерфейсе. Если ваша форма находится в бэкэнде, вы можете использовать хук admin_init

Скажем, код вашей формы выглядит так, как в интерфейсе

<form method = "post">
    <input type = "text" name = "input_1"/>
    <input type = "number" name = "input_2"/>
    <?php wp_nonce_field( 'name_of_your_nonce_action', 'name_of_your_nonce_field' ) ?>
    <input type = "submit" name = "submit_form" value = "Submit" />
</form>

Теперь в файле темы functions.php вы можете обрабатывать эту форму как

<?php

add_action( 'template_redirect', 'wp1213_handle_custom_form', 11 );

function wp1213_handle_custom_form() {
    if ( ! isset( $_POST['submit_form'] ) ) {
        return;
    }

    if ( ! wp_verify_nonce( $_POST['name_of_your_nonce_field'], 'name_of_your_nonce_action' ) ) {
        return;
    }

    // Then you can handle all post data ($_POST) and save those data in db
    .......
}

@Sabbir Ahmed, что вы имеете в виду здесь "Теперь в файле темы functions.php": вы имеете в виду, что вам нужно добавить этот код в файл functions.php в папку темы?

Jessica Chambers 22.09.2019 19:09

Да, я имею в виду, что этот код нужно записать в файл functions.php

Sabbir Ahmed 23.09.2019 10:09

Другие вопросы по теме