Jake Vanderwerf
5 days ago 0dfe1d8afafc59c4a5559c498342668d5a58d6ef
inc/registrar/Posts.php
@@ -10,6 +10,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 +158,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 +220,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,7 +343,18 @@
      }
      $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());
      }
@@ -455,4 +469,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;
         }
      }
   }
}