Improve redirect handling

This commit is contained in:
Cooper Dalrymple
2025-10-29 12:55:24 -05:00
parent d0d78d4732
commit 8938a25d2a
4 changed files with 41 additions and 16 deletions

View File

@@ -16,24 +16,13 @@ final class Admin {
use Singleton;
protected function __construct() {
add_action('wp', [$this, 'logout'], 1);
add_action('wp', [$this, 'handle_redirect'], 2);
add_action('admin_init', [$this, 'maybe_logout'], 1);
}
public function logout():void {
public function maybe_logout():void {
if (!is_user_logged_in()) return;
wp_logout();
$this->do_redirect();
}
public function handle_redirect():void {
if (is_front_page()) return;
$this->do_redirect();
}
private function do_redirect():void {
wp_redirect(get_site_url());
exit;
Redirect::do_redirect();
}
}

35
inc/class-redirect.php Normal file
View File

@@ -0,0 +1,35 @@
<?php
/**
* @package ogre-suspension
* @author cleverogre
* @version 1.0.0
* @since 1.0.0
*/
namespace Ogre\Suspension;
use Ogre\Singleton;
defined('ABSPATH') || exit;
final class Redirect {
use Singleton;
protected function __construct() {
add_action('wp', [$this, 'maybe_redirect'], 1);
add_action('login_init', [__CLASS__, 'do_redirect'], 1);
}
public function maybe_redirect():void {
if (is_front_page()) return;
self::do_redirect();
}
public static function do_redirect():void {
wp_redirect(get_site_url());
exit;
}
}
Redirect::instance();

View File

@@ -17,7 +17,7 @@ final class Template {
use Singleton;
protected function __construct() {
add_action('template_redirect', [$this, 'template_redirect']);
add_action('template_redirect', [$this, 'template_redirect'], 1);
}
public function template_redirect():void {