禁止指定用戶登錄(小黑屋) - wordpress開發(fā)

    一些多用戶的網站上總會有一些用戶不怎么受歡迎,得想個辦法禁止這些用戶登錄,如果您的多用戶會員制網站還沒有小黑屋功能,那么來看看這一篇wordpress開發(fā)教程吧

    在一些多用戶的網站上總會有一些用戶不怎么受歡迎,得想個辦法禁止這些用戶登錄,如果您的多用戶會員制網站還沒有小黑屋功能,那么來看看這一篇wordpress開發(fā)教程吧。

    • 方法來源:群網友 - 小秋喲(meifa@188.com)
    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)
    背景圖片

    實現(xiàn)方法:

    在主題根目錄下的functions.php文件的<?php下添加以下代碼:

    //在資料頁面添加選項
    function dj_rc_admin_init(){ 
        // 編輯用戶資料
        add_action( 'edit_user_profile', 'dj_rc_edit_user_profile' );
        add_action( 'edit_user_profile_update', 'dj_rc_edit_user_profile_update' ); 
    }
    add_action('admin_init', 'dj_rc_admin_init' );
     
    //在個人資料頁面添加一個復選框
    function dj_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="dj_rc_ban"><input name="dj_rc_ban" type="checkbox" id="dj_rc_ban" 
            <?php if (dj_rc_is_user_banned( $user_id )){echo 'checked="checked"';} ?> /> 勾起來,盤Ta,什么玩意兒……</label></td>
        </tr>
        </table>
        <?php
    }
     
    //添加一個函數(shù)來將這個選項的值保存到數(shù)據庫中
    function dj_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['dj_rc_ban'] ) && $_POST['dj_rc_ban'] = 'on' ) {
            dj_rc_ban_user( $user_id );
        } else { // 解鎖
            dj_rc_unban_user( $user_id );
        } 
    }
     
    //禁止用戶
    function dj_rc_ban_user( $user_id ) { 
        $old_status = dj_rc_is_user_banned( $user_id ); 
        // 更新狀態(tài)
        if ( !$old_status ) {
            update_user_option( $user_id, 'dj_rc_banned', true, false );
        }
    }
     
    //解禁用戶
    function dj_rc_unban_user( $user_id ) { 
        $old_status = dj_rc_is_user_banned( $user_id ); 
        // 更新狀態(tài)
        if ( $old_status ) {
            update_user_option( $user_id, 'dj_rc_banned', false, false );
        }
    }
     
    //判斷用戶是否被禁止
    function dj_rc_is_user_banned( $user_id ) {
        return get_user_option( 'dj_rc_banned', $user_id, false );
    }
     
    //阻止已禁止的用戶登錄
    function dj_rc_authenticate_user( $user ) { 
        if ( is_wp_error( $user ) ) {
            return $user;
        } 
        // 如果用戶被禁止,則返回錯誤提示,這里是顯示給登錄用戶看的,錯誤提示可根據自己的喜好修改。
        $banned = get_user_option( 'dj_rc_banned', $user->ID, false );
        if ( $banned ) {
            return new WP_Error( 'dj_rc_banned', __('抱歉,您已被禁止登錄!請聯(lián)系站長解禁。', 'rc') );
        } 
        return $user;
    }
    //將該函數(shù)掛載到 wp_authenticate_user 鉤子
    add_filter( 'wp_authenticate_user', 'dj_rc_authenticate_user', 1 );
    
    

    保存即可。

    如何使用?

    在“所有用戶”中找到您需要禁止登錄的用戶,在其“個人資料”底部有相關選項:

    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)
    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)

    注意:

    • 您無法禁止管理員登錄
    • qq登錄,不兼容cookie

    還有一個問題,就是一個賬號同時被多個用戶登錄,目前可以通過這款wordpress插件解決:

    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)-Npcink
    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)-Npcink

    阻止雙重登錄 - 保護您的wordpress會員網站

    B2用戶:

    add_filter( 'rest_api_init', function($wp_rest_server){
    	$array = array(3,9);//關入小黑屋用戶id,英文,隔開
        $user_id = get_current_user_id();
    	if(in_array($user_id,$array)){
            $allow_cookie = apply_filters('b2_login_cookie', b2_get_option('normal_login','allow_cookie'));
            if((string)$allow_cookie === '1'){
                wp_logout();
            }
    		wp_die('您已被關入小黑屋,請聯(lián)系管理員解封');
    	}
    }, 1 );

    如果您需要給您的訪客添加自定義頭像功能,那么可以看看這篇wordpress開發(fā)教程:

    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)-Npcink
    禁止指定用戶登錄(小黑屋) - wordpress開發(fā)-Npcink

    Simple Local Avatars - 簡單的本地頭像wordpress插件

    教程

    怎么控制最小和最大評論字數(shù)? - WordPress教程

    2020-8-13 16:22:21

    網站

    網頁時鐘

    2021-9-22 20:08:32

    ??
    Npcink上的部份代碼及教程來源于互聯(lián)網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發(fā)送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    0 條回復 A文章作者 M管理員
      暫無討論,說說你的看法吧
    ?
    個人中心
    購物車
    優(yōu)惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 丰满岳乱妇一区二区三区| 久久久久女教师免费一区| 在线播放国产一区二区三区| 亚洲精品色播一区二区| 一区免费在线观看| 国产福利日本一区二区三区| 久久无码人妻精品一区二区三区 | 亚洲国产精品无码第一区二区三区| 日韩AV在线不卡一区二区三区| 亚洲变态另类一区二区三区| 亚洲A∨无码一区二区三区 | 国产在线精品一区二区在线看| 亚洲欧美日韩国产精品一区| 国内精品一区二区三区最新| 久久久国产精品无码一区二区三区| 亚洲色精品VR一区区三区| 国产精品夜色一区二区三区 | 视频一区在线播放| 国产一区中文字幕| 国产午夜精品一区二区三区不卡| 美女啪啪一区二区三区| 老熟女五十路乱子交尾中出一区| 无码人妻精品一区二区三区99性| 日本无卡码免费一区二区三区| 精品女同一区二区三区在线| 无人码一区二区三区视频| 久久无码AV一区二区三区| 日韩伦理一区二区| 国产成人精品一区二区三区免费 | 国产内射999视频一区| 自拍日韩亚洲一区在线| 国产伦精品一区二区三区视频猫咪 | 无码一区二区三区在线| 国产成人精品一区在线| 国产精品一区二区无线| 无码人妻精品一区二区三区久久 | 一区二区三区www| 国产SUV精品一区二区四| 日韩免费视频一区二区| 视频一区在线免费观看| 国模精品一区二区三区视频|