Jake Vanderwerf
2026-08-07 a8ff85042ffbfe94b678fd818c02deb613bfd116
inc/integrations/Field.php
@@ -11,16 +11,23 @@
   public string $name;
   public string $label;
   public string $type;
   public string $hint;
   public bool $required;
   public string|Closure|bool $permission;
   protected array $options;
   protected mixed $default;
   protected string $subtype;
   protected string $placeholder;
   protected bool $hidden = false;
   protected int $min;
   protected int $max;
   public function __construct(string $name, string $label, string $type, callable|string|bool $permission)
   {
      $this->name = $name;
      $this->label = $label;
      $this->type = $type;
      $this->permission = $permission;
      $this->permission = is_callable($permission) ? Closure::fromCallable($permission) : $permission;
   }
   public function checkPermission():bool
@@ -49,6 +56,38 @@
   {
      $this->options = $options;
   }
   public function setDefault(mixed $default):void
   {
      $this->default = $default;
   }
   public function setHint(string $hint):void
   {
      $this->hint = $hint;
   }
   public function setHidden(bool $hidden = true):void
   {
      $this->hidden = $hidden;
   }
   public function setSubType(string $type):void
   {
      $this->subtype = $type;
   }
   public function setMin(int $min):void
   {
      $this->min = $min;
   }
   public function setMax(int $max):void
   {
      $this->max = $max;
   }
   public function setPlaceholder(string $string):void
   {
      $this->placeholder = sanitize_text_field($string);
   }
   public function getConfig():array
   {
@@ -57,12 +96,34 @@
         'label'  => $this->label,
         'type'   => $this->type,
      ];
      if ($this->required) {
      if (isset($this->required)) {
         $conf['required'] = true;
      }
      if ($this->options) {
      if (isset($this->options)) {
         $conf['options'] = $this->options;
      }
      if (isset($this->default)) {
         $conf['default'] = $this->default;
      }
      if (isset($this->hint)) {
         $conf['hint'] = $this->hint;
      }
      if (isset($this->subType)) {
         $conf['subtype'] = $this->subType;
      }
      if ($this->hidden) {
         $conf['hidden'] = true;
      }
      if (isset($this->min)) {
         $conf['min'] = $this->min;
      }
      if (isset($this->max)) {
         $conf['max'] = $this->max;
      }
      if (isset($this->placeholder)) {
         $conf['placeholder'] = $this->placeholder;
      }
      return $conf;
   }
}