File "sanitize.php"
Full Path: /home/fresvfqn/waterdamagerestorationandrepairsmithtown.com/wp-content/plugins/surerank/inc/functions/sanitize.php
File size: 2.65 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Sanitize
*
* @package surerank
* @since 0.0.1
*/
namespace SureRank\Inc\Functions;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Sanitize
*
* @since 1.0.0
*/
class Sanitize {
/**
* Sanitize text
* if the value after sanitize_text is empty, return the default value
*
* @param string $value Value to sanitize.
* @param string $default Default value.
*
* @since 1.0.0
* @return string
*/
public static function text( $value, $default = '' ) {
return sanitize_text_field( $value ) ? $value : $default;
}
/**
* Sanitize multi-dimension array.
*
* @param callable $function Function reference.
* @param array<string, mixed>|array<int, string> $data_array Array what we need to sanitize.
* @since 0.0.1
* @return array<string, mixed>|array<int, string>
*/
public static function array_deep( callable $function, array $data_array ) {
if ( ! is_callable( $function ) ) {
return [];
}
if ( empty( $data_array ) ) {
return [];
}
$response = [];
foreach ( $data_array as $key => $data ) {
if ( is_array( $data ) ) {
$response[ $key ] = self::array_deep( $function, $data );
} else {
$response[ $key ] = $function( $data );
}
}
return $response;
}
/**
* Custom sanitization function to allow specific placeholders like %term_title%
*
* Sanitize data recursively, while preserving any placeholder patterns in the format %placeholder%.
* The default sanitize_text_field function would remove certain characters, such as the '%' symbol,
* potentially breaking placeholders like %term_title%. By using the custom sanitize_with_placeholders
* function, we ensure that placeholders are retained exactly as they are (e.g., %term_title% remains intact),
* while still sanitizing other parts of the text to prevent any malicious input.
*
* @param string|bool $text The input text to sanitize.
* @return string|bool The sanitized text with placeholders retained.
*/
public static function sanitize_with_placeholders( $text ) {
if ( is_bool( $text ) ) {
return $text;
}
if ( empty( $text ) ) {
return '';
}
if ( ! is_string( $text ) ) {
return $text;
}
if ( filter_var( $text, FILTER_VALIDATE_URL ) ) {
return esc_url_raw( $text );
}
return sanitize_text_field( $text );
}
/**
* Sanitize shortcode
*
* @since 1.2.0
* @param string $text The text to sanitize.
* @return string The sanitized text.
*/
public static function sanitize_shortcode( $text ) {
if ( empty( $text ) ) {
return '';
}
if ( ! is_string( $text ) ) {
return $text;
}
return do_shortcode( $text );
}
}