管理员在编辑用户页面上发送的Wordpress获取发布变量

时间:2018-11-19 22:38:50

标签: php wordpress post

我想在我的插件(或functions.php)中检测是否刚刚发送了一个变量POST。 我的意思是,当管理员更改用户角色时,将发送ROLE变量。

<select name="role" id="role">
<option value="shop_manager">Shop manager</option>
<option value="customer">Customer</option>
<option selected="selected" value="level_1">Level 1</option>
<option value="subscriber">Subscriber</option>
<option value="contributor">Contributor</option>
<option value="author">Author</option>
<option value="editor">Editor</option>
<option value="administrator">Administrator</option><option value="">— No role for this site —</option>

add_action('edit_user_profile', 'CheckPost', 10, 1);//loading on user-edit.php

$rolemodified = $_POST['role'];
function CheckPost(){
if( !empty($rolemodified) ){ echo "ROLE: $rolemodified ";  } 
}

我想检索此$ _POST ['role'];或在警报中显示

echo "<script type='text/javascript'>alert('post:');</script>";

谢谢

1 个答案:

答案 0 :(得分:0)

我认为这是一个variable scoping问题。

$rolemodified在您的函数中不可用。

尝试将其添加为函数中的全局变量,如下所示:

add_action('edit_user_profile', 'CheckPost', 10, 1);//loading on user-edit.php

$rolemodified = $_POST['role'];
function CheckPost() {
    global $rolemodified; // or set $rolemodified here
    if( !empty($rolemodified) ){ echo "ROLE: $rolemodified ";  } 
}

编辑:我刚刚注意到您还使用了edit_user_profile钩子。您将需要使用edit_user_profile_update钩子来获取帖子值。