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/registrar/Registrar.php |   42 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/inc/registrar/Registrar.php b/inc/registrar/Registrar.php
index 8b4b57f..87f24d8 100644
--- a/inc/registrar/Registrar.php
+++ b/inc/registrar/Registrar.php
@@ -14,6 +14,7 @@
 use JVBase\registrar\config\Directory;
 use JVBase\registrar\config\Feed;
 use JVBase\registrar\config\Integration;
+use JVBase\registrar\config\Register;
 use JVBase\registrar\config\Section;
 use JVBase\registrar\config\SEO;
 use JVBase\registrar\helpers\AddIntegrationFields;
@@ -53,6 +54,8 @@
 	public string $prefix_with = 'by';
 
 	public bool $system = false;
+	public bool $baseless = false;
+	public bool $modify = false;
 
 	protected static array $allFlags = [
 		//Shared Flags
@@ -212,6 +215,7 @@
 	protected Dashboard $dashboard;
 	protected Directory|false $directory;
 	protected Feed|false $feed;
+	protected Register|false $login;
 //	protected Management $management;
 //	protected Responses $responses;
 	protected ?SEO $seo = null;
@@ -294,13 +298,25 @@
 			'post_parent__not_in'	=> [0], // Only get posts with a parent
 		]);
 	}
-
+	public function ensureRegistrar():void
+	{
+		$this->initRegistrar();
+	}
 	protected function initRegistrar():void {
 		$this->registrar = match ($this->type) {
 			'post' => new Posts($this->slug, $this->singular, $this->plural),
 			'term' => new Terms($this->slug, $this->singular, $this->plural),
 			default => false,
 		};
+
+
+		if ($this->baseless) {
+			$this->registrar->baseless = true;
+			$this->registrar->postType = jvbNoBase($this->slug);
+		}
+		if ($this->modify) {
+			$this->registrar->modify = true;
+		}
 	}
 
 	protected function initClasses():void {
@@ -354,6 +370,8 @@
 		return self::$instances[$slug];
 	}
 
+
+
 	/**
 	 * Adds the properties for register_post_type or register_taxonomy
 	 * @param array $args
@@ -393,6 +411,17 @@
 		return $this->args;
 	}
 
+	public function baseless():self
+	{
+		$this->baseless = true;
+		return $this;
+	}
+	public function modify():self
+	{
+		$this->modify = true;
+		return $this;
+	}
+
 	public function setFields():void
 	{
 		$this->fields = new Fields($this->type, $this);
@@ -653,7 +682,7 @@
 
 	public function config(string $config):mixed
 	{
-		$allowed = ['breadcrumbs','calendar','dashboard','directory','feed','management','has_responses','seo','trackchanges','verification'];
+		$allowed = ['breadcrumbs','calendar','register','login','dashboard','directory','feed','management','has_responses','seo','trackchanges','verification'];
 		if (!in_array(strtolower($config), $allowed)) {
 			error_log('Invalid config requested from Registrar: '.$config);
 			return [];
@@ -662,6 +691,7 @@
 			'breadcrumbs' 	=> $this->getBreadcrumbs(),
 			'dashboard'		=> $this->getDashboard(),
 			'directory'		=> $this->getDirectory(),
+            'register','login' => $this->getLogin(),
 			'feed'			=> $this->getFeed(),
 			'management'	=> $this->getManagement(),
 			'has_responses'	=> $this->getResponses(),
@@ -670,6 +700,13 @@
 			'verification'	=> $this->getVerification()
 		};
 	}
+        protected function getLogin():Register|false
+        {
+            if (!isset($this->login)) {
+                $this->login = new Register();
+            }
+            return $this->login;
+        }
 		protected function getBreadcrumbs():Breadcrumbs
 		{
 			if (!isset($this->breadcrumbs)) {
@@ -1011,6 +1048,7 @@
 
             unset($processing[$termId]);
 		}
+
 	public function renderContent(string $content, array $block):string
 	{
 		if (!is_page($this->page)) {

--
Gitblit v1.10.0