dashboard
5 months ago
profile-cards
5 years ago
profile-header
6 months ago
already-logged-in.php
5 months ago
auth-forms.css
5 months ago
auth-forms.min.css
5 months ago
clean.php
5 years ago
login-form.php
5 months ago
lost-password-form.php
5 months ago
members.php
6 months ago
modal-login-form.php
1 week ago
public-profile.php
6 months ago
reg-form.php
1 week ago
reset-password-form.php
5 months ago
review-user-status.php
1 week ago
user-favourites.php
5 years ago
already-logged-in.php
311 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Already Logged In View |
| 4 | * |
| 5 | * Displayed when a logged-in user visits the login page. |
| 6 | * |
| 7 | * @package WPDM |
| 8 | */ |
| 9 | |
| 10 | if (!defined('ABSPATH')) die(); |
| 11 | |
| 12 | // Get color scheme to prevent flickering |
| 13 | $color_scheme = get_option('__wpdm_color_scheme', 'system'); |
| 14 | $color_class = ''; |
| 15 | if ($color_scheme === 'dark') { |
| 16 | $color_class = 'dark-mode'; |
| 17 | } elseif ($color_scheme === 'light') { |
| 18 | $color_class = 'light-mode'; |
| 19 | } |
| 20 | |
| 21 | // Get user avatar URL |
| 22 | $avatar_url = get_avatar_url(get_current_user_id(), ['size' => 200, 'default' => 'mp']); |
| 23 | |
| 24 | // Enqueue auth styles for consistency |
| 25 | wp_enqueue_style('wpdm-auth-forms', \WPDM\__\Template::locate_url('auth-forms.css', __DIR__), [], WPDM_VERSION); |
| 26 | ?> |
| 27 | |
| 28 | <div class="w3eden wpdm-auth-page <?php echo esc_attr($color_class); ?>" id="wpdm-already-logged-in"> |
| 29 | <div class="wpdm-auth-split"> |
| 30 | <div class="wpdm-auth-panel wpdm-auth-panel--centered"> |
| 31 | <!-- Left Panel - Decorative --> |
| 32 | <div class="wpdm-auth-left"> |
| 33 | <div class="wpdm-auth-grid"></div> |
| 34 | <div class="wpdm-auth-circles"> |
| 35 | <div class="wpdm-auth-circle"></div> |
| 36 | <div class="wpdm-auth-circle"></div> |
| 37 | <div class="wpdm-auth-circle"></div> |
| 38 | <div class="wpdm-auth-circle"></div> |
| 39 | </div> |
| 40 | |
| 41 | <div class="wpdm-auth-brand"> |
| 42 | <a href="<?php echo home_url(); ?>"> |
| 43 | <?php $logo = get_site_icon_url(); if($logo){ ?> |
| 44 | <img src="<?php echo esc_attr($logo); ?>" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" /> |
| 45 | <?php } else { ?> |
| 46 | <div class="wpdm-auth-brand-icon"> |
| 47 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg> |
| 48 | </div> |
| 49 | <?php } ?> |
| 50 | <span><?php echo esc_html(get_bloginfo('name')); ?></span> |
| 51 | </a> |
| 52 | </div> |
| 53 | |
| 54 | <div class="wpdm-auth-welcome"> |
| 55 | <div class="wpdm-auth-welcome-sub"><?php _e("You're signed in", "download-manager"); ?></div> |
| 56 | <div class="wpdm-auth-welcome-title"><?php _e("WELCOME BACK", "download-manager"); ?></div> |
| 57 | <div class="wpdm-auth-welcome-line"></div> |
| 58 | <div class="wpdm-auth-welcome-text"> |
| 59 | <?php _e("You're already logged in. Visit your dashboard to manage downloads or logout to switch accounts.", "download-manager"); ?> |
| 60 | </div> |
| 61 | </div> |
| 62 | </div> |
| 63 | |
| 64 | <!-- Right Panel - Content --> |
| 65 | <div class="wpdm-auth-right"> |
| 66 | <div class="wpdm-logged-in-content"> |
| 67 | <!-- Avatar with success ring --> |
| 68 | <div class="wpdm-logged-in-avatar-wrap"> |
| 69 | <div class="wpdm-logged-in-avatar"> |
| 70 | <img src="<?php echo esc_url($avatar_url); ?>" alt="<?php echo esc_attr($current_user->display_name); ?>" /> |
| 71 | <span class="wpdm-avatar-check"> |
| 72 | <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"> |
| 73 | <polyline points="20 6 9 17 4 12"></polyline> |
| 74 | </svg> |
| 75 | </span> |
| 76 | </div> |
| 77 | </div> |
| 78 | |
| 79 | <!-- User info --> |
| 80 | <div class="wpdm-logged-in-info"> |
| 81 | <h3 class="wpdm-logged-in-name"><?php echo esc_html($current_user->display_name); ?></h3> |
| 82 | <p class="wpdm-logged-in-email"><?php echo esc_html($current_user->user_email); ?></p> |
| 83 | </div> |
| 84 | |
| 85 | <!-- Action buttons --> |
| 86 | <div class="wpdm-logged-in-actions"> |
| 87 | <a href="<?php echo esc_url(wpdm_user_dashboard_url()); ?>" class="wpdm-auth-btn"> |
| 88 | <svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> |
| 89 | <rect x="3" y="3" width="7" height="9"></rect> |
| 90 | <rect x="14" y="3" width="7" height="5"></rect> |
| 91 | <rect x="14" y="12" width="7" height="9"></rect> |
| 92 | <rect x="3" y="16" width="7" height="5"></rect> |
| 93 | </svg> |
| 94 | <span><?php _e("Go to Dashboard", "download-manager"); ?></span> |
| 95 | </a> |
| 96 | </div> |
| 97 | |
| 98 | <div class="wpdm-logged-in-footer"> |
| 99 | <span><?php _e("Not you?", "download-manager"); ?></span> |
| 100 | <a href="<?php echo esc_url(wpdm_logout_url()); ?>" class="wpdm-logout-link"> |
| 101 | <?php _e("Sign out", "download-manager"); ?> |
| 102 | <svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> |
| 103 | <path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path> |
| 104 | <polyline points="16 17 21 12 16 7"></polyline> |
| 105 | <line x1="21" y1="12" x2="9" y2="12"></line> |
| 106 | </svg> |
| 107 | </a> |
| 108 | </div> |
| 109 | </div> |
| 110 | </div> |
| 111 | </div> |
| 112 | </div> |
| 113 | </div> |
| 114 | |
| 115 | <style> |
| 116 | /* Already Logged In - Uses auth-forms.css base styles */ |
| 117 | |
| 118 | .wpdm-auth-panel--centered { |
| 119 | min-height: auto; |
| 120 | } |
| 121 | |
| 122 | .wpdm-logged-in-content { |
| 123 | text-align: center; |
| 124 | padding: 40px 0 20px; |
| 125 | } |
| 126 | |
| 127 | /* Avatar wrapper with glow effect */ |
| 128 | .wpdm-logged-in-avatar-wrap { |
| 129 | display: flex; |
| 130 | justify-content: center; |
| 131 | margin-bottom: 24px !important; |
| 132 | } |
| 133 | |
| 134 | .wpdm-logged-in-avatar { |
| 135 | position: relative; |
| 136 | width: 120px; |
| 137 | height: 120px; |
| 138 | } |
| 139 | |
| 140 | .wpdm-logged-in-avatar::before { |
| 141 | content: ''; |
| 142 | position: absolute; |
| 143 | inset: -4px; |
| 144 | background: linear-gradient(135deg, #10b981 0%, #6366f1 50%, #8b5cf6 100%); |
| 145 | border-radius: 50%; |
| 146 | animation: wpdm-gradient-spin 3s linear infinite; |
| 147 | width: calc(100% + 8px); |
| 148 | height: calc(100% + 8px); |
| 149 | } |
| 150 | |
| 151 | @keyframes wpdm-gradient-spin { |
| 152 | 0% { transform: rotate(0deg); } |
| 153 | 100% { transform: rotate(360deg); } |
| 154 | } |
| 155 | |
| 156 | .wpdm-logged-in-avatar::after { |
| 157 | content: ''; |
| 158 | position: absolute; |
| 159 | inset: 0; |
| 160 | background: var(--wpdm-auth-card-bg, #fff); |
| 161 | border-radius: 50%; |
| 162 | } |
| 163 | |
| 164 | .wpdm-logged-in-avatar img { |
| 165 | position: relative; |
| 166 | z-index: 1; |
| 167 | width: 100%; |
| 168 | height: 100%; |
| 169 | border-radius: 50%; |
| 170 | object-fit: cover; |
| 171 | border: 4px solid var(--wpdm-auth-card-bg, #fff); |
| 172 | } |
| 173 | |
| 174 | /* Success check badge */ |
| 175 | .wpdm-avatar-check { |
| 176 | position: absolute; |
| 177 | z-index: 2; |
| 178 | bottom: 0; |
| 179 | right: 0; |
| 180 | width: 32px; |
| 181 | height: 32px; |
| 182 | background: linear-gradient(135deg, #10b981 0%, #059669 100%); |
| 183 | border-radius: 50%; |
| 184 | border: 3px solid var(--wpdm-auth-card-bg, #fff); |
| 185 | display: flex; |
| 186 | align-items: center; |
| 187 | justify-content: center; |
| 188 | box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4); |
| 189 | } |
| 190 | |
| 191 | .wpdm-avatar-check svg { |
| 192 | width: 14px; |
| 193 | height: 14px; |
| 194 | color: #fff; |
| 195 | } |
| 196 | |
| 197 | /* User info */ |
| 198 | .wpdm-logged-in-info { |
| 199 | margin-bottom: 32px !important; |
| 200 | } |
| 201 | |
| 202 | .wpdm-logged-in-name { |
| 203 | margin: 0 0 8px 0 !important; |
| 204 | font-size: 26px; |
| 205 | font-weight: 700; |
| 206 | color: var(--wpdm-auth-text, #1e293b); |
| 207 | line-height: 1.3; |
| 208 | } |
| 209 | |
| 210 | .wpdm-logged-in-email { |
| 211 | margin: 0; |
| 212 | font-size: 14px; |
| 213 | color: var(--wpdm-auth-text-muted, #64748b); |
| 214 | display: inline-flex; |
| 215 | align-items: center; |
| 216 | gap: 6px; |
| 217 | padding: 6px 14px; |
| 218 | background: var(--wpdm-auth-bg, #f8fafc); |
| 219 | border-radius: 20px; |
| 220 | } |
| 221 | |
| 222 | /* Action buttons */ |
| 223 | .wpdm-logged-in-actions { |
| 224 | margin-bottom: 28px !important; |
| 225 | } |
| 226 | |
| 227 | .wpdm-logged-in-actions .wpdm-auth-btn { |
| 228 | display: inline-flex; |
| 229 | gap: 10px; |
| 230 | padding: 14px 32px; |
| 231 | font-size: 15px; |
| 232 | } |
| 233 | |
| 234 | /* Footer with logout link */ |
| 235 | .wpdm-logged-in-footer { |
| 236 | padding-top: 24px !important; |
| 237 | border-top: 1px solid var(--wpdm-auth-border, #e2e8f0); |
| 238 | font-size: 14px; |
| 239 | color: var(--wpdm-auth-text-muted, #64748b); |
| 240 | } |
| 241 | |
| 242 | .wpdm-logout-link { |
| 243 | display: inline-flex; |
| 244 | align-items: center; |
| 245 | gap: 4px; |
| 246 | margin-left: 8px; |
| 247 | color: var(--wpdm-auth-text-muted, #64748b); |
| 248 | font-weight: 500; |
| 249 | text-decoration: none; |
| 250 | transition: all 0.2s ease; |
| 251 | } |
| 252 | |
| 253 | .wpdm-logout-link:hover { |
| 254 | color: #ef4444; |
| 255 | } |
| 256 | |
| 257 | /* Dark mode overrides */ |
| 258 | .wpdm-auth-page.dark-mode .wpdm-logged-in-avatar::after, |
| 259 | .wpdm-auth-page.dark-mode .wpdm-logged-in-avatar img, |
| 260 | .wpdm-auth-page.dark-mode .wpdm-avatar-check { |
| 261 | border-color: var(--wpdm-auth-card-bg, #1e293b); |
| 262 | } |
| 263 | |
| 264 | .wpdm-auth-page.dark-mode .wpdm-logged-in-email { |
| 265 | background: rgba(255, 255, 255, 0.05); |
| 266 | } |
| 267 | |
| 268 | @media (prefers-color-scheme: dark) { |
| 269 | .wpdm-auth-page:not(.light-mode) .wpdm-logged-in-avatar::after, |
| 270 | .wpdm-auth-page:not(.light-mode) .wpdm-logged-in-avatar img, |
| 271 | .wpdm-auth-page:not(.light-mode) .wpdm-avatar-check { |
| 272 | border-color: var(--wpdm-auth-card-bg, #1e293b); |
| 273 | } |
| 274 | |
| 275 | .wpdm-auth-page:not(.light-mode) .wpdm-logged-in-email { |
| 276 | background: rgba(255, 255, 255, 0.05); |
| 277 | } |
| 278 | } |
| 279 | |
| 280 | /* Responsive */ |
| 281 | @media (max-width: 480px) { |
| 282 | .wpdm-logged-in-content { |
| 283 | padding: 30px 0 10px; |
| 284 | } |
| 285 | |
| 286 | .wpdm-logged-in-avatar { |
| 287 | width: 100px; |
| 288 | height: 100px; |
| 289 | } |
| 290 | |
| 291 | .wpdm-avatar-check { |
| 292 | width: 28px; |
| 293 | height: 28px; |
| 294 | } |
| 295 | |
| 296 | .wpdm-avatar-check svg { |
| 297 | width: 12px; |
| 298 | height: 12px; |
| 299 | } |
| 300 | |
| 301 | .wpdm-logged-in-name { |
| 302 | font-size: 22px; |
| 303 | } |
| 304 | |
| 305 | .wpdm-logged-in-actions .wpdm-auth-btn { |
| 306 | width: 100%; |
| 307 | justify-content: center; |
| 308 | } |
| 309 | } |
| 310 | </style> |
| 311 |