我是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/>
<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: ------?????--------------');
}
?>
在标题中我应该写什么,以便重新加载后页面进入同一页面。但是没有插入/更新数据。
答案 0 :(得分:0)
您可以使用以下方式重定向到同一页面:
header('Location: '.$_SERVER['REQUEST_URI']);
exit();
来自PHP Manual:
'REQUEST_URI' 为访问此页面而给出的URI;例如,'/ index.html'。
要使header()
起作用,表单处理脚本需要在输出HTML之前运行,因此您需要将其挂钩到适当的WP动作挂钩(例如'wp')。表单将在模板或包含中,并且处理函数通过WordPress add_action()
挂钩。在保存到数据库之前,您还需要清理数据。