61 lines
1.6 KiB
PHP
61 lines
1.6 KiB
PHP
<?php
|
|
// Checkbox sanitization
|
|
function abiz_sanitize_checkbox( $checked ) {
|
|
// Boolean check.
|
|
return ( ( isset( $checked ) && true == $checked ) ? true : false );
|
|
}
|
|
|
|
// HTML sanitization
|
|
function abiz_sanitize_html( $html ) {
|
|
return wp_kses_post( force_balance_tags( $html ) );
|
|
}
|
|
|
|
|
|
// Number sanitization
|
|
function abiz_sanitize_number_absint( $number, $setting ) {
|
|
// Ensure $number is an absolute integer (whole number, zero or greater).
|
|
$number = absint( $number );
|
|
|
|
// If the input is an absolute integer, return it; otherwise, return the default
|
|
return ( $number ? $number : $setting->default );
|
|
}
|
|
|
|
// Select sanitization callback example.
|
|
function abiz_sanitize_select( $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 );
|
|
}
|
|
|
|
// URL sanitization
|
|
function abiz_sanitize_url( $url ) {
|
|
return esc_url_raw( $url );
|
|
}
|
|
|
|
|
|
// Sanitization Text
|
|
function abiz_sanitize_text( $text ) {
|
|
return wp_filter_post_kses( $text );
|
|
}
|
|
|
|
// Sanitize Sortable control.
|
|
function abiz_sanitize_sortable( $val, $setting ) {
|
|
if ( is_string( $val ) || is_numeric( $val ) ) {
|
|
return array(
|
|
esc_attr( $val ),
|
|
);
|
|
}
|
|
$sanitized_value = array();
|
|
foreach ( $val as $item ) {
|
|
if ( isset( $setting->manager->get_control( $setting->id )->choices[ $item ] ) ) {
|
|
$sanitized_value[] = esc_attr( $item );
|
|
}
|
|
}
|
|
return $sanitized_value;
|
|
} |