Submit
Path:
~
/
home
/
getwphos
/
www
/
shellfish
/
wp-content
/
plugins
/
redux-framework
/
redux-core
/
inc
/
classes
/
File Content:
class-redux-validation.php
<?php /** * Redux Validation Class * * @class Redux_Validation * @version 4.0.0 * @package Redux Framework */ defined( 'ABSPATH' ) || exit; if ( ! class_exists( 'Redux_Validation', false ) ) { /** * Class Redux_Validation */ class Redux_Validation extends Redux_Class { /** * Validate values from options form (used in settings api validate function) * calls the custom validation class for the field so authors can override with custom classes * * @since 1.0.0 * @access public * * @param array $plugin_options Plugin Options. * @param array $options Options. * @param array $sections Sections array. * * @return array $plugin_options */ public function validate( array $plugin_options, array $options, array $sections ): array { $core = $this->core(); foreach ( $sections as $k => $section ) { if ( isset( $section['fields'] ) ) { foreach ( $section['fields'] as $fkey => $field ) { if ( is_array( $field ) ) { $field['section_id'] = $k; } if ( isset( $field['type'] ) && ( 'checkbox' === $field['type'] || 'checkbox_hide_below' === $field['type'] || 'checkbox_hide_all' === $field['type'] ) ) { if ( ! isset( $plugin_options[ $field['id'] ] ) ) { $plugin_options[ $field['id'] ] = 0; } } // Part of Dovy's serialize typography effort. Preserved here in case it becomes a thing. - kp. /** * If ( isset ( $field['type'] ) && $field['type'] == 'typography' ) { * if ( ! is_array( $plugin_options[ $field['id'] ] ) && ! empty( $plugin_options[ $field['id'] ] ) ) { * $plugin_options[ $field['id'] ] = json_decode( $plugin_options[ $field['id'] ], true ); * } * } */ if ( isset( $core->extensions[ $field['type'] ] ) && method_exists( $core->extensions[ $field['type'] ], '_validate_values' ) ) { $plugin_options = $core->extensions[ $field['type'] ]->_validate_values( $plugin_options, $field, $sections ); } // Make sure 'validate' field is set. if ( isset( $field['validate'] ) ) { // Can we make this an array of validations? $val_arr = array(); if ( is_array( $field['validate'] ) ) { $val_arr = $field['validate']; } else { $val_arr[] = $field['validate']; } foreach ( $val_arr as $idx => $val ) { // shim for old *_not_empty validations. if ( 'email_not_empty' === $val || 'numeric_not_empty' === $val ) { $val = 'not_empty'; } // Make sure 'validate field' is set to 'not_empty'. $is_not_empty = false; if ( 'not_empty' === $val ) { // Set the flag. $is_not_empty = true; } // Check for empty id value. if ( ! isset( $field['id'] ) || ! isset( $plugin_options[ $field['id'] ] ) || ( '' === $plugin_options[ $field['id'] ] ) ) { // If we are looking for an empty value, in the case of 'not_empty' // then we need to keep processing. if ( ! $is_not_empty ) { // Empty id and not checking for 'not_empty'. Bail out... if ( ! isset( $field['validate_callback'] ) ) { continue; } } } // Force validate of custom field types. if ( isset( $field['type'] ) && ! isset( $val ) && ! isset( $field['validate_callback'] ) ) { if ( 'color' === $field['type'] || 'color_gradient' === $field['type'] ) { $val = 'color'; } elseif ( 'date' === $field['type'] ) { $val = 'date'; } } // No need. Spectrum self validates. if ( 'color_rgba' === $field['type'] ) { continue; } // Shim out old color rgba validators. if ( 'color_rgba' === $val || 'colorrgba' === $val ) { $val = 'color'; } $validate = 'Redux_Validation_' . $val; if ( ! class_exists( $validate ) ) { $file = str_replace( '_', '-', $val ); /** * Filter 'redux/validate/{opt_name}/class/{field.validate}' * * @param string $validate validation class file path */ // phpcs:ignore WordPress.NamingConventions.ValidHookName $class_file = apply_filters( "redux/validate/{$core->args['opt_name']}/class/$val", Redux_Core::$dir . "inc/validation/$val/class-redux-validation-$file.php", $validate ); if ( $class_file ) { if ( file_exists( $class_file ) ) { require_once $class_file; } } } if ( class_exists( $validate ) ) { if ( empty( $options[ $field['id'] ] ) ) { $options[ $field['id'] ] = ''; } if ( isset( $plugin_options[ $field['id'] ] ) && is_array( $plugin_options[ $field['id'] ] ) && ! empty( $plugin_options[ $field['id'] ] ) ) { foreach ( $plugin_options[ $field['id'] ] as $key => $value ) { $before = null; $after = null; if ( isset( $plugin_options[ $field['id'] ][ $key ] ) && ( ! empty( $plugin_options[ $field['id'] ][ $key ] ) || '0' === $plugin_options[ $field['id'] ][ $key ] ) ) { if ( is_array( $plugin_options[ $field['id'] ][ $key ] ) ) { $before = $plugin_options[ $field['id'] ][ $key ]; } else { $before = trim( $plugin_options[ $field['id'] ][ $key ] ); } } if ( isset( $options[ $field['id'] ][ $key ] ) && ( ! empty( $plugin_options[ $field['id'] ][ $key ] ) || '0' === $plugin_options[ $field['id'] ][ $key ] ) ) { $after = $options[ $field['id'] ][ $key ]; } $validation = new $validate( $core, $field, $before, $after ); if ( ! empty( $validation->value ) || '0' === $validation->value ) { $plugin_options[ $field['id'] ][ $key ] = $validation->value; } else { unset( $plugin_options[ $field['id'] ][ $key ] ); } if ( ! empty( $validation->error ) ) { $core->errors[] = $validation->error; } if ( ! empty( $validation->warning ) ) { $core->warnings[] = $validation->warning; } if ( ! empty( $validation->sanitize ) ) { $core->sanitize[] = $validation->sanitize; } } } else { if ( isset( $plugin_options[ $field['id'] ] ) ) { if ( is_array( $plugin_options[ $field['id'] ] ) ) { $pofi = $plugin_options[ $field['id'] ]; } else { $pofi = trim( $plugin_options[ $field['id'] ] ); } } else { $pofi = null; } $validation = new $validate( $core, $field, $pofi, $options[ $field['id'] ] ); $plugin_options[ $field['id'] ] = $validation->value; if ( ! empty( $validation->error ) ) { $core->errors[] = $validation->error; } if ( ! empty( $validation->warning ) ) { $core->warnings[] = $validation->warning; } if ( ! empty( $validation->sanitize ) ) { $core->sanitize[] = $validation->sanitize; } } break; } } } if ( isset( $field['validate_callback'] ) && ( is_callable( $field['validate_callback'] ) || ( is_string( $field['validate_callback'] ) && function_exists( $field['validate_callback'] ) ) ) ) { $callback = $field['validate_callback']; unset( $field['validate_callback'] ); $plugin_option = $plugin_options[ $field['id'] ] ?? null; $option = $options[ $field['id'] ] ?? null; if ( null !== $plugin_option ) { $callbackvalues = call_user_func( $callback, $field, $plugin_option, $option ); $plugin_options[ $field['id'] ] = $callbackvalues['value']; if ( isset( $callbackvalues['error'] ) ) { $core->errors[] = $callbackvalues['error']; } if ( isset( $callbackvalues['warning'] ) ) { $core->warnings[] = $callbackvalues['warning']; } if ( isset( $callbackvalues['sanitize'] ) ) { $core->sanitize[] = $callbackvalues['sanitize']; } } } } } } return $plugin_options; } } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
class-redux-admin-notices.php
6703 bytes
0644
class-redux-ajax-save.php
6166 bytes
0644
class-redux-ajax-select2.php
3027 bytes
0644
class-redux-ajax-typography.php
1343 bytes
0644
class-redux-api.php
53888 bytes
0644
class-redux-args.php
11805 bytes
0644
class-redux-autoloader.php
2116 bytes
0644
class-redux-cdn.php
9937 bytes
0644
class-redux-class.php
1142 bytes
0644
class-redux-colors.php
11587 bytes
0644
class-redux-enqueue.php
19925 bytes
0644
class-redux-extension-abstract.php
6312 bytes
0644
class-redux-extensions.php
2236 bytes
0644
class-redux-field.php
5214 bytes
0644
class-redux-filesystem.php
29712 bytes
0644
class-redux-functions-ex.php
15919 bytes
0644
class-redux-functions.php
8827 bytes
0644
class-redux-helpers.php
37617 bytes
0644
class-redux-i18n.php
1313 bytes
0644
class-redux-installer-muter.php
506 bytes
0644
class-redux-instances.php
2831 bytes
0644
class-redux-network.php
2098 bytes
0644
class-redux-options-constructor.php
33772 bytes
0644
class-redux-options-defaults.php
6689 bytes
0644
class-redux-output.php
14619 bytes
0644
class-redux-page-render.php
37544 bytes
0644
class-redux-panel.php
14345 bytes
0644
class-redux-path.php
568 bytes
0644
class-redux-required.php
8692 bytes
0644
class-redux-sanitize.php
3778 bytes
0644
class-redux-thirdparty-fixes.php
3678 bytes
0644
class-redux-transients.php
844 bytes
0644
class-redux-validate.php
1560 bytes
0644
class-redux-validation.php
8427 bytes
0644
class-redux-wordpress-data.php
18511 bytes
0644
index.php
79 bytes
0644
N4ST4R_ID | Naxtarrr