WP header 重新加载

WP header reload

我是 wordpress 插件开发的新手。我编写了一些代码并且对制作菜单有了足够的了解 -- sub-menu 等。在一个 sub-menu 页面中,我制作了一个表单,用于更改数据库中我的 table 之一的电子邮件 ID。但是要停止在页面 reload/refresh/page-back 上插入数据,我必须提供一个 header 函数,但我无法做到这一点。

更简单地说,我只想在页面刷新时停止 wordpress 插件到 table 中的 inserting/update 数据。请阅读下面我的编码。

<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: ------?????--------------');
}

?>

在 header 中,我应该写些什么才能使页面在重新加载后回到同一页面。但是没有 inserting/updating 数据。

您可以重定向到同一页面:

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

来自PHP Manual

'REQUEST_URI' The URI which was given in order to access this page; for instance, '/index.html'.

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