/** * Performs ajax signup. * @since 1.0 */ public function ajax() { header('Content-Type: application/json'); if (get_option('addon_login_crossdomain', false)) { header('Access-Control-Allow-Origin: *'); } try { // Method validation if ('POST' != $_SERVER['REQUEST_METHOD']) { throw new Exception('Invalid request method.'); } // Token validation if (Request::input('_token') != LoginPage::get_token()) { throw new Exception('Invalid security token.'); } $userdata = $this->generate_userdata(); // Run validations $errors = $this->validate($userdata); do_action('register_post', $userdata['user_login'], $userdata['user_email'], $errors); $errors = apply_filters('registration_errors', $errors, $userdata['user_login'], $userdata['user_email']); if (!empty($errors->errors)) { $raw = []; foreach ($errors->get_error_messages() as $message) { $raw[] = $message; } echo json_encode(['errors' => $raw, 300]); wp_die(); } // Insert other $userdata['ID'] = wp_insert_user($userdata); do_action('user_register', $userdata['ID']); $message = 'Your account has been created!' . '<div><a href="' . LoginPage::get_redirect_to() . '">> back to page I was reading</a></div>' . '<a href="' . home_url('/wp-login.php') . '?redirect_to=' . LoginPage::get_redirect_to() . '">> login now</a>'; echo json_encode(['message' => apply_filters('addon_loginpage_signup_message', $message), 200]); } catch (Exception $e) { echo json_encode(['errors' => [$e->getMessage()], 300]); } wp_die(); }
/** * Performs login operation. * @since 1.0 */ protected function do_login() { // Redirect to. $redirect_to = LoginPage::get_redirect_to(); // Cookie authentication if ($this->cookie_authenticate()) { wp_safe_redirect(LoginPage::get_redirect_to()); } else { wp_enqueue_script('addon-loginpage'); return $this->view->get('addons.loginpage.login', ['token' => LoginPage::generate_token(), 'action' => admin_url('admin-ajax.php?action=addon_login'), 'redirect_to' => Request::input('redirect_to')]); } }