OwlCyberSecurity - MANAGER
Edit File: Sanitizer.php
<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase /** * Options Sanitizer. * * @package PressBook */ namespace PressBook\Options; /** * Sanitizer for theme options. */ class Sanitizer { /** * Checkbox sanitization. * * Sanitization callback for 'checkbox' type controls. This callback sanitizes `$checked` * as a boolean value, either TRUE or FALSE. * * @param bool $checked Whether the checkbox is checked. * @return bool Whether the checkbox is checked. */ public static function sanitize_checkbox( $checked ) { return ( isset( $checked ) && true === $checked ) ? true : false; } /** * Sanitize select. * * @param string $input The input from the setting. * @param object $setting The selected setting. * * @return string $input|$setting->default The input from the setting or the default setting. */ public static function sanitize_select( $input, $setting ) { $input = sanitize_key( $input ); $choices = $setting->manager->get_control( $setting->id )->choices; return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); } /** * Sanitize block post. * * @param int $input post id. * @return int */ public static function sanitize_block_post( $input ) { $post_id = absint( $input ); if ( $post_id && 'wp_block' === get_post_type( $post_id ) ) { return $post_id; } return 0; } /** * Function to sanitize alpha color. * * @param string $value Hex or RGBA color. * * @return string */ public static function sanitize_alpha_color( $value ) { // This pattern will check and match 3/6/8-character hex, rgb, rgba, hsl, & hsla colors. $pattern = '/^(\#[\da-f]{3}|\#[\da-f]{6}|\#[\da-f]{8}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0\.\d+|1))\)|hsla\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|rgb\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)|hsl\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\))$/'; \preg_match( $pattern, $value, $matches ); // Return the 1st match found. if ( isset( $matches[0] ) ) { if ( is_string( $matches[0] ) ) { return $matches[0]; } if ( is_array( $matches[0] ) && isset( $matches[0][0] ) ) { return $matches[0][0]; } } // If no match was found, return an empty string. return ''; } /** * Sanitize copyright text. * * @param string $input Input text. * @return string */ public static function sanitize_copyright_text( $input ) { $allowed = Footer::copyright_text_allowed_tags(); return wp_kses( $input, $allowed ); } }