WP标头重新加载

时间:2015-09-29 12:12:21

标签: php wordpress header wordpress-plugin reload

我是wordpress插件开发的新手。我做了一些编码并且对制作菜单 - 子菜单等有了足够的了解。在一个子菜单页面中,我创建了一个表单,用于更改数据库mytable中的一个电子邮件ID。但是要在页面重新加载/刷新/页面返回时停止数据插入,我必须提供标题功能,但我无法做同样的事情。

更简单的说法我只想停止wordpress插件在页面刷新时插入/更新表中的数据。请阅读下面的编码。

<form method="post" enctype="multipart/form-data">
    <label><b>Mention Your Email Here :</b></label>
    <input type="email" name="email" id="email" placeholder="Enter your email here"/><br/><br/>
    <input type="submit" name="set" id="set" value="CHANGE"/>
</form>

<br/><br/>

<u>NOTE</u> :<br/>
1. Please write your email id in the field given above. This email id will be used to get emails of visitors contact query.
<br/>
2. Copy the shortcode given below to show the form on the website.<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<b>[myplugin]</b>

<?php

//getting the form email id value

if (isset($_POST['set']) && !empty($_POST['email'])) {
    $email = $_POST['email'];
    global $wpdb;
    $table_name = $wpdb->prefix . "myemail";
    $result = $wpdb->update($table_name, array('id' => '1', 'email' => $email), array('id' => '1'));

    if ($result > 0) {
        echo "<script>alert('Successfully Updated');</script>";
    } else {
        exit(var_dump($wpdb->last_query));
    }

    $wpdb->flush();
} else {
    header('location: ------?????--------------');
}

?>

在标题中我应该写什么,以便重新加载后页面进入同一页面。但是没有插入/更新数据。

1 个答案:

答案 0 :(得分:0)

您可以使用以下方式重定向到同一页面:

header('Location: '.$_SERVER['REQUEST_URI']);
exit();

来自PHP Manual

  

'REQUEST_URI'   为访问此页面而给出的URI;例如,'/ index.html'。

要使header()起作用,表单处理脚本需要在输出HTML之前运行,因此您需要将其挂钩到适当的WP动作挂钩(例如'wp')。表单将在模板或包含中,并且处理函数通过WordPress add_action()挂钩。在保存到数据库之前,您还需要清理数据。