在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 }
答案 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 }