From 3d25ad7de4fdbb3eba2cde2a62422e6be5d79a0a Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 25 Aug 2026 22:57:22 +0000
Subject: [PATCH] =It's been a minute. I went through the Routes and associated Managers and ensured they played together well. Reworked the Cache.php, and I think I caught all the references. Moving away from JVBase() root class, to individuall classes that are Instanced. Double checked for the ABSPATH check in every file, and added index.php to every directory that didn't already have it. Also still working on the MenuBlock to work with WooCommerce for now for Northeh

---
 inc/managers/Errors.php |   63 ++++++++++++++++---------------
 1 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/inc/managers/ErrorHandler.php b/inc/managers/Errors.php
similarity index 89%
rename from inc/managers/ErrorHandler.php
rename to inc/managers/Errors.php
index a3b1f33..997dfbc 100644
--- a/inc/managers/ErrorHandler.php
+++ b/inc/managers/Errors.php
@@ -1,7 +1,7 @@
 <?php
 namespace JVBase\managers;
 
-use JVBase\JVB;
+use JVBase\Instance;
 use WP_Error;
 use Exception;
 use WP_REST_Request;
@@ -10,8 +10,9 @@
     exit; // Exit if accessed directly
 }
 
-class ErrorHandler
+class Errors
 {
+	use Instance;
     protected int $notification_threshold = 5; // Critical errors within 1 hour
 
     protected array $error_levels = [
@@ -24,7 +25,7 @@
 
 	protected CustomTable $table;
 
-    public function __construct()
+    private function __construct()
     {
 		$this->defineTables();
 //        global $wpdb;
@@ -71,7 +72,7 @@
 	}
     public function registerAdminAction():void
     {
-        $admin = JVB()->admin();
+        $admin = AdminPages::getInstance();
 
         $admin->registerSubpage(
             'Error Log',
@@ -265,25 +266,25 @@
 		$admin_email = get_option('admin_email');
 		$subject = "[" . get_bloginfo('name') . " Critical Error] {$component}";
 
-		$body = JVB()->email()->alert(
+		$body = Emails::getInstance()->alert(
 			'A critical error has occurred and requires immediate attention',
 			'error'
 		);
 
-		$body .= JVB()->email()->h2('Error Details');
-		$body .= JVB()->email()->card(
+		$body .= Emails::getInstance()->h2('Error Details');
+		$body .= Emails::getInstance()->card(
 			'<p><strong>Component:</strong> ' . esc_html($component) . '</p>' .
 			'<p><strong>Message:</strong></p>' .
-			JVB()->email()->codeBlock($message),
+			Emails::getInstance()->codeBlock($message),
 			'Error Information'
 		);
 
 		if (!empty($context)) {
-			$body .= JVB()->email()->h3('Additional Context');
-			$body .= JVB()->email()->codeBlock(json_encode($context, JSON_PRETTY_PRINT));
+			$body .= Emails::getInstance()->h3('Additional Context');
+			$body .= Emails::getInstance()->codeBlock(json_encode($context, JSON_PRETTY_PRINT));
 		}
 
-		return JVB()->email()->sendEmail($admin_email, $subject, $body, 'CRITICAL ERROR');
+		return Emails::getInstance()->sendEmail($admin_email, $subject, $body, 'CRITICAL ERROR');
 	}
 
     /**
@@ -332,77 +333,77 @@
 		$subject = "[{$site_name}] Daily Error Summary - " . date('Y-m-d');
 
 		// Header with alert
-		$body = JVB()->email()->h1('Daily Error Summary');
+		$body = Emails::getInstance()->h1('Daily Error Summary');
 		$body .= sprintf('<p>Error summary for <strong>%s</strong></p>', $yesterday);
 
 		// Summary stats in a grid
 		if (!empty($summary['stats'])) {
 			$stats = [
-				JVB()->email()->stat($summary['stats']->total_errors, 'Total Errors'),
-				JVB()->email()->stat($summary['stats']->critical_count, 'Critical', 'Requires attention'),
-				JVB()->email()->stat($summary['stats']->error_count, 'Errors'),
-				JVB()->email()->stat($summary['stats']->warning_count, 'Warnings')
+				Emails::getInstance()->stat($summary['stats']->total_errors, 'Total Errors'),
+				Emails::getInstance()->stat($summary['stats']->critical_count, 'Critical', 'Requires attention'),
+				Emails::getInstance()->stat($summary['stats']->error_count, 'Errors'),
+				Emails::getInstance()->stat($summary['stats']->warning_count, 'Warnings')
 			];
-			$body .= JVB()->email()->grid($stats, 4);
+			$body .= Emails::getInstance()->grid($stats, 4);
 		}
 
 		// Alert if critical errors exist
 		if (!empty($summary['critical'])) {
-			$body .= JVB()->email()->alert(
+			$body .= Emails::getInstance()->alert(
 				sprintf('Found %d critical errors that need immediate attention', count($summary['critical'])),
 				'error'
 			);
 		}
 
-		$body .= JVB()->email()->spacer(20);
+		$body .= Emails::getInstance()->spacer(20);
 
 		// Frequent errors section
 		if (!empty($summary['frequent'])) {
-			$body .= JVB()->email()->h2('Most Frequent Errors');
+			$body .= Emails::getInstance()->h2('Most Frequent Errors');
 
 			foreach ($summary['frequent'] as $error) {
-				$cardContent = JVB()->email()->badge($error->count . 'x', 'warning') . ' ';
+				$cardContent = Emails::getInstance()->badge($error->count . 'x', 'warning') . ' ';
 				$cardContent .= '<strong>' . esc_html($error->error_type) . '</strong>';
 				$cardContent .= '<p style="margin:10px 0 5px 0;font-size:13px;">' . esc_html(wp_trim_words($error->message, 15)) . '</p>';
-				$cardContent .= '<p style="margin:0;font-size:12px;color:' . JVB()->email()->colours['dark-200'] . ';">
+				$cardContent .= '<p style="margin:0;font-size:12px;color:' . Emails::getInstance()->colours['dark-200'] . ';">
                 Source: ' . esc_html($error->source) . ' |
                 Logged in: ' . $error->logged_in_count . ' |
                 Logged out: ' . $error->logged_out_count . '
             </p>';
 
-				$body .= JVB()->email()->card($cardContent, $error->component);
+				$body .= Emails::getInstance()->card($cardContent, $error->component);
 			}
 		}
 
 		// Critical errors section
 		if (!empty($summary['critical'])) {
-			$body .= JVB()->email()->spacer(30);
-			$body .= JVB()->email()->h2('Recent Critical Errors');
+			$body .= Emails::getInstance()->spacer(30);
+			$body .= Emails::getInstance()->h2('Recent Critical Errors');
 
 			foreach ($summary['critical'] as $error) {
 				$cardContent = '<p><strong>Time:</strong> ' . esc_html($error->created_at) . '</p>';
 				$cardContent .= '<p><strong>Message:</strong></p>';
-				$cardContent .= JVB()->email()->codeBlock($error->message);
+				$cardContent .= Emails::getInstance()->codeBlock($error->message);
 
 				// Include context if available
 				if (!empty($error->context)) {
 					$context = json_decode($error->context, true);
 					if (is_array($context)) {
 						$cardContent .= '<p><strong>Context:</strong></p>';
-						$cardContent .= JVB()->email()->codeBlock(json_encode($context, JSON_PRETTY_PRINT));
+						$cardContent .= Emails::getInstance()->codeBlock(json_encode($context, JSON_PRETTY_PRINT));
 					}
 				}
 
-				$body .= JVB()->email()->card($cardContent, $error->component . ': ' . $error->error_type);
+				$body .= Emails::getInstance()->card($cardContent, $error->component . ': ' . $error->error_type);
 			}
 		}
 
 		// Dashboard link
 		$admin_url = admin_url('admin.php?page=jvb-error-logs');
-		$body .= JVB()->email()->spacer(30);
-		$body .= JVB()->email()->button($admin_url, 'View Detailed Logs');
+		$body .= Emails::getInstance()->spacer(30);
+		$body .= Emails::getInstance()->button($admin_url, 'View Detailed Logs');
 
-		return JVB()->email()->sendEmail($admin_email, $subject, $body, 'ERROR SUMMARY');
+		return Emails::getInstance()->sendEmail($admin_email, $subject, $body, 'ERROR SUMMARY');
 	}
 
     /**

--
Gitblit v1.10.0