Jake Vanderwerf
2026-08-26 ccf5e61a075c35d24befc175994b5cb8957ca322
inc/managers/SEO/render/SchemaOutput.php
@@ -1,17 +1,22 @@
<?php
namespace JVBase\managers\SEO\render;
use JVBase\base\SchemaHelper;
use JVBase\inc\managers\SEO\render\Thing\Intangible\ItemList\OfferCatalog;
use JVBase\Instance;
use JVBase\managers\Cache;
use JVBase\managers\SEO\BreadcrumbManager;
use JVBase\managers\SEO\render\Thing\Intangible\Service;
use JVBase\managers\SEO\render\Thing\Organization\LocalBusiness\LocalBusiness;
use JVBase\registrar\config\seo\Resolver;
use JVBase\registrar\Registrar;
if (!defined('ABSPATH')) {
   exit;
}
class SchemaOutput {
   use Instance;
   protected array $types;
   public function __construct() {
   protected function __construct() {
      add_action('wp_head', [$this, 'outputSchema'], 0);
      $this->init();
   }
@@ -64,7 +69,7 @@
      }
      $isContent = array_values(array_filter(array_map(function($item) {
         return intval(get_option(BASE.$item.'_archive', false));
      },Registrar::getFeatured('is_content', 'term'))));
      },Registrar::withFeature('is_content', 'term'))));
      if (!empty($isContent) && is_page($isContent)){
         $type = get_post_meta(get_the_id(), BASE.'for_type', true);
@@ -91,11 +96,9 @@
      if (!empty($schema)) {
         if (!is_front_page()) {
            $website = JVB()->schemaHelper()::schema('website');
            $website = SchemaHelper::getInstance()::schema('website');
            if (!empty($website)) {
               if (JVB_TESTING) {
                  Cache::for('websiteSchema')->flush();
               }
               $website = Cache::for('websiteSchema')->remember(
                  'schema',
                  function () {
@@ -117,8 +120,8 @@
   protected function websiteSchema():array
   {
      $stored = JVB()->schemaHelper()::schema('website');
      $website = JVB()->schemaHelper()::classFromConfig($stored);
      $stored = SchemaHelper::getInstance()::schema('website');
      $website = SchemaHelper::getInstance()::classFromConfig($stored);
      if (!$website->getUrl() || empty($website->getUrl())){
         $website->setUrl(get_home_url());
@@ -141,7 +144,7 @@
      }
//    $encoded =  wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
//    $encoded =  wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT, 1024);
      $encoded = wp_json_encode($schema, JSON_UNESCAPED_SLASHES, 512);
      $encoded = wp_json_encode($schema, JSON_UNESCAPED_SLASHES, 1024);
      if ($encoded === false) {
         error_log('wp_json_encode failed: ' . json_last_error_msg());
         return;
@@ -164,7 +167,7 @@
      if (JVB_TESTING){
         Cache::for('websiteSchema')->flush();
      }
      $storedWebsite = JVB()->schemaHelper()::schema('website');
      $storedWebsite = SchemaHelper::getInstance()::schema('website');
      if (!$full) {
         return Cache::for('websiteSchema')->remember(
@@ -175,7 +178,7 @@
                  return in_array($key, $allowed);
               }, ARRAY_FILTER_USE_KEY);
               $website = JVB()->schemaHelper()::classFromConfig($storedWebsite);
               $website = SchemaHelper::getInstance()::classFromConfig($storedWebsite);
               if (!$website->getName() || empty($website->getName())) {
                  $website->setName(get_bloginfo('name'));
               }
@@ -207,7 +210,7 @@
      return Cache::for('websiteSchema')->remember(
         'full',
         function () use ($storedWebsite) {
            $website = JVB()->schemaHelper()::classFromConfig($storedWebsite);
            $website = SchemaHelper::getInstance()::classFromConfig($storedWebsite);
            if (!$website->getName() || empty($website->getName())) {
               $website->setName(get_bloginfo('name'));
            }
@@ -307,9 +310,9 @@
      if ($reference) {
         return $this->getOptionSchemaReference('organization');
      }
      $config = JVB()->schemaHelper()::schema('organization');
      $config = SchemaHelper::getInstance()::schema('organization');
      return JVB()->schemaHelper()::classFromConfig($config);
      return SchemaHelper::getInstance()::classFromConfig($config);
   }
   public function getOptionSchemaReference(string $option):mixed
@@ -323,7 +326,7 @@
         return null;
      }
      $stored = JVB()->schemaHelper()::reference($option);
      $stored = SchemaHelper::getInstance()::reference($option);
      if (empty($stored)){
         error_log('Attempted to get schema reference for: '.$option.', but defaults not set.');
@@ -354,9 +357,9 @@
   public function buildOrganizationSchema():array
   {
      $config = JVB()->schemaHelper()::schema('organization');
      $config = SchemaHelper::getInstance()::schema('organization');
      $class = JVB()->schemaHelper()::classFromConfig($config);
      $class = SchemaHelper::getInstance()::classFromConfig($config);
      return ($class)? $class->outputSchema() : [];
   }
}