在插件上提交自定义表单?

时间:2016-10-07 05:56:43

标签: php wordpress

我在第二页上制作自定义表单插件操作时遇到问题。

我有一个插件文件夹名称demo1,其中有两个不同的页面,例如alert.phpdemo1.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 个答案:

答案 0 :(得分:0)

你做得对,

在demo1.php上包含alert.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();


}