['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'] ?? ''))
);
}
}