针对非管理员身份验证用户的WordPress操作ADMIN_POST-表单提交

时间:2019-09-12 作者:Rowayda Khayri

我正在尝试使用以下方式提交表单:

`admin_post` && `admin_post_nopriv` 
行动。这是用户搜索的快捷码:

add_shortcode( \'search_users\', \'search_users\' );
function search_users( $atts ,$content = null ) {
ob_start();?>
<div class="search-box-main-container">
    <form method="POST" id="sul-searchform" action="<?php echo home_url() . \'/wp-admin/admin-post.php\' ?>" class="search-form">
        <div class="search-box-container">
            <input type="text" class="search-box" name="search" id="sul-s"/>
        </div>

        <div class="submit-container">
            <input type="hidden" name="action" value="search_users_action">
            <input type="submit" class="search-box-submit" name="submit" id="sul-searchsubmit"
                   value="Search"/>
        </div>
    </form>
</div>

<?php
$output = ob_get_contents();
ob_end_clean();
return  $output;
}
以下是行动:

add_action( \'admin_post_search_users_action\', \'list_users\' );
add_action( \'admin_post_nopriv_search_users_action\', \'list_users\' );
function list_users() {
$search = (isset($_POST[\'search\'])) ?sanitize_text_field($_POST[\'search\']) : false;
wp_redirect( home_url() . \'/user-listing?search=\' . $search );
}
它们仅适用于管理员用户和未经身份验证的用户。对于经过身份验证的非管理员用户,尚未调用操作。它只是重定向到主页!

是否有其他操作来处理经过身份验证的非管理员用户?

1 个回复
SO网友:Rowayda Khayri

我发现这个问题是由于我网站上的另一个插件引起的。停用后,一切正常。所以,行动admin_post 用于所有经过身份验证的用户(管理员和非管理员)。

相关推荐

Gantry4中的GravityForms不会显示

在将表单插入页面之前,在Gantry4模板中实现GravityForms效果良好。表单(包括条件)不会显示在页面的公共视图中。经过7个小时的研究,问题似乎来自主题(甘特瑞4),因为将其更改为另一个主题确实会显示表单,但GravityForms的支持团队没有给出任何直接的解决方案,他们宁愿建议更改主题。尝试将主题更改为Gantry5似乎需要几天的时间,而且无法确定问题是否会得到解决(因为问题可能是由于使用了mootools),而且由于控制台上没有出现错误,几乎不可能找到真正的原因。使用控制台进行一些测试,这