2013-06-01 55 views
2

請問如何在登錄時檢查用戶狀態?如何在登錄wordpress時檢查用戶狀態

我在wp_users表中添加了一個名爲user_flag的新字段來控制用戶狀態。 user_flag的值爲activedeactivate

我要檢查,當用戶登錄該字段的值。

  • 如果值是active,然後用戶可以進行登錄,
  • 但如果值是deactivate,那麼用戶無法登錄,和將顯示消息通知用戶他的帳戶已停用,並且他需要聯繫管理員以重新激活帳戶才能登錄。

我看着wp-login.php文件,但不知道在哪裏寫代碼來檢查上面的邏輯,你可以請指教我在哪裏在登錄時要檢查user_flag

非常感謝。

回答

6

停止嘗試修改核心代碼並學習使用可插拔體系結構。也停止修改核心數據庫表。您可以將add_user_meta的usermeta表中的用戶的其他字段存儲起來,並使用get_user_meta檢索它們。如果你開始修改核心代碼和數據庫表,你將永遠無法升級wordpress。

要回答你的問題,使用類似中的functions.php以下

add_filter('wp_authenticate_user', function($user) { 
    if (get_user_meta($user->ID, 'user_flag', true) == 'active') { 
     return $user; 
    } 
    return new WP_Error('Account Not Active...'); 
}, 10, 2); 

https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_authenticate_user

+0

感謝您的回覆羅布,其工作的罰款。你節省了我的時間.. –

相關問題