我有一个自定义的用户元字段,我只想接受0到50之间的整数。我使用的输入字段为type="number"
, 我正在更新函数中检查输入是否正确。这是一种工作方式。。。如果输入不好,则不会保存该值。但您仍然会收到一条消息,上面写着“用户已更新”。我希望能够返回一个错误来解释输入的问题。我很难弄明白怎么做。。。我可以在更新功能中执行此操作吗?或者我有没有其他的方法?
以下是我目前掌握的情况:
这是我的输入框:
add_action(\'edit_user_profile\', \'my_plugin_user_settings\');
function my_plugin_user_settings($user){
?>
<table class="form-table">
<tr>
<th>
<label for="my-plugin-user-level">User Level</label>
</th>
<td>
<input type="number" name="my-plugin-user-level" value="<?php echo (get_user_meta($user->ID, \'my-plugin-user-level\', true) == NULL) ? \'0\' : get_user_meta($user->ID, \'my-plugin-user-level\', true); ?>">
</td>
</tr>
</table>
<?php
}
下面是我用来检查和更新用户元的内容:
add_action(\'edit_user_profile_update\', \'my_plugin_user_level_update\');
function my_plugin_user_level_update($user_id){
if(!current_user_can(\'edit_user\', $user_id)){
return false;
}
$value = intval($_POST[\'my-plugin-user-level\']);
if(!is_int($value) || $value < 0 || $value > 50){
return false; // I want to do some kind of error message here instead
}
return update_user_meta($user_id, \'my-plugin-user-level\', $value);
}