Wordpress admin-post.php仅在role = admin时工作,但需要用户角色才能工作

时间:2018-02-14 10:14:49

标签: php wordpress

在Wordpress网站上,我在我的网站上使用admin-post.php格式(代码如下)触发提交表单时的操作,我可以处理$ _POST项目并设置一些cookie。如果我将我的帐户角色设置为admin,这可以正常工作,但如果我只是将角色更改为订阅者则不起作用(我需要我的订阅者才能提交此表单)。作为订阅者角色,而不是运行admin-post.php,它只是将我重定向到网站主页,即使我仍然登录。所以它的行为就像admin-post.php不能作为订阅者角色执行,但我不是确定如何改变这个...也许我需要在wp-admin目录中使用某种.htaccess代码?我很难过......有什么想法吗?

< form method='post' action='/wp-admin/admin-post.php'>

< input type='hidden' name='action' value='run_my_wp_action'   >
//Other form items removed

<input type='submit' name='submit' value='Next' >
</form >

我的WP插件中的PHP

add_action( 'admin_post_nopriv_run_my_wp_action', 'my_wp_action' );     
add_action( 'admin_post_input_run_my_wp_action', 'my_wp_action' );          

function my_wp_action() {   //code  }

1 个答案:

答案 0 :(得分:0)

尝试使用wp_ajax。

add_action( 'wp_ajax_my_wp_action', 'my_wp_action' );          
add_action( 'wp_ajax_nopriv_my_wp_action', 'my_wp_action' ); 

function my_wp_action() {   //code  }