<?php /** * Server-side user input validation manager. */ class WPCF7_Validation implements ArrayAccess { private $invalid_fields = array(); private $container = array(); public function __construct() { $this->container = array( 'valid' => true, 'reason' => array(), 'idref' => array(), ); } /** * Marks a form control as an invalid field. * * @param WPCF7_FormTag|array|string $context Context representing the * target field. * @param WP_Error|string $error The error of the field. */ public function invalidate( $context, $error ) { if ( $context instanceof WPCF7_FormTag ) { $tag = $context; } elseif ( is_array( $context ) ) { $tag = new WPCF7_FormTag( $context ); } elseif ( is_string( $context ) ) { $tags = wpcf7_scan_form_tags( array( 'name' => trim( $context ) ) ); $tag = $tags ? new WPCF7_FormTag( $tags[0] ) : null; } $name = ! empty( $tag ) ? $tag->name : null; if ( empty( $name ) or ! wpcf7_is_name( $name ) ) { return; } if ( is_wp_error( $error ) ) { $message = $error->get_error_message(); } else { $message = $error; } if ( $this->is_valid( $name ) ) { $id = $tag->get_id_option(); if ( empty( $id ) or ! wpcf7_is_name( $id ) ) { $id = null; } $this->invalid_fields[$name] = array( 'reason' => (string) $message, 'idref' => $id, ); } } /** * Returns true if the target field is valid. * * @param string|null $name Optional. If specified, this is the name of * the target field. Default null. * @return bool True if the target field has no error. If no target is * specified, returns true if all fields are valid. * Otherwise false. */ public function is_valid( $name = null ) { if ( ! empty( $name ) ) { return ! isset( $this->invalid_fields[$name] ); } else { return empty( $this->invalid_fields ); } } /** * Retrieves an associative array of invalid fields. * * @return array The associative array of invalid fields. */ public function get_invalid_fields() { return $this->invalid_fields; } /** * Assigns a value to the specified offset. * * @link https://www.php.net/manual/en/arrayaccess.offsetset.php */ #[ReturnTypeWillChange] public function offsetSet( $offset, $value ) { if ( isset( $this->container[$offset] ) ) { $this->container[$offset] = $value; } if ( 'reason' == $offset and is_array( $value ) ) { foreach ( $value as $k => $v ) { $this->invalidate( $k, $v ); } } } /** * Returns the value at specified offset. * * @link https://www.php.net/manual/en/arrayaccess.offsetget.php */ #[ReturnTypeWillChange] public function offsetGet( $offset ) { if ( isset( $this->container[$offset] ) ) { return $this->container[$offset]; } } /** * Returns true if the specified offset exists. * * @link https://www.php.net/manual/en/arrayaccess.offsetexists.php */ #[ReturnTypeWillChange] public function offsetExists( $offset ) { return isset( $this->container[$offset] ); } /** * Unsets an offset. * * @link https://www.php.net/manual/en/arrayaccess.offsetunset.php */ #[ReturnTypeWillChange] public function offsetUnset( $offset ) { } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
block-editor | Folder | 0755 |
|
|
config-validator | Folder | 0755 |
|
|
css | Folder | 0755 |
|
|
js | Folder | 0755 |
|
|
swv | Folder | 0755 |
|
|
capabilities.php | File | 834 B | 0644 |
|
contact-form-functions.php | File | 10.25 KB | 0644 |
|
contact-form-template.php | File | 5.69 KB | 0644 |
|
contact-form.php | File | 30.58 KB | 0644 |
|
controller.php | File | 3.19 KB | 0644 |
|
file.php | File | 10.15 KB | 0644 |
|
form-tag.php | File | 13.42 KB | 0644 |
|
form-tags-manager.php | File | 14.23 KB | 0644 |
|
formatting.php | File | 13.5 KB | 0644 |
|
functions.php | File | 15.54 KB | 0644 |
|
html-formatter.php | File | 16.32 KB | 0644 |
|
integration.php | File | 8.75 KB | 0644 |
|
l10n.php | File | 3.37 KB | 0644 |
|
mail-tag.php | File | 4.1 KB | 0644 |
|
mail.php | File | 14.53 KB | 0644 |
|
pipe.php | File | 2.56 KB | 0644 |
|
pocket-holder.php | File | 325 B | 0644 |
|
rest-api.php | File | 12.88 KB | 0644 |
|
shortcodes.php | File | 2.65 KB | 0644 |
|
special-mail-tags.php | File | 6.5 KB | 0644 |
|
submission.php | File | 20.31 KB | 0644 |
|
upgrade.php | File | 3 KB | 0644 |
|
validation-functions.php | File | 6.66 KB | 0644 |
|
validation.php | File | 3.22 KB | 0644 |
|