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

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

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

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

    實現方法:

    在主題根目錄下的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
    }
     
    //添加一個函數來將這個選項的值保存到數據庫中
    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 ); 
        // 更新狀態
        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 ); 
        // 更新狀態
        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', __('抱歉,您已被禁止登錄!請聯系站長解禁。', 'rc') );
        } 
        return $user;
    }
    //將該函數掛載到 wp_authenticate_user 鉤子
    add_filter( 'wp_authenticate_user', 'dj_rc_authenticate_user', 1 );
    
    

    保存即可。

    如何使用?

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

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

    注意:

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

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

    禁止指定用戶登錄(小黑屋) - wordpress開發-Npcink
    禁止指定用戶登錄(小黑屋) - wordpress開發-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('您已被關入小黑屋,請聯系管理員解封');
    	}
    }, 1 );

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

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

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

    教程

    導入xml文章,提示404

    2018-7-13 12:50:40

    資源

    phpstorm 激活 以及phpstorm安裝中文包

    2019-1-11 17:52:07

    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    0 條回復 A文章作者 M管理員
      暫無討論,說說你的看法吧
    ?
    個人中心
    購物車
    優惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 国产一区二区精品在线观看| 亚洲国产精品第一区二区三区| 亚洲国产av一区二区三区丶| 韩国女主播一区二区| 免费看一区二区三区四区| 国产日韩一区二区三免费高清 | 精品日韩在线视频一区二区三区| 亚洲av无码片区一区二区三区| 中文字幕一区二区三区在线播放| 国产乱码精品一区二区三区麻豆| 中文字幕日韩一区| 国产人妖视频一区二区 | 日本一区二区三区不卡视频| 国产亚洲一区二区手机在线观看| 偷拍精品视频一区二区三区| 免费精品一区二区三区在线观看 | 国产午夜精品一区二区三区| 精品3d动漫视频一区在线观看| 日本高清一区二区三区| 精品欧洲av无码一区二区14| 午夜DV内射一区二区| 亚洲色精品aⅴ一区区三区| 国产精品毛片一区二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产日本亚洲一区二区三区| 精品一区二区在线观看| 日本一区二区不卡在线| 国产精品毛片一区二区三区| 国产伦理一区二区| 波多野结衣AV无码久久一区| 狠狠综合久久AV一区二区三区| 成人一区二区免费视频| 久久亚洲综合色一区二区三区| 无码一区二区三区| 亚洲福利秒拍一区二区| 亚洲综合一区国产精品| 国产成人久久一区二区不卡三区 | 亚洲伦理一区二区| 中文字幕无线码一区二区| 色欲AV蜜桃一区二区三| 高清无码一区二区在线观看吞精|