Jake Vanderwerf
2 days ago 235ce5716edc2f7cbe80fdccf26eac7269587839
inc/meta/MetaTypeManager.php
@@ -9,7 +9,7 @@
 */
class MetaTypeManager
{
    protected array $type_map = [
    protected static array $type_map = [
        'text' => [
            'type'      => 'string',
            'sanitize'  => 'sanitize_text_field',
@@ -50,6 +50,11 @@
            'sanitize' => 'sanitize_email',
         'default'   => '',
        ],
        'phone' => [
            'type' => 'string',
            'sanitize' => 'sanitizeTelephone',
         'default'   => '',
        ],
        'url' => [
            'type' => 'string',
            'sanitize' => 'esc_url_raw',
@@ -80,11 +85,21 @@
            'sanitize'  => 'sanitizeUser',
         'default'   => '',
        ],
        'post'  => [
            'type'      => 'string',
            'sanitize'  => 'sanitizePost',
         'default'   => '',
        ],
        'repeater' => [
            'type' => 'object',
            'sanitize' => 'sanitizeRepeater',
         'default'   => [],
        ],
      'taglist' => [
         'type' => 'object',
         'sanitize' => 'sanitizeTagList',
         'default' => []
      ],
      'group' => [
         'type' => 'object',
         'sanitize' => 'sanitizeGroup',
@@ -123,25 +138,34 @@
            'type'  => 'string',
            'sanitize'  => 'sanitize_text_field',
         'default'   => '',
        ]
        ],
      'selector' => [
         'type'   => 'string',
         'sanitize'  => 'sanitizeSelector',
         'default'   => '',
      ]
    ];
   public function getType(string $field_name):array
   public static function getType(string $field_name):array
   {
      return $this->type_map[$field_name]??[];
      return static::$type_map[$field_name]??[];
   }
    public function getMetaType(string $field_type):string
    public static function getMetaType(string $field_type):string
    {
        return $this->type_map[$field_type]['type'] ?? 'string';
        return static::$type_map[$field_type]['type'] ?? 'string';
    }
    public function getSanitizeCallback(string $field_type):string
    public static function getSanitizeCallback(string $field_type):string
    {
        return $this->type_map[$field_type]['sanitize'] ?? 'sanitize_text_field';
        return static::$type_map[$field_type]['sanitize'] ?? 'sanitize_text_field';
    }
    public function registerType(string $type, array $config):void
    public static function registerType(string $type, array $config):void
    {
        $this->type_map[$type] = $config;
        static::$type_map[$type] = $config;
    }
   public static function getTypes():array
   {
      return static::$type_map;
   }
}