From aeb5a13bfa203281aaa5573e19fe5aa6ac012152 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 02 Jan 2026 06:03:55 +0000
Subject: [PATCH] Merge branch 'main' of https://github.com/jakevdwerf/jvb
---
inc/managers/LoginManager.php | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/inc/managers/LoginManager.php b/inc/managers/LoginManager.php
index f336e23..2e5c569 100644
--- a/inc/managers/LoginManager.php
+++ b/inc/managers/LoginManager.php
@@ -64,11 +64,18 @@
add_action('wp_login', [$this, 'handleSuccessfulLogin'], 10, 2);
add_filter( 'login_url', [$this, 'loginUrl'], 10, 3 );
+ add_filter( 'logout_url', [$this, 'logoutUrl'], 10, 2 );
// Allow other features to register handlers
do_action('jvbLoginManagerInit', $this);
add_action('user_register', array($this, 'saveRegistrationFields'), 999, 2);
+ add_filter('the_seo_framework_sitemap_exclude_ids', [$this, 'excludeLoginSitemap'], 10, 1);
}
+ public function excludeLoginSitemap(array $ids): array
+ {
+ $ids[] = $this->getLoginPage();
+ return $ids;
+ }
/**************************************************************************
* SETUP & CONFIGURATION
**************************************************************************/
@@ -297,6 +304,22 @@
}
return $login_url;
}
+
+ public function logoutUrl(string $logout_url, string $redirect): string
+{
+ // Build custom logout URL
+ $logout_url = site_url('/login/', 'login');
+ $logout_url = add_query_arg('action', 'logout', $logout_url);
+
+ if (!empty($redirect)) {
+ $logout_url = add_query_arg('redirect_to', urlencode($redirect), $logout_url);
+ }
+
+ // Add nonce for security
+ $logout_url = wp_nonce_url($logout_url, 'log-out');
+
+ return $logout_url;
+}
public function getLoginPage():int|false
{
return (int)get_option(BASE.'login_page');
--
Gitblit v1.10.0