對(duì)于會(huì)員制的網(wǎng)站,盡可能避免多人同時(shí)登錄一個(gè)會(huì)員賬號(hào)應(yīng)該是比較需要的,倡萌此前已經(jīng)分享過?Prevent Concurrent Logins?和?Wp Single Login?兩個(gè)插件,都可以滿足需求,只是這兩個(gè)插件很久沒有更新了,不知道和新版的WP兼容如何,今天倡萌再推薦一個(gè)類似插件?Loggedin,和之前兩個(gè)不太一樣的是,它支持設(shè)置最大活躍登錄數(shù),也就是一個(gè)賬號(hào)允許多少個(gè)客戶端同時(shí)登錄,還可以通過鉤子排除掉一些用和用戶角色。已測(cè)試兼容 WordPress 5.0+
Loggedin 使用很簡單,直接在后臺(tái)插件安裝界面搜索?Loggedin 即可在線安裝,或者到官方下載?https://wordpress.org/plugins/loggedin/,啟用插件后,在 設(shè)置 – 常規(guī) 界面,就可以看到設(shè)置選項(xiàng):
一旦有多個(gè)人(客戶端)登錄同一個(gè)賬號(hào),超過了設(shè)定的活躍登錄數(shù),就會(huì)出現(xiàn)如下提示:
倡萌已經(jīng)該插件漢化,點(diǎn)擊下載簡體中文包,解壓后將里面的文件上傳到 wp-content/languages/plugins 目錄即可生效,同時(shí)避免插件升級(jí)時(shí)丟失語言。
下面分享下官方提供的排除用戶和用戶角色的代碼示例,按照需求修改好代碼,然后添加到主題的 functions.php 文件即可:
排除某些用戶
//排除某些用戶,不受最大活躍登錄數(shù)限制
function f_loggedin_bypass_users( $bypass, $user_id ) {
// 在 array( ) 中輸入用戶id,多個(gè)id用英文逗號(hào)隔開
$allowed_users = array( 1, 2, 3, 4, 5 );
return in_array( $user_id, $allowed_users );
}
add_filter( 'loggedin_bypass', 'f_loggedin_bypass_users', 10, 2 );
排除某些用戶角色
//排除某些用戶角色,不受最大活躍登錄數(shù)限制
function f_loggedin_bypass_roles( $prevent, $user_id ) {
// 在 array( ) 中輸入用角色名,多個(gè)用戶角色使用英文逗號(hào)隔開
$allowed_roles = array( 'administrator', 'editor' );
$user = get_user_by( 'id', $user_id );
$roles = ! empty( $user->roles ) ? $user->roles : array();
return ! empty( array_intersect( $roles, $allowed_roles ) );
}
add_filter( 'loggedin_bypass', 'f_loggedin_bypass_roles', 10, 2 );
聲明:本文為 倡萌@WordPress大學(xué) 原創(chuàng),未經(jīng)許可,禁止轉(zhuǎn)載或他用!







好用是好用,然而只對(duì)用戶名登錄有用,并不能限制第三方賬號(hào)登錄,比如QQ……
第三方賬號(hào)登錄本身就對(duì)同時(shí)登錄有一定的限制了,不同的人使用同一個(gè)QQ、微信、微博同時(shí)登錄的可能性極低,而且這些賬號(hào)一般不可能隨隨便便進(jìn)行分享的
Loggedin 用了這個(gè)插件,2分鐘左右會(huì)話就過期,然后就需要重新登錄一次,好煩,好煩,好煩,停用插件后,問題就好了。腦殼痛。
感謝反饋,由于插件不是我開發(fā)的,不是很清楚具體的情況,如果你有時(shí)間,可以給作者反饋你遇到的問題 https://wordpress.org/support/plugin/loggedin/
限制用戶多臺(tái)設(shè)備登陸的插件還是有用的,在一些會(huì)員站點(diǎn)里,會(huì)有分享自己的賬號(hào)給別人使用的情況。使用了這一類的插件后,兩人就不可以同時(shí)在線了。