/**
  * Register actions and callbacks with WP Engine
  *
  * @since 1.0.0
  */
 public function register_actions()
 {
     $this->wp_facade->add_action('login_form', array(&$this, 'launchkey_form'));
     $this->wp_facade->add_action('wp_login', array(&$this, 'launchkey_pair'), 1, 2);
     $this->wp_facade->add_action('wp_logout', array(&$this, 'launchkey_logout'), 1, 2);
     $this->wp_facade->add_shortcode('launchkey_login', array($this, 'launchkey_shortcode'));
     if ($this->wp_facade->is_admin()) {
         $this->register_admin_actions();
     }
 }
 /**
  * Register actions and callbacks with WP Engine
  *
  * @since 1.0.0
  */
 public function register_actions()
 {
     $options = $this->wp_facade->get_option(LaunchKey_WP_Admin::OPTION_KEY);
     $this->wp_facade->add_action('login_form', array($this, 'show_native_login_hint'));
     if (LaunchKey_WP_Implementation_Type::WHITE_LABEL === $options[LaunchKey_WP_Options::OPTION_IMPLEMENTATION_TYPE]) {
         $this->wp_facade->add_action('login_form', array($this, 'show_powered_by'));
     }
     // Add the progress bar to the login form so the user is aware that the login is processing while
     $this->wp_facade->add_action('login_form', array($this, 'progress_bar'));
     // Register the authentication controller as the first filter in the chain
     $this->wp_facade->add_filter('authenticate', array($this, 'authentication_controller'), 0, 3);
     // Place this at the end of the auth chain to only worry about users that are otherwise considered
     // authenticated
     $this->wp_facade->add_filter('init', array($this, 'launchkey_still_authenticated_page_load'), 999, 3);
     // Register LaunchKey error codes as shake error codes to alert the user when authentication fails or errors
     $this->wp_facade->add_filter('shake_error_codes', array($this, 'register_shake_error_codes'));
     $this->wp_facade->add_filter('wp_logout', array($this, 'logout'));
     /**
      * Jack into the WordPress heartbeat process to log the user out based on server side de-orbit events
      * being processed.  The authentication check is performed on "heartbeat_send" filter so we ensure we verify
      * before that by using the "heartbeat_received" filter.
      *
      * @see wp_ajax_heartbeat
      */
     $this->wp_facade->add_filter('heartbeat_received', array($this, 'launchkey_still_authenticated_heartbeat'));
     if ($this->wp_facade->is_admin()) {
         $this->register_admin_actions();
     }
 }