| | |
| | | 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; |
| | | protected bool $isAdditionalField = false; |
| | | protected bool $isSetupField = false; |
| | | protected bool $isAdvancedField = false; |
| | | protected bool $hideStored = false; |
| | | |
| | | 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 |
| | |
| | | { |
| | | $this->required = true; |
| | | } |
| | | public function setHideStored():void |
| | | { |
| | | $this->hideStored = true; |
| | | } |
| | | public function isHideStored():bool |
| | | { |
| | | return $this->hideStored; |
| | | } |
| | | public function setOptions(array $options):void |
| | | { |
| | | $this->options = $options; |
| | | } |
| | | public function setDefault(mixed $default):void |
| | | { |
| | | $this->default = $default; |
| | | } |
| | | |
| | | public function makeSetupField():void |
| | | { |
| | | $this->isSetupField = true; |
| | | } |
| | | public function isSetupField():bool |
| | | { |
| | | return $this->isSetupField; |
| | | } |
| | | public function makeAdvancedField():void |
| | | { |
| | | $this->isAdvancedField = true; |
| | | } |
| | | public function isAdvancedField():bool{ |
| | | return $this->isAdvancedField; |
| | | } |
| | | public function makeAdditionalField():void |
| | | { |
| | | $this->isAdditionalField = true; |
| | | } |
| | | public function isAdditionalField():bool |
| | | { |
| | | return $this->isAdditionalField; |
| | | } |
| | | |
| | | 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 |
| | | { |
| | |
| | | '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; |
| | | } |
| | | |
| | | } |