Jake Vanderwerf
2026-05-01 48721c85ebcfa973ee81719d2467ca80e4253dc9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
namespace JVBase\registrar\config;
 
 
if (!defined('ABSPATH')) {
    exit;
}
 
final class Register extends Config {
    public string $title;
    public string $description;
    public array $fields = [
        'username' => [
            'type'  => 'email',
            'label' => 'Your Email',
            'required' => true,
        ],
        'password'  => [
            'type'  => 'text',
            'subtype' => 'password',
            'label' => 'Your Password',
        ],
        'password_check' => [
            'type'  => 'text',
            'subtype' => 'password',
            'label' => 'Verify Password',
        ],
    ];
 
    public function __construct() {
    }
 
    public function setTitle(string $title): self {
        $this->title = $title;
        return $this;
    }
    public function getTitle():string
    {
        return $this->title;
    }
 
    public function setDescription(string|array $desc):self
    {
        if (is_array($desc)) {
            $desc = implode('', array_map(function ($p) { return '<p>'.$p.'</p>';}, $desc));
        } else if (!str_contains('<p>', $desc)) {
            $desc = '<p>'.$desc.'</p>';
        }
        $this->description = $desc;
        return $this;
    }
    public function getDescription():string|array
    {
        return $this->description;
    }
 
    public function setFields(array $fields):self
    {
        $this->fields = array_merge($this->fields, $fields);
        return $this;
    }
 
    public function getFields():array
    {
        return $this->fields;
    }
 
    function getConfig(): array
    {
        return [
            'title' => $this->title ?? false,
            'description' => $this->description??false,
            'fields'    => $this->fields
        ];
    }
}