【发布时间】:2018-02-02 17:51:56
【问题描述】:
我的一个客户正在使用 Woocommerce 运行一个 wordpress 网站。我最近被要求以他们的用户之一登录,以便复制问题。
我发现我可以输入 /wp-admin ,它只会带我进入完整的管理面板,并且我拥有与管理员相同的所有菜单项。这显然非常严重,因为如果任何用户发现了这一点,他们可以根据需要关闭网站。
为了阻止它们,我在 functions.php 文件中放置了以下脚本:
// Redirect non-admins away from wp-admin
add_action( 'init', 'blockusers_init' );
function blockusers_init() {
$current_user = wp_get_current_user();
if ( is_admin() && ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
wp_redirect( home_url() );
exit;
}
}
以具有“订阅者”角色的用户身份登录后,如果我在网站的前端,current_user_can('administrator') 返回 false ,如果我转到 /wp-admin,它会返回 true。
由于当前用户只是一个订阅者,我认为它应该在任何地方都返回 false。
我对此有点坚持......我不知道接下来应该看什么。 (我尝试了通常的方法,例如禁用所有插件,但问题仍然存在)。你们知道我接下来应该尝试什么吗?
【问题讨论】:
-
您是否点击了管理面板并检查了它实际上是管理面板而不是个人用户设置管理面板?
-
您是否检查了常规设置中的“新用户默认角色”选项?