function __construct()
 {
     //Add tasks that need to be executed at wp-loaded time
     global $aio_wp_security;
     //Handle the rename login page feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_rename_login_page') == '1') {
         include_once AIO_WP_SECURITY_PATH . '/classes/wp-security-process-renamed-login-page.php';
         $login_object = new AIOWPSecurity_Process_Renamed_Login_Page();
         AIOWPSecurity_Process_Renamed_Login_Page::renamed_login_init_tasks();
     }
     //For site lockout feature (ie, maintenance mode). It needs to be checked after the rename login page
     if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') {
         if (!is_user_logged_in() && !current_user_can('administrator') && !is_admin() && !in_array($GLOBALS['pagenow'], array('wp-login.php'))) {
             self::site_lockout_tasks();
         }
     }
 }
 function __construct()
 {
     global $aio_wp_security;
     if ($aio_wp_security->configs->get_value('aiowps_remove_wp_generator_meta_info') == '1') {
         add_filter('the_generator', array(&$this, 'remove_wp_generator_meta_info'));
     }
     //For the cookie based brute force prevention feature
     $bfcf_secret_word = $aio_wp_security->configs->get_value('aiowps_brute_force_secret_word');
     if (isset($_GET[$bfcf_secret_word])) {
         //If URL contains secret word in query param then set cookie and then redirect to the login page
         AIOWPSecurity_Utility::set_cookie_value($bfcf_secret_word, "1");
         AIOWPSecurity_Utility::redirect_to_url(AIOWPSEC_WP_URL . "/wp-admin");
     }
     //For user unlock request feature
     if (isset($_POST['aiowps_unlock_request']) || isset($_POST['aiowps_wp_submit_unlock_request'])) {
         nocache_headers();
         remove_action('wp_head', 'head_addons', 7);
         include_once AIO_WP_SECURITY_PATH . '/other-includes/wp-security-unlock-request.php';
         exit;
     }
     if (isset($_GET['aiowps_auth_key'])) {
         //If URL contains unlock key in query param then process the request
         $unlock_key = strip_tags($_GET['aiowps_auth_key']);
         AIOWPSecurity_User_Login::process_unlock_request($unlock_key);
     }
     //For 404 IP lockout feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_404_IP_lockout') == '1') {
         if (!is_user_logged_in() || !current_user_can('administrator')) {
             $this->do_404_lockout_tasks();
         }
     }
     //For login captcha feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1') {
         if (!is_user_logged_in()) {
             add_action('login_form', array(&$this, 'insert_captcha_question_form'));
         }
     }
     //For lost password captcha feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_lost_password_captcha') == '1') {
         if (!is_user_logged_in()) {
             add_action('lostpassword_form', array(&$this, 'insert_captcha_question_form'));
             add_action('lostpassword_post', array(&$this, 'process_lost_password_form_post'));
         }
     }
     //For registration page captcha feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_registration_page_captcha') == '1') {
         if (!is_user_logged_in()) {
             add_action('register_form', array(&$this, 'insert_captcha_question_form'));
         }
     }
     //For comment captcha feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha') == '1') {
         add_action('comment_form_after_fields', array(&$this, 'insert_captcha_question_form'), 1);
         add_action('comment_form_logged_in_after', array(&$this, 'insert_captcha_question_form'), 1);
         add_filter('preprocess_comment', array(&$this, 'process_comment_post'));
     }
     //For rename login page feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_rename_login_page') == '1') {
         include_once AIO_WP_SECURITY_PATH . '/classes/wp-security-process-renamed-login-page.php';
         $login_object = new AIOWPSecurity_Process_Renamed_Login_Page();
         AIOWPSecurity_Process_Renamed_Login_Page::renamed_login_init_tasks();
     }
     //For site lockout feature (ie, maintenance mode)
     if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') {
         if (!is_user_logged_in() && !current_user_can('administrator') && !is_admin() && !in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))) {
             $this->site_lockout_tasks();
         }
     }
     //For feature which displays logged in users
     $this->update_logged_in_user_transient();
     //For block fake googlebots feature
     if ($aio_wp_security->configs->get_value('aiowps_enable_block_fake_googlebots') == '1') {
         include_once AIO_WP_SECURITY_PATH . '/classes/wp-security-bot-protection.php';
         AIOWPSecurity_Fake_Bot_Protection::block_fake_googlebots();
     }
     //For 404 event logging
     if ($aio_wp_security->configs->get_value('aiowps_enable_404_logging') == '1') {
         add_action('wp_head', array(&$this, 'check_404_event'));
     }
     //Add more tasks that need to be executed at init time
 }