Отправить пользовательскую форму в плагине?

#php #wordpress

#php #wordpress

Вопрос:

У меня возникла проблема с созданием действия плагина пользовательской формы на второй странице.

У меня есть имя папки плагина demo1 с двумя разными страницами, похожими alert.php и demo1.php

Я включил форму demo1.php и хочу обработать эту форму alert.php там, где был объявлен запрос на вставку в базу данных.

Вот код

demo1.php

 function alert_options() 
{
    echo '<div class="wrap">
    <h2>Alert</h2>
    <form method="post" action="<?php echo get_admin_url()."admin-post.php"; ?>">
         <input type="hidden" name="action" value="submit-form" />    
         <input type="hidden" name="title" value="test" />
         <input type="hidden" name="content" value="test" />
        <p><input type="submit" name="Submit" value="Save Alert" /></p>
    </form>
    </div>';
}
  

alert.php

 add_action('admin_post_submit-form', '_handle_form_action');
function _handle_form_action()
{
    global $wpdb;
    $title=$_POST['title'];
    $content=$_POST['content'];
    $data=array('title'=>$title,'content'=>$content);
    $wpdb->insert( 'wp_alerts', $data);         
}
  

Комментарии:

1. пожалуйста, дайте быстрый ответ

2. вопрос не ясен .. какой вывод необходим.??

3. Привет, всякий раз, когда я хочу отправить форму, она переходит к localhost/test/Demo/wp-admin/admin-post.php эта ссылка и показывает пустой, но здесь запрос insert должен работать с данными post

4. Привет, Рупам, ты хочешь вызвать функцию alert_options() из alert.php верно ?

5. Привет, Ганапати, нет, у меня есть объявленная форма в alert_options(), которая содержит demo1.php и я хочу отправить форму с действием alert.php где был объявлен запрос insert.

Ответ №1:

Вы все делаете правильно,

включить alert.php путь к файлу на demo1.php

вот так..

demo1.php

 <?php 
// Include alert.php file
include_once 'alert.php';

function alert_options() { ?>
<div class="wrap">
    <h2>Alert</h2>
    <form method="post" action="<?php echo get_admin_url()."admin-post.php"; ?>">
         <input type="hidden" name="action" value="submit-form" />
         <input type="hidden" name="title" value="test" />
         <input type="hidden" name="content" value="test" />
        <p><input type="submit" name="Submit" value="Save Alert" /></p>

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

alert.php

 <?php
add_action('admin_post_submit-form', '_handle_form_action');
function _handle_form_action(){
    global $wpdb;
    $title=$_POST['title'];
    $content=$_POST['content'];
    $data=array('title'=>$title,'content'=>$content);
    $wpdb->insert( 'wp_alerts', $data);

    // redirect after insert alert
    wp_redirect(admin_url('admin.php?page=test-url'));
    die();


} 
  

Комментарии:

1. @Rupam … Рад помочь.. Это то, что вы хотели?