laipower/wp-content/plugins/gp-premium/library/customizer/sanitize.php
2020-04-07 13:03:04 +00:00

132 lines
3.1 KiB
PHP

<?php
// No direct access, please
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! function_exists( 'generate_premium_sanitize_empty_absint' ) ) {
function generate_premium_sanitize_empty_absint( $input ) {
if ( '' == $input ) {
return '';
}
return absint( $input );
}
}
if ( ! function_exists( 'generate_premium_sanitize_choices' ) ) {
/**
* Sanitize choices
*/
function generate_premium_sanitize_choices( $input, $setting ) {
// Ensure input is a slug
$input = sanitize_key( $input );
// Get list of choices from the control
// associated with the setting
$choices = $setting->manager->get_control( $setting->id )->choices;
// If the input is a valid key, return it;
// otherwise, return the default
return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
}
}
if ( ! function_exists( 'generate_premium_sanitize_checkbox' ) ) {
/**
* Sanitize checkbox
*/
function generate_premium_sanitize_checkbox( $checked ) {
// Boolean check.
return ( ( isset( $checked ) && true == $checked ) ? true : false );
}
}
if ( ! function_exists( 'generate_premium_sanitize_hex_color' ) ) {
/**
* Sanitize hex colors
* We don't use the core function as we want to allow empty values
*
* @since 0.1
*/
function generate_premium_sanitize_hex_color( $color ) {
if ( '' === $color ) {
return '';
}
// 3 or 6 hex digits, or the empty string.
if ( preg_match('|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) ) {
return $color;
}
return '';
}
}
if ( ! function_exists( 'generate_premium_sanitize_rgba' ) ) {
/**
* Sanitize RGBA colors
*
* @since 1.3.42
*/
function generate_premium_sanitize_rgba( $color ) {
if ( '' === $color ) {
return '';
}
// If string does not start with 'rgba', then treat as hex
// sanitize the hex color and finally convert hex to rgba
if ( false === strpos( $color, 'rgba' ) ) {
return generate_premium_sanitize_hex_color( $color );
}
// By now we know the string is formatted as an rgba color so we need to further sanitize it.
$color = str_replace( ' ', '', $color );
sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha );
return 'rgba('.$red.','.$green.','.$blue.','.$alpha.')';
return '';
}
}
if ( ! function_exists( 'generate_premium_sanitize_decimal_integer' ) ) {
/**
* Sanitize integers that can use decimals
*
* @since 1.3.41
*/
function generate_premium_sanitize_decimal_integer( $input ) {
return abs( floatval( $input ) );
}
}
/**
* Sanitize integers that can use decimals
* @since 1.4
*/
function generate_premium_sanitize_decimal_integer_empty( $input ) {
if ( '' == $input ) {
return '';
}
return abs( floatval( $input ) );
}
if ( ! function_exists( 'generate_premium_sanitize_html' ) ) {
/**
* Sanitize our fields that accept HTML
*/
function generate_premium_sanitize_html( $input ) {
return wp_kses_post( $input );
}
}
function generate_premium_sanitize_variants( $input ) {
if ( is_array( $input ) ) {
$input = implode( ',', $input );
}
return sanitize_text_field( $input );
}