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

Вы можете обрабатывать любую отправку формы с помощью хука 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
.......
}
Да, я имею в виду, что этот код нужно записать в файл functions.php
@Sabbir Ahmed, что вы имеете в виду здесь "Теперь в файле темы
functions.php": вы имеете в виду, что вам нужно добавить этот код в файлfunctions.phpв папку темы?