File Editor
Directories:
.. (Back)
base
controls
dynamic-tags
prop-types
props-resolver
styles
widgets
Files:
atomic-styles.php
image-sizes.php
module.php
settings-validator.php
Create New File
Create
Edit File: settings-validator.php
<?php namespace Elementor\Modules\AtomicWidgets; use Elementor\Core\Utils\Collection; use Elementor\Modules\AtomicWidgets\PropTypes\Prop_Type; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Settings_Validator { private array $schema; public function __construct( array $schema ) { $this->schema = $schema; } public static function make( array $schema ): self { return new static( $schema ); } /** * @param array $settings * * @return array{ * 0: bool, * 1: array<string, mixed>, * 2: array<string> * } */ public function validate( array $settings ): array { $validated = []; $errors = []; foreach ( $settings as $key => $value ) { $prop_type = $this->schema[ $key ] ?? null; if ( ! ( $prop_type instanceof Prop_Type ) ) { continue; } try { $prop_type->validate_with_additional( $value ); } catch ( \Exception $e ) { $errors[] = $key; continue; } $validated[ $key ] = $value; } $is_valid = empty( $errors ); return [ $is_valid, $validated, $errors, ]; } }
Save Changes
Rename File
Rename