From a9654f00c8fbc9934289d761843ddd071025013f Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 28 Aug 2026 17:20:28 +0000
Subject: [PATCH] =PHPStorm Code Inspection: fixed class reference errors (from getting rid of JVB() and replacing with direct class::getInstance; as well as general code sniffing, etc

---
 inc/registrar/Posts.php |   50 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/inc/registrar/Posts.php b/inc/registrar/Posts.php
index 7a5bf4f..bedacaa 100644
--- a/inc/registrar/Posts.php
+++ b/inc/registrar/Posts.php
@@ -2,6 +2,8 @@
 namespace JVBase\registrar;
 
 use JVBase\forms\TaxonomySelector;
+use JVBase\managers\Errors;
+use WP_Post;
 
 if (!defined('ABSPATH')) {
 	exit;
@@ -10,6 +12,8 @@
 	public string $postType;
 	public string $singular;
 	public string $plural;
+	public bool $baseless = false;
+	public bool $modify = false;
 	public array $labels;
 	/**
 	 * Whether a post type is intended for use publicly either via the admin interface or by front-end users.
@@ -156,7 +160,7 @@
 	 * An array of taxonomy identifiers that will be registered for the post type. Taxonomies can be registered later with register_taxonomy() or register_taxonomy_for_object_type() .
 	 * @var array
 	 */
-	public array $taxonomies;
+	public array $taxonomies = [];
 	/**
 	 * Whether there should be post type archives, or if a string, the archive slug to use.
 	 * Will generate the proper rewrite rules if $rewrite is enabled. Default false.
@@ -218,10 +222,11 @@
 		$this->unbased = jvbNoBase($postType);
 		$this->postType = jvbCheckBase($postType);
 		$this->labels = $this->buildLabels($singular, $plural);
+		$this->singular = $singular;
+		$this->plural = $plural;
 	}
 
-	public function register():void
-	{
+	protected function buildArgs():array {
 		$args = array_filter(get_object_vars($this));
 //		error_log('Got Object Vars: '.print_r($args, true));
 //		error_log('Filtered: '.print_r(array_filter($args), true));
@@ -340,9 +345,20 @@
 		}
 
 
-		$registered = register_post_type($this->postType, $args);
+		return $args;
+	}
+
+	public function register():void
+	{
+		$args = $this->buildArgs();
+
+		$registered = true;
+	 	if (!$this->modify) {
+			$registered = register_post_type($this->postType, $args);
+		}
+
 		if (is_wp_error($registered)) {
-			JVB()->error()->log('JVBase\registrar\Posts', 'Could not register post type', $registered->get_error_messages());
+			Errors::getInstance()->log('JVBase\registrar\Posts', 'Could not register post type', $registered->get_error_messages());
 		}
 	}
 
@@ -412,18 +428,17 @@
 		// Use 'bottom' priority so taxonomy rules match first
 		add_rewrite_rule(
 			"{$this->unbased}/([^/]+)/?$",
-			"index.php?post_type={$this->postType}&name=\$matches[1]",
-			'bottom'
+			"index.php?post_type={$this->postType}&name=\$matches[1]"
 		);
 	}
 
 	/**
 	 * Set $this->rewrite_taxonomy to a valid taxonomy
 	 * @param string $url
-	 * @param \WP_Post $post
+	 * @param WP_Post $post
 	 * @return string
 	 */
-	public function rewriteTaxonomySingle(string $url, \WP_Post $post): string
+	public function rewriteTaxonomySingle(string $url, WP_Post $post): string
 	{
 		if ($post->post_type === $this->postType && !is_null($this->taxonomyRewrite)) {
 			$type = $this->taxonomyRewrite;
@@ -455,4 +470,21 @@
 		return $url;
 	}
 
+	public function modifyWooCommerce() {
+		if ($this->modify) {
+			$args = $this->buildArgs();
+			unset($args['labels']);
+			$registered = get_post_type_object($this->postType);
+
+			foreach ($args as $key => $value) {
+				$registered->$key = $value;
+			}
+
+			$labels = $registered->labels;
+			foreach ($this->labels as $key => $value) {
+				$labels->$key = $value;
+			}
+		}
+	}
+
 }

--
Gitblit v1.10.0