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

时间:2017-03-05 21:58:55

标签: 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' );

我已经尝试回应一些东西并且消耗掉脚本只是为了检查函数是否被触发但是这也没有用。

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

1 个答案:

答案 0 :(得分:0)

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

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