php - 通过 admin-post.php 提交 WordPress 自定义表单停止工作

标签 php wordpress forms

我有一个带有自定义表单的页面,它通过 admin-post.php 发送帖子数据。几天前这曾经工作得很好,但现在看来它甚至没有触发该功能。这是代码。 我在同一网站上还有其他一些类似的表单,但它们都已停止工作。

<form action="<?php echo esc_url( admin_url('admin-post.php') ); ?>" method="POST">
    <input type="hidden" name="action" value="create_user">
    <?php wp_nonce_field('create_user'); ?>
    <input type="text" class="form-control" name="first_name" placeholder="First Name" required/>
    <input type="text" class="form-control" name="last_name" placeholder="Last Name" required/>
</form>

在我的functions.php中我有这个

function create_user() {
    $retrieved_nonce = $_POST['_wpnonce'];
    if (!wp_verify_nonce($retrieved_nonce, 'create_user' ) ){
        $status = 'failed';
    }else{

      // My Code goes here
    }
}
add_action( 'admin_post_create_user', 'estudy_create_user' );

我尝试过回显某些内容并终止脚本,只是为了检查该函数是否被触发,但这也不起作用。

任何正确方向的帮助都会很棒:)

最佳答案

经过一番挖掘,我发现 admin-post.php 用于管理端表单(这应该是显而易见的)。当我在前端表单上使用它时。

前端表单的解决方案非常相似,使用admin-ajax.php代替admin-post.php。其次,将 admin_post_* 钩子(Hook)替换为 wp_ajax_* 钩子(Hook)。对于前端访客用户,请使用 wp_ajax_nopriv_*

关于php - 通过 admin-post.php 提交 WordPress 自定义表单停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42614582/

相关文章:

php - 需要对同一个表上的多个连接的 SQL 查询执行数学运算

javascript - 如何在以下情况下禁用 AngularJS 中的提交?

python - Mechanize 将登录表单从 http 提交到 https

php - 如何进行 SimpleDB 备份?

php - 在 CakePHP View 中查找未使用的变量

javascript - 如何使用静态 block 实现整页滚动?

css - Flash 和 HTML 菜单的问题

php - 如何使用 php 搜索文本 if ($text contains "World")

php - 为什么我的 foreach 循环不显示我的 mysql 数据?

javascript - 更改html表单值然后提交到网页