From 715e26a9eb219808d5c899d418e1d596f9318f61 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 22 Jun 2026 16:59:19 +0000
Subject: [PATCH] =Debugging and implementing the Checkout.js logic. Will be uploading to test integration with square next.

---
 inc/managers/queue/Queue.php |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/inc/managers/queue/Queue.php b/inc/managers/queue/Queue.php
index 4811116..8dd89f7 100644
--- a/inc/managers/queue/Queue.php
+++ b/inc/managers/queue/Queue.php
@@ -4,6 +4,7 @@
 	exit;
 }
 
+use JVBase\managers\CustomTable;
 use WP_Error;
 use WP_REST_Request;
 use WP_REST_Response;
@@ -27,6 +28,7 @@
 
 		add_action('jvb_process_queue', [$this, 'checkQueue']);
 		add_action('jvb_queue_maintenance', [$this, 'maintenance']);
+		add_action('jvb_daily_snapshot', [$this->storage, 'snapshotDaily']);
 
 		if (!wp_next_scheduled('jvb_process_queue')) {
 			wp_schedule_event(time(), 'every-minute', 'jvb_process_queue');
@@ -34,6 +36,11 @@
 		if (!wp_next_scheduled('jvb_queue_maintenance')) {
 			wp_schedule_event(time(), 'hourly', 'jvb_queue_maintenance');
 		}
+		if (!wp_next_scheduled('jvb_daily_snapshot')) {
+			// Schedule for next 3am
+			$next3am = strtotime('tomorrow 3am', current_time('timestamp'));
+			wp_schedule_event($next3am, 'daily', 'jvb_daily_snapshot');
+		}
 
 		jvb_register_do_once('queue_admin_action_registered', [$this, 'registerAdminAction']);
 		add_filter(BASE.'admin_action_filter', [$this, 'adminActionFilter'], 10, 3);
@@ -106,7 +113,9 @@
 			return null;
 		}
 
-		$existing = $this->storage->findMergeable($incoming->type, $incoming->userId);
+		$criteria = $mergeable->matchCriteria($incoming);
+
+		$existing = $this->storage->findMergeable($incoming->type, $incoming->userId, $criteria);
 		if (!$existing || !$mergeable->canMerge($existing, $incoming)) {
 			return null;
 		}
@@ -395,7 +404,7 @@
 
 	private function runQueueOnShutdown(): void
 	{
-		if (!has_action('shutdown', [$this, 'processQueueOnShutdown'])) {
+		if (!has_action('shutdown', [$this, 'processQueueOnShutdown']) && $this->processor->hasAdequateResources()) {
 			add_action('shutdown', [$this, 'processQueueOnShutdown'], 100);
 		}
 	}

--
Gitblit v1.10.0