2015-05-11 21 views

回答

8

https://wordpress.org/support/topic/what-is-the-status-of-user_status

的user_status場實際上是在數據庫中記錄。 一段時間以來一直如此。

你當然可以利用它爲自己的目的,但因爲它是 一種過時或unusued元素,它總是有可能會 從WordPress的的未來版本中刪除。甚至可以放回 工作。

不幸的是,WordPress不提供原生的在線/離線用戶狀態方法。你必須自己實現它。 一些想法如何實現它的權利,可以在該主題中找到: https://wordpress.stackexchange.com/q/34429/44533

另一種選擇是使用一些第三方插件(我不能提供意見的...)。

在我自己的解決方案中,我在wp_usermeta表中創建了user_login自定義字段,以檢查用戶狀態。

//Creating hooks for login/logout actions: 
add_action('clear_auth_cookie', array('WP_Plugin_Template','set_user_logged_out'), 10); 
add_action('wp_login', array('WP_Plugin_Template','set_user_logged_in'), 10, 2); 

//When hook is triggered, I'm using user_meta to update user status: 
function set_user_logged_in($user_login, $user) { 
    if(get_user_meta($user->ID, "logged_in", true) !== "true") 
    if(!update_user_meta($user->ID, 'logged_in', 'true')) 
    wp_die("Failed to add usermeta ", "Fatal"); 
} 
function set_user_logged_out() { 
    $user = wp_get_current_user(); 
    if(get_user_meta($user->ID, "logged_in", true) !== "false") 
    if(!update_user_meta($user->ID, 'logged_in', 'false')) 
    wp_die("Failed to add usermeta ", "Fatal"); 
} 

希望它有幫助。

+0

謝謝您的答覆。像usre-status字段一樣,我們只是在決定用戶活動。如果我們想要禁用用戶,我們做了user_status = 2。如果此字段未決定天氣用戶是否處於活動狀態,那麼負責的字段是什麼?請提供您的建議。 –

+0

@chandrasekhar更新了我的答案 – Samuel

+0

非常感謝您的回答。可能我錯誤地問了我的問題。我的問題是如何限制用戶註冊。如果我想阻止特定用戶,請執行此操作。請提供您的建議。 –

3

從其他線程我看到user_status實際上是一個「死」字段。它仍然在wp_user表中,但WP本身不再使用它。可能解釋了爲什麼wp_update_user沒有觸及它。

global $wpdb; 
$wpdb->query('UPDATE wp_users SET user_status = 1 WHERE ID = '.$current_user->ID); 

FOR MORE http://codex.wordpress.org/Class_Reference/wpdb

+0

非常感謝您的回答。可能我錯誤地問了我的問題。我的問題是如何限制用戶註冊。如果我想阻止特定用戶,請執行此操作。請提供您的建議。 –

+0

應該是用戶名或用戶名卷(roll是指訂閱者,編輯者) – channasmcs

+0

受用戶限制。不是由角色。你的建議會幫助我很多。 –

1

你應該使用add_user_metaWP Codex)和一個新的字段添加到您的用戶表。

似乎對我來說最乾淨的方式,如果user_status在未來的某個時間從數據庫中刪除,您將不會感到驚訝。

+0

謝謝你的回答。我贊同你。請告訴我如何阻止用戶註冊。我們讓user_status = 2直到現在阻止用戶。 –

+0

您可以使用'wp_login'上的掛鉤在登錄時運行自定義函數。這個函數可以檢查你的用戶定義的用戶元字段,它可以通過一個掛在user_register上的函數來設置(當用戶被創建時運行)它本身... – flomei

0

我可能會遲到,但這裏的user_status是不是死了,因爲它的聲音,它是用來mosty網絡/多點標記用戶爲垃圾郵件;-)

相關問題