Class for a template tag email field.
Description
Source
File: src/components/template-tag-email-field.php
class Template_Tag_Email_Field extends Template_Tag_Text_Field { /** * Field type identifier. * * @since 1.0.0 * @var string */ protected $slug = 'templatetagemail'; /** * Type attribute for the input. * * @since 1.0.0 * @var string */ protected $type = 'email'; /** * Validates a single value for the field. * * @since 1.0.0 * * @param mixed $value Value to validate. When null is passed, the method * assumes no value was sent. * @return mixed|WP_Error The validated value on success, or an error * object on failure. */ protected function validate_single( $value = null ) { $value = parent::validate_single( $value ); if ( is_wp_error( $value ) ) { return $value; } if ( ! empty( $value ) ) { // If only a placeholder is contained, let's assume it's a valid email placeholder. if ( 1 === substr_count( $value, '{' ) && 1 === substr_count( $value, '}' ) && '{' === substr( $value, 0, 1 ) && '}' === substr( $value, -1, 1 ) ) { return $value; } if ( ! is_email( $value ) ) { return new WP_Error( 'field_email_invalid', sprintf( $this->manager->get_message( 'field_email_invalid' ), $value, $this->label ) ); } } return $value; } }
Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |
Methods
- enqueue — Enqueues the necessary assets for the field.
- has_enqueued — Checks whether the scripts for the template tag text field have been enqueued.
- print_single_input_template — Prints a single input template.
- render_single_input — Renders a single input for the field.
- single_to_json — Transforms single field data into an array to be passed to JavaScript applications.