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