['regular_text', 'all_options', 'small_text', 'large_text'], ]), Setting::description(), ]; } public function sanitizeValue($value, array $field) { return sanitize_email($value); } /** * The address, hidden from simple spam bots (antispambot()); a mailto link with `link="1"` or `text="..."`. */ public function displayValue($value, array $field, array $args): string { if (!is_string($value) || $value === '') { return ''; } $hidden = antispambot($value); if (!Display::wantsLink($args)) { return esc_html($hidden); } $text = ($args['text'] ?? '') !== '' ? esc_html((string) $args['text']) : esc_html($hidden); return sprintf('%s', esc_attr('mailto:' . $hidden), $text); } public function bindingValue($value, array $field, string $attribute): ?string { if ($attribute === 'url') { return is_string($value) && $value !== '' ? 'mailto:' . $value : null; } return parent::bindingValue($value, $field, $attribute); } public function render(array $field, $value): void { $placeholder = $this->text($field, 'placeholder'); printf( '%s', esc_attr($field['field_name']), esc_attr($field['field_name']), esc_attr($value), $placeholder ? 'placeholder="' . esc_attr($placeholder) . '"' : '', esc_attr(strtr($field['field_style'] ?? '', '_', '-')), wp_kses_post($this->descriptionHtml($field['description'] ?? '')) ); } }