Jake Vanderwerf
2026-04-26 86c6cd3cc099d2480932ede03c12cea01e625c94
inc/managers/LoginManager.php
@@ -1,10 +1,10 @@
<?php
namespace JVBase\managers;
use JVBase\base\Site;
use JVBase\forms\TaxonomySelector;
use JVBase\meta\Form;
use JVBase\utility\Features;
use WP_Error;
use WP_User;
@@ -14,7 +14,6 @@
class LoginManager
{
   protected Features $siteFeatures;
   protected ?Form $form = null;
   protected Cache $cache;
@@ -38,13 +37,10 @@
   public function __construct()
   {
      $this->siteFeatures = Features::forSite();
      $this->cache = Cache::for('login');
      // Initialize magic link support if enabled
      if ($this->siteFeatures->has('magicLink')) {
      if (Site::has('magicLink')) {
         $this->initMagicLinkSupport();
      }
@@ -129,7 +125,7 @@
               'placeholder'=> 'look@me.com'
            ]
         ];
         if (Features::forSite()->has('referrals')) {
         if (Site::has('referrals')) {
            $fields['referral_code'] = [
               'type'   => 'text',
               'required'=> false,
@@ -345,7 +341,7 @@
   protected function initMagicLinkSupport(): void
   {
      if (!Features::forSite()->has('magicLink')) {
      if (!Site::has('magicLink')) {
         return;
      }
   }
@@ -715,7 +711,7 @@
   protected function maybeTurnstile(): void
   {
      if (!Features::hasIntegration('cloudflare')) {
      if (!Site::hasIntegration('cloudflare')) {
         return;
      }
      JVB()->connect('cloudflare')->renderTurnstile();
@@ -723,7 +719,7 @@
   protected function maybeTurnstileScripts(): void
   {
      if (!Features::hasIntegration('cloudflare')) {
      if (!Site::hasIntegration('cloudflare')) {
         return;
      }
      JVB()->connect('cloudflare')->enqueueTurnstileScripts();
@@ -731,7 +727,7 @@
   protected function verifyTurnstile(): bool
   {
      if (!Features::hasIntegration('cloudflare')) {
      if (!Site::hasIntegration('cloudflare')) {
         return true; // Not enabled, pass verification
      }
@@ -784,61 +780,19 @@
   {
      switch ($this->action) {
         case 'register':
            return [
               'title' => JVB_LOGIN['register']['title'] ?? 'Create Your Account',
               'description' => JVB_LOGIN['register']['description'] ?? [],
               'extra' => JVB_LOGIN['register']['extra'] ?? [],
               'footer' => JVB_LOGIN['register']['footer'] ?? '',
               'email' => JVB_LOGIN['register']['email']['subject'] ?? '['.get_bloginfo('name').'] Finish Creating Your Account',
               'submit' => JVB_LOGIN['register']['submit'] ?? 'Create Account',
               'successTitle' => JVB_LOGIN['register']['success']['title'] ?? 'Success!',
               'successDescription' => JVB_LOGIN['register']['success']['description'] ?? ['See your email for next steps','(Check your spam folder if you cannot find it after a couple minutes.)'],
            ];
            return Site::login()->getLabels('register');
         case 'lostpassword':
            return [
               'title' => JVB_LOGIN['forgot_password']['title'] ?? 'Reset Password',
               'description' => JVB_LOGIN['forgot_password']['description'] ?? [],
               'extra' => JVB_LOGIN['forgot_password']['extra'] ?? [],
               'footer' => JVB_LOGIN['forgot_password']['footer'] ?? '',
               'submit' => JVB_LOGIN['forgot_password']['submit'] ?? 'Send Reset Link',
               'successTitle' => JVB_LOGIN['forgot_password']['success']['title'] ?? 'Success!',
               'successDescription' => JVB_LOGIN['forgot_password']['success']['description'] ?? ['Check your email for reset instructions'],
            ];
            return Site::login()->getLabels('lostPassword');
         case 'resetpass':
         case 'rp':
            return [
               'title' => JVB_LOGIN['reset_pass']['title'] ?? 'Reset Your Password',
               'description' => JVB_LOGIN['reset_pass']['description'] ?? [],
               'extra' => JVB_LOGIN['reset_pass']['extra'] ?? [],
               'footer' => JVB_LOGIN['reset_pass']['footer'] ?? '',
               'submit' => JVB_LOGIN['reset_pass']['submit'] ?? 'Reset Password',
            ];
            return Site::login()->getLabels('resetPassword');
         case 'logout':
            return [
               'title' => JVB_LOGIN['logout']['title'] ?? 'Logged Out!',
               'description' => JVB_LOGIN['logout']['description'] ?? [],
               'extra' => JVB_LOGIN['logout']['extra'] ?? [],
               'footer' => JVB_LOGIN['logout']['footer'] ?? '',
               'submit' => JVB_LOGIN['logout']['submit'] ?? '',
            ];
            return Site::login()->getLabels('logout');
         case 'magic':
            return [
               'title' => JVB_LOGIN['magic']['title'] ?? 'Log in with Magic Link',
               'description' => JVB_LOGIN['magic']['description'] ?? ['Enter your email.','You\'ll get an email with a magic link.','Click it, and you\'re logged in!'],
               'extra' => JVB_LOGIN['magic']['extra'] ?? [],
               'footer' => JVB_LOGIN['magic']['footer'] ?? '',
               'submit' => JVB_LOGIN['magic']['submit'] ?? jvbIcon('magic-wand').'Send Magic Link',
            ];
            return Site::login()->getLabels('magic');
         case 'login':
         default:
            return [
               'title' => JVB_LOGIN['login']['title'] ?? 'Sign in',
               'description' => JVB_LOGIN['login']['description'] ?? [],
               'extra' => JVB_LOGIN['login']['extra'] ?? [],
               'footer' => JVB_LOGIN['login']['footer'] ?? '',
               'submit' => JVB_LOGIN['login']['submit'] ?? 'Sign In',
            ];
            return Site::login()->getLabels('login');
      }
   }
@@ -870,7 +824,7 @@
    $action = $this->getAction();
    $redirect_to = isset($_GET['redirect_to']) ? esc_url_raw($_GET['redirect_to']) : '';
    $has_turnstile = Features::hasIntegration('cloudflare');
    $has_turnstile = Site::hasIntegration('cloudflare');
    ob_start();
@@ -886,9 +840,8 @@
            if (!form || !window.jvbForm) return;
            window.jvbForm.registerForm(form, {
               autosave: false,
               endpoint: '<?= $action ?>',
               formStatus: false,
               showStatus: false,
               cache: false,
            });