我试图制作一个私有表单,将数据提交到外部数据库中,以便以后可以从数据库中提取并在页面上显示记录。到目前为止,我一直在尝试创建一个插件,允许我在wp admin中填写表单,但当我尝试将数据发布到另一个页面以存储数据时,我得到一个“您没有足够的权限访问此页面”错误
我基本上是在尝试创建一个库存管理系统,以便在我拥有的多个网站上显示产品。
对于任何可能帮助我找到解决方案的进一步问题,我将尽快作出回应。感谢您提供的任何帮助。
下面是我在代码中尝试做的一个示例
<?php
add_action(\'admin_menu\', function() {
add_options_page(\'Add an Item\', \'Add an Item\', \'administrator\', __FILE__, function() {
?>
<div class="wrap">
<form action="http://some/url/additem.php" method="POST">
<input type="text" value="nothing" />
<input type="text" value="nothing" />
<input type="submit" value="Send" />
</form>
</div>
)};
最合适的回答,由SO网友:Warwick 整理而成
导入到外部DB的代码是否需要位于不同的页面上?向回调函数添加一个检查表单是否已提交的条件也可以。
然后表单将数据发布回自身,检查表单是否已提交,并运行导入脚本而不是显示表单。
这样就不会出现权限错误。
add_action(\'admin_menu\', function() {
add_options_page(\'Add an Item\', \'Add an Item\', \'administrator\', __FILE__, function() {
if(isset($_POST[\'submit\']) && $_POST[\'submit\'] == \'Send\'){
import_items();
}else
add_item_form();
)};
function add_item_form(){
<div class="wrap">
<form method="POST">
<input type="text" value="nothing" />
<input type="text" value="nothing" />
<input name="submit" type="submit" value="Send" />
</form>
</div>
}
function import_items(){
//Your code from http://some/url/additem.php for importing items to the external DB goes here.
}