【问题标题】:Wordpress Custom Form Submission via admin-post.php stopped working通过 admin-post.php 提交的 Wordpress 自定义表单停止工作
【发布时间】:2017-07-25 16:06:16
【问题描述】:

我有一个带有自定义表单的页面,它通过 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' );

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

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

【问题讨论】:

标签: php wordpress forms


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    相关资源
    最近更新 更多