WordPress 怎么限制某些用户登录?

2022年10月9日 发表评论
腾讯云618会场:点击直达 阿里云618会场:点击直达
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

在一些情况下,比如某些用户损害了网站的利益,有不方便直接删除账号的,你可能就需要禁止他们登录网站,今天咱们就来介绍下wordpress如何添加禁止用户登录。

将下面代码添加到当前主题函数模板 functions.php中即可。

  1. //WordPress 禁止某些用户登录//在资料页面添加选项 function lxtx_rc_admin_init() { // 编辑用户资料 add_action( 'edit_user_profile', 'lxtx_rc_edit_user_profile' ); add_action( 'edit_user_profile_update', 'lxtx_rc_edit_user_profile_update' ); } add_action( 'admin_init', 'lxtx_rc_admin_init' ); //在个人资料页面添加一个复选框 function lxtx_rc_edit_user_profile() { if ( !current_user_can( 'edit_users' ) ) { return; } global $user_id;// 用户不能禁止自己 $current_user = wp_get_current_user(); $current_user_id = $current_user->ID; if ( $current_user_id == $user_id ) { return; } ?> <h3>权限设置</h3> <table class="form-table"> <tr> <th scope="row">禁止用户登录</th> <td><label for="lxtx_rc_ban"><input name="lxtx_rc_ban" type="checkbox" id="lxtx_rc_ban" <?php if (lxtx_rc_is_user_banned( $user_id )){echo 'checked="checked"';} ?> /> 请谨慎操作,选中则禁止!</label></td> </tr> </table> <?php } //添加一个函数来将这个选项的值保存到数据库中 function lxtx_rc_edit_user_profile_update() { if ( !current_user_can( 'edit_users' ) ) { return; } global $user_id; // 用户不能禁止自己 $current_user = wp_get_current_user(); $current_user_id = $current_user->ID; if ( $current_user_id == $user_id ) { return; } // 锁定 if( isset( $_POST['lxtx_rc_ban'] ) && $_POST['lxtx_rc_ban'] = 'on' ) { lxtx_rc_ban_user( $user_id ); } else { // 解锁 lxtx_rc_unban_user( $user_id ); } } //禁止用户 function lxtx_rc_ban_user( $user_id ) { $old_status = lxtx_rc_is_user_banned( $user_id ); // 更新状态 if ( !$old_status ) { update_user_option( $user_id, 'lxtx_rc_banned', true, false ); } } //解禁用户 function lxtx_rc_unban_user( $user_id ) { $old_status = lxtx_rc_is_user_banned( $user_id ); // 更新状态 if ( $old_status ) { update_user_option( $user_id, 'lxtx_rc_banned', false, false ); } } //判断用户是否被禁止 function lxtx_rc_is_user_banned( $user_id ) { return get_user_option( 'lxtx_rc_banned', $user_id, false ); } //阻止已禁止的用户登录 function lxtx_rc_authenticate_user( $user ) { if ( is_wp_error( $user ) ) { return $user; } // 如果用户被禁止,则返回错误提示 $banned = get_user_option( 'lxtx_rc_banned', $user->ID, false ); if ( $banned ) { return new WP_Error( 'lxtx_rc_banned', __( '抱歉,该用户被禁止登录!请联系站长解禁。', 'rc' ) ); } return $user; } //将该函数挂载到 wp_authenticate_user 钩子 add_filter( 'wp_authenticate_user', 'lxtx_rc_authenticate_user', 1 );

添加完成后,即可在后台“编辑用户”页面里看到增加的“禁止用户登录”选项了,选中后,则会禁止该用户登录。

腾讯云618活动:点击 https://2bcd.com/go/tx/进入最新活动页】领取8888元代金券,附云服务器价格表,2核2G4M轻量应用服务器99元1年,新老用户都可以买,可以享受1次续费99元一年、135元15个月、三年560元,MySQL云数据库59元1年起,2核2G3M配置82元1年,2核4G5M配置188元一年、3年900元,4核8G12M轻量服务器880元15个月,8核16G配置1890元15个月,更多16核32G28M带宽和云服务器CVM标准型S5、GPU服务器、CVM标准型SA2租用优惠价格如下,可以 点此进入最新活动页 查看当前最新的优惠券和活动信息。还可以领下10元无门槛代金券:点此直达 阿里云618活动:点击领取】5亿上云补贴和2088元满减代金券,阿里云服务器租用费用618活动最新价格表【点击了解】,最便宜轻量应用服务器2核2G3M带宽82元1年,ECS云服务器2核2G3M带宽99元一年,ECS u1实例2核4G5M带宽优惠价格199元一年,香港30M带宽轻量服务器24元1个月、288元一年,4核8G服务器706元一年,ECS云服务器4核16G10M带宽30元1个月、90元3个月,云服务器8核32G10M带宽109元1个月、327元3个月。阿里云产品最高降价55%,点击 https://2bcd.com/go/aliyun/ 进入最新活动页了解。 腾讯云续费贵,一次性买3年/5年,免得续费贵。3年轻量 2核2G 4M 560元;3年轻量 2核4G 5M 3年900元,活动入口:点击前往(下拉到“爆品专区”即可看到)。 老用户享新人优惠的方法:用Qq登录、1人可注册3个新账号/用家人朋友的身份注册新号(点击注册新账号)。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: